本文整理汇总了C#中Nop.Core.Domain.Media.Download类的典型用法代码示例。如果您正苦于以下问题:C# Download类的具体用法?C# Download怎么用?C# Download使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Download类属于Nop.Core.Domain.Media命名空间,在下文中一共展示了Download类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Can_save_and_load_download
public void Can_save_and_load_download()
{
var guid = Guid.NewGuid();
var download = new Download
{
DownloadGuid = guid,
UseDownloadUrl = true,
DownloadUrl = "http://www.someUrl.com/file.zip",
DownloadBinary = new byte[] { 1, 2, 3 },
ContentType = "application/x-zip-co",
Filename = "file",
Extension = ".zip",
IsNew = true
};
var fromDb = SaveAndLoadEntity(download);
fromDb.ShouldNotBeNull();
fromDb.DownloadGuid.ShouldEqual(guid);
fromDb.UseDownloadUrl.ShouldEqual(true);
fromDb.DownloadUrl.ShouldEqual("http://www.someUrl.com/file.zip");
fromDb.DownloadBinary.ShouldEqual(new byte[] { 1, 2, 3 });
fromDb.ContentType.ShouldEqual("application/x-zip-co");
fromDb.Filename.ShouldEqual("file");
fromDb.Extension.ShouldEqual(".zip");
fromDb.IsNew.ShouldEqual(true);
}
示例2: DeleteDownload
/// <summary>
/// Deletes a download
/// </summary>
/// <param name="download">Download</param>
public virtual void DeleteDownload(Download download)
{
if (download == null)
throw new ArgumentNullException("download");
_downloadRepository.Delete(download);
_eventPubisher.EntityDeleted(download);
}
示例3: InsertDownload
/// <summary>
/// Inserts a download
/// </summary>
/// <param name="download">Download</param>
public virtual void InsertDownload(Download download)
{
if (download == null)
throw new ArgumentNullException("download");
_downloadRepository.Insert(download);
_eventPubisher.EntityInserted(download);
}
示例4: AsyncUpload
public ActionResult AsyncUpload()
{
//we process it distinct ways based on a browser
//find more info here http://stackoverflow.com/questions/4884920/mvc3-valums-ajax-file-upload
Stream stream = null;
var fileName = "";
var contentType = "";
if (String.IsNullOrEmpty(Request["qqfile"]))
{
// IE
HttpPostedFileBase httpPostedFile = Request.Files[0];
if (httpPostedFile == null)
throw new ArgumentException("No file uploaded");
stream = httpPostedFile.InputStream;
fileName = Path.GetFileName(httpPostedFile.FileName);
contentType = httpPostedFile.ContentType;
}
else
{
//Webkit, Mozilla
stream = Request.InputStream;
fileName = Request["qqfile"];
}
var fileBinary = new byte[stream.Length];
stream.Read(fileBinary, 0, fileBinary.Length);
var fileExtension = Path.GetExtension(fileName);
if (!String.IsNullOrEmpty(fileExtension))
fileExtension = fileExtension.ToLowerInvariant();
var download = new Download()
{
DownloadGuid = Guid.NewGuid(),
UseDownloadUrl = false,
DownloadUrl = "",
DownloadBinary = fileBinary,
ContentType = contentType,
//we store filename without extension for downloads
Filename = Path.GetFileNameWithoutExtension(fileName),
Extension = fileExtension,
IsNew = true
};
_downloadService.InsertDownload(download);
//when returning JSON the mime-type must be set to text/plain
//otherwise some browsers will pop-up a "Save As" dialog.
return Json(new { success = true,
downloadId = download.Id,
downloadUrl = Url.Action("DownloadFile", new { downloadId = download.Id }) },
"text/plain");
}
示例5: SaveDownloadUrl
public ActionResult SaveDownloadUrl(string downloadUrl)
{
//insert
var download = new Download
{
DownloadGuid = Guid.NewGuid(),
UseDownloadUrl = true,
DownloadUrl = downloadUrl,
IsNew = true
};
_downloadService.InsertDownload(download);
return Json(new { downloadId = download.ID }, JsonRequestBehavior.AllowGet);
}
示例6: AsyncUpload
public ActionResult AsyncUpload(string authToken)
{
var httpPostedFile = Request.Files[0];
if (httpPostedFile == null)
throw new ArgumentException("No file uploaded");
//Workaround for flash cookie bug
//http://stackoverflow.com/questions/1729179/uploadify-session-and-authentication-with-asp-net-mvc
//http://geekswithblogs.net/apopovsky/archive/2009/05/06/working-around-flash-cookie-bug-in-asp.net-mvc.aspx
var ticket = FormsAuthentication.Decrypt(authToken);
if (ticket == null)
throw new Exception("No token provided");
var identity = new FormsIdentity(ticket);
if (!identity.IsAuthenticated)
throw new Exception("User is not authenticated");
var customer = ((FormsAuthenticationService)_authenticationService).GetAuthenticatedCustomerFromTicket(ticket);
if (!_permissionService.Authorize(StandardPermissionProvider.AccessAdminPanel, customer))
throw new Exception("User is not admin");
var download = new Download()
{
DownloadGuid = Guid.NewGuid(),
UseDownloadUrl = false,
DownloadUrl = "",
DownloadBinary = httpPostedFile.GetDownloadBits(),
ContentType = httpPostedFile.ContentType,
Filename = Path.GetFileNameWithoutExtension(httpPostedFile.FileName),
Extension = Path.GetExtension(httpPostedFile.FileName),
IsNew = true
};
_downloadService.InsertDownload(download);
return Json(new { downloadId = download.Id, downloadUrl = Url.Action("DownloadFile", new { downloadId = download.Id }) });
}
示例7: ParseAndSaveCheckoutAttributes
//.........这里部分代码省略.........
}
}
break;
case AttributeControlType.Checkboxes:
{
var cblAttributes = form[controlId];
if (!String.IsNullOrEmpty(cblAttributes))
{
foreach (var item in cblAttributes.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
{
int selectedAttributeId = int.Parse(item);
if (selectedAttributeId > 0)
selectedAttributes = _checkoutAttributeParser.AddCheckoutAttribute(selectedAttributes,
attribute, selectedAttributeId.ToString());
}
}
}
break;
case AttributeControlType.TextBox:
{
var txtAttribute = form[controlId];
if (!String.IsNullOrEmpty(txtAttribute))
{
string enteredText = txtAttribute.Trim();
selectedAttributes = _checkoutAttributeParser.AddCheckoutAttribute(selectedAttributes,
attribute, enteredText);
}
}
break;
case AttributeControlType.MultilineTextbox:
{
var txtAttribute = form[controlId];
if (!String.IsNullOrEmpty(txtAttribute))
{
string enteredText = txtAttribute.Trim();
selectedAttributes = _checkoutAttributeParser.AddCheckoutAttribute(selectedAttributes,
attribute, enteredText);
}
}
break;
case AttributeControlType.Datepicker:
{
var date = form[controlId + "_day"];
var month = form[controlId + "_month"];
var year = form[controlId + "_year"];
DateTime? selectedDate = null;
try
{
selectedDate = new DateTime(Int32.Parse(year), Int32.Parse(month), Int32.Parse(date));
}
catch { }
if (selectedDate.HasValue)
{
selectedAttributes = _checkoutAttributeParser.AddCheckoutAttribute(selectedAttributes,
attribute, selectedDate.Value.ToString("D"));
}
}
break;
case AttributeControlType.FileUpload:
{
var httpPostedFile = this.Request.Files[controlId];
if ((httpPostedFile != null) && (!String.IsNullOrEmpty(httpPostedFile.FileName)))
{
int fileMaxSize = _catalogSettings.FileUploadMaximumSizeBytes;
if (httpPostedFile.ContentLength > fileMaxSize)
{
//TODO display warning
//warnings.Add(string.Format(_localizationService.GetResource("ShoppingCart.MaximumUploadedFileSize"), (int)(fileMaxSize / 1024)));
}
else
{
//save an uploaded file
var download = new Download()
{
DownloadGuid = Guid.NewGuid(),
UseDownloadUrl = false,
DownloadUrl = "",
DownloadBinary = httpPostedFile.GetDownloadBits(),
ContentType = httpPostedFile.ContentType,
Filename = System.IO.Path.GetFileNameWithoutExtension(httpPostedFile.FileName),
Extension = System.IO.Path.GetExtension(httpPostedFile.FileName),
IsNew = true
};
_downloadService.InsertDownload(download);
//save attribute
selectedAttributes = _checkoutAttributeParser.AddCheckoutAttribute(selectedAttributes,
attribute, download.DownloadGuid.ToString());
}
}
}
break;
default:
break;
}
}
//save checkout attributes
_workContext.CurrentCustomer.CheckoutAttributes = selectedAttributes;
_customerService.UpdateCustomer(_workContext.CurrentCustomer);
}
示例8: UploadFileProductAttribute
public ActionResult UploadFileProductAttribute(int productVariantId, int productAttributeId)
{
var productVariant = _productService.GetProductVariantById(productVariantId);
if (productVariant == null ||
!productVariant.Published ||
productVariant.Deleted ||
productVariant.Product == null ||
!productVariant.Product.Published ||
productVariant.Product.Deleted)
{
return Json(new
{
success = false,
downloadGuid = Guid.Empty,
}, "text/plain");
}
//ensure that this attribute belong to this product variant and has "file upload" type
var pva = _productAttributeService
.GetProductVariantAttributesByProductVariantId(productVariantId)
.Where(pa => pa.ProductAttributeId == productAttributeId)
.FirstOrDefault();
if (pva == null || pva.AttributeControlType != AttributeControlType.FileUpload)
{
return Json(new
{
success = false,
downloadGuid = Guid.Empty,
}, "text/plain");
}
//we process it distinct ways based on a browser
//find more info here http://stackoverflow.com/questions/4884920/mvc3-valums-ajax-file-upload
Stream stream = null;
var fileName = "";
var contentType = "";
if (String.IsNullOrEmpty(Request["qqfile"]))
{
// IE
HttpPostedFileBase httpPostedFile = Request.Files[0];
if (httpPostedFile == null)
throw new ArgumentException("No file uploaded");
stream = httpPostedFile.InputStream;
fileName = Path.GetFileName(httpPostedFile.FileName);
contentType = httpPostedFile.ContentType;
}
else
{
//Webkit, Mozilla
stream = Request.InputStream;
fileName = Request["qqfile"];
}
var fileBinary = new byte[stream.Length];
stream.Read(fileBinary, 0, fileBinary.Length);
var fileExtension = Path.GetExtension(fileName);
if (!String.IsNullOrEmpty(fileExtension))
fileExtension = fileExtension.ToLowerInvariant();
int fileMaxSize = _catalogSettings.FileUploadMaximumSizeBytes;
if (fileBinary.Length > fileMaxSize)
{
//when returning JSON the mime-type must be set to text/plain
//otherwise some browsers will pop-up a "Save As" dialog.
return Json(new
{
success = false,
message = string.Format(_localizationService.GetResource("ShoppingCart.MaximumUploadedFileSize"), (int)(fileMaxSize / 1024)),
downloadGuid = Guid.Empty,
}, "text/plain");
}
var download = new Download()
{
DownloadGuid = Guid.NewGuid(),
UseDownloadUrl = false,
DownloadUrl = "",
DownloadBinary = fileBinary,
ContentType = contentType,
//we store filename without extension for downloads
Filename = Path.GetFileNameWithoutExtension(fileName),
Extension = fileExtension,
IsNew = true
};
_downloadService.InsertDownload(download);
//when returning JSON the mime-type must be set to text/plain
//otherwise some browsers will pop-up a "Save As" dialog.
return Json(new
{
success = true,
message = _localizationService.GetResource("ShoppingCart.FileUploaded"),
downloadGuid = download.DownloadGuid,
}, "text/plain");
}
示例9: InstallProducts
protected virtual void InstallProducts(string defaultUserEmail)
{
var productTemplateSimple = _productTemplateRepository.Table.FirstOrDefault(pt => pt.Name == "Simple product");
if (productTemplateSimple == null)
throw new Exception("Simple product template could not be loaded");
var productTemplateGrouped = _productTemplateRepository.Table.FirstOrDefault(pt => pt.Name == "Grouped product (with variants)");
if (productTemplateGrouped == null)
throw new Exception("Simple product template could not be loaded");
//delivery date
var deliveryDate = _deliveryDateRepository.Table.FirstOrDefault();
if (deliveryDate == null)
throw new Exception("No default deliveryDate could be loaded");
//default customer/user
var defaultCustomer = _customerRepository.Table.FirstOrDefault(x => x.Email == defaultUserEmail);
if (defaultCustomer == null)
throw new Exception("Cannot load default customer");
//pictures
var pictureService = EngineContext.Current.Resolve<IPictureService>();
var sampleImagesPath = _webHelper.MapPath("~/content/samples/");
//downloads
var downloadService = EngineContext.Current.Resolve<IDownloadService>();
var sampleDownloadsPath = _webHelper.MapPath("~/content/samples/");
//products
var allProducts = new List<Product>();
#region Desktops
var productBuildComputer = new Product
{
Id = 1,
_id = ObjectId.GenerateNewId().ToString(),
ProductType = ProductType.SimpleProduct,
VisibleIndividually = true,
Name = "Build your own computer",
ShortDescription = "Build it",
FullDescription = "<p>Fight back against cluttered workspaces with the stylish IBM zBC12 All-in-One desktop PC, featuring powerful computing resources and a stunning 20.1-inch widescreen display with stunning XBRITE-HiColor LCD technology. The black IBM zBC12 has a built-in microphone and MOTION EYE camera with face-tracking technology that allows for easy communication with friends and family. And it has a built-in DVD burner and Sony's Movie Store software so you can create a digital entertainment library for personal viewing at your convenience. Easy to setup and even easier to use, this JS-series All-in-One includes an elegantly designed keyboard and a USB mouse.</p>",
ProductTemplateId = productTemplateSimple.Id,
//SeName = "build-your-own-computer",
AllowCustomerReviews = true,
Price = 1200M,
IsShipEnabled = true,
IsFreeShipping = true,
Weight = 2,
Length = 2,
Width = 2,
Height = 2,
TaxCategoryId = _taxCategoryRepository.Table.Single(tc => tc.Name == "Electronics & Software").Id,
ManageInventoryMethod = ManageInventoryMethod.ManageStock,
StockQuantity = 10000,
NotifyAdminForQuantityBelow = 1,
AllowBackInStockSubscriptions = false,
DisplayStockAvailability = true,
LowStockActivity = LowStockActivity.DisableBuyButton,
BackorderMode = BackorderMode.NoBackorders,
OrderMinimumQuantity = 1,
OrderMaximumQuantity = 10000,
Published = true,
ShowOnHomePage = true,
CreatedOnUtc = DateTime.UtcNow,
UpdatedOnUtc = DateTime.UtcNow,
ProductAttributeMappings =
{
new ProductAttributeMapping
{
Id = 1,
_id = ObjectId.GenerateNewId().ToString(),
ProductAttributeId = _productAttributeRepository.Table.Single(x => x.Name == "Processor").Id,
AttributeControlType = AttributeControlType.DropdownList,
ProductId = 1,
IsRequired = true,
ProductAttributeValues =
{
new ProductAttributeValue
{
Id = 1,
_id = ObjectId.GenerateNewId().ToString(),
AttributeValueType = AttributeValueType.Simple,
Name = "2.2 GHz Intel Pentium Dual-Core E2200",
DisplayOrder = 1,
ProductId = 1,
ProductAttributeMappingId = 1
},
new ProductAttributeValue
{
Id = 2,
_id = ObjectId.GenerateNewId().ToString(),
AttributeValueType = AttributeValueType.Simple,
Name = "2.5 GHz Intel Pentium Dual-Core E2200",
IsPreSelected = true,
PriceAdjustment = 15,
DisplayOrder = 2,
ProductId = 1,
ProductAttributeMappingId = 1
}
//.........这里部分代码省略.........
示例10: StartAlbionCheckout
//.........这里部分代码省略.........
selectedAttributes = _checkoutAttributeParser.AddCheckoutAttribute(selectedAttributes,
attribute, selectedAttributeId.ToString());
}
}
}
break;
case AttributeControlType.TextBox:
{
var txtAttribute = form[controlId];
if (!String.IsNullOrEmpty(txtAttribute))
{
string enteredText = txtAttribute.Trim();
selectedAttributes = _checkoutAttributeParser.AddCheckoutAttribute(selectedAttributes,
attribute, enteredText);
}
}
break;
case AttributeControlType.MultilineTextbox:
{
var txtAttribute = form[controlId];
if (!String.IsNullOrEmpty(txtAttribute))
{
string enteredText = txtAttribute.Trim();
selectedAttributes = _checkoutAttributeParser.AddCheckoutAttribute(selectedAttributes,
attribute, enteredText);
}
}
break;
case AttributeControlType.Datepicker:
{
var date = form[controlId + "_day"];
var month = form[controlId + "_month"];
var year = form[controlId + "_year"];
DateTime? selectedDate = null;
try
{
selectedDate = new DateTime(Int32.Parse(year), Int32.Parse(month), Int32.Parse(date));
}
catch { }
if (selectedDate.HasValue)
{
selectedAttributes = _checkoutAttributeParser.AddCheckoutAttribute(selectedAttributes,
attribute, selectedDate.Value.ToString("D"));
}
}
break;
case AttributeControlType.FileUpload:
{
var httpPostedFile = this.Request.Files[controlId];
if ((httpPostedFile != null) && (!String.IsNullOrEmpty(httpPostedFile.FileName)))
{
int fileMaxSize = _catalogSettings.FileUploadMaximumSizeBytes;
if (httpPostedFile.ContentLength > fileMaxSize)
{
//TODO display warning
//warnings.Add(string.Format(_localizationService.GetResource("ShoppingCart.MaximumUploadedFileSize"), (int)(fileMaxSize / 1024)));
}
else
{
//save an uploaded file
var download = new Download()
{
DownloadGuid = Guid.NewGuid(),
UseDownloadUrl = false,
DownloadUrl = "",
DownloadBinary = httpPostedFile.GetDownloadBits(),
ContentType = httpPostedFile.ContentType,
Filename = System.IO.Path.GetFileNameWithoutExtension(httpPostedFile.FileName),
Extension = System.IO.Path.GetExtension(httpPostedFile.FileName),
IsNew = true
};
_downloadService.InsertDownload(download);
//save attribute
selectedAttributes = _checkoutAttributeParser.AddCheckoutAttribute(selectedAttributes,
attribute, download.DownloadGuid.ToString());
}
}
}
break;
default:
break;
}
}
//save checkout attributes
_workContext.CurrentCustomer.CheckoutAttributes = selectedAttributes;
_customerService.UpdateCustomer(_workContext.CurrentCustomer);
//validate attributes
var checkoutAttributeWarnings = _shoppingCartService.GetShoppingCartWarnings(cart, _workContext.CurrentCustomer.CheckoutAttributes, true);
if (checkoutAttributeWarnings.Count > 0)
{
//something wrong, redisplay the page with warnings
var model = new ShoppingCartModel();
PrepareShoppingCartModel(model, cart, validateCheckoutAttributes: true);
return View(model);
}
return RedirectToRoute("Checkout");
}
示例11: UploadFileProductAttribute
public ActionResult UploadFileProductAttribute(int attributeId)
{
var attribute = _productAttributeService.GetProductVariantAttributeById(attributeId);
if (attribute == null || attribute.AttributeControlType != AttributeControlType.FileUpload)
{
return Json(new
{
success = false,
downloadGuid = Guid.Empty,
}, "text/plain");
}
//we process it distinct ways based on a browser
//find more info here http://stackoverflow.com/questions/4884920/mvc3-valums-ajax-file-upload
Stream stream = null;
var fileName = "";
var contentType = "";
if (String.IsNullOrEmpty(Request["qqfile"]))
{
// IE
HttpPostedFileBase httpPostedFile = Request.Files[0];
if (httpPostedFile == null)
throw new ArgumentException("No file uploaded");
stream = httpPostedFile.InputStream;
fileName = Path.GetFileName(httpPostedFile.FileName);
contentType = httpPostedFile.ContentType;
}
else
{
//Webkit, Mozilla
stream = Request.InputStream;
fileName = Request["qqfile"];
}
var fileBinary = new byte[stream.Length];
stream.Read(fileBinary, 0, fileBinary.Length);
var fileExtension = Path.GetExtension(fileName);
if (!String.IsNullOrEmpty(fileExtension))
fileExtension = fileExtension.ToLowerInvariant();
if (attribute.ValidationFileMaximumSize.HasValue)
{
//compare in bytes
var maxFileSizeBytes = attribute.ValidationFileMaximumSize.Value * 1024;
if (fileBinary.Length > maxFileSizeBytes)
{
//when returning JSON the mime-type must be set to text/plain
//otherwise some browsers will pop-up a "Save As" dialog.
return Json(new
{
success = false,
message = string.Format(_localizationService.GetResource("ShoppingCart.MaximumUploadedFileSize"), attribute.ValidationFileMaximumSize.Value),
downloadGuid = Guid.Empty,
}, "text/plain");
}
}
var download = new Download()
{
DownloadGuid = Guid.NewGuid(),
UseDownloadUrl = false,
DownloadUrl = "",
DownloadBinary = fileBinary,
ContentType = contentType,
//we store filename without extension for downloads
Filename = Path.GetFileNameWithoutExtension(fileName),
Extension = fileExtension,
IsNew = true
};
_downloadService.InsertDownload(download);
//when returning JSON the mime-type must be set to text/plain
//otherwise some browsers will pop-up a "Save As" dialog.
return Json(new
{
success = true,
message = _localizationService.GetResource("ShoppingCart.FileUploaded"),
downloadGuid = download.DownloadGuid,
}, "text/plain");
}
示例12: CopyProduct
//.........这里部分代码省略.........
{
var psaCopy = new ProductSpecificationAttribute()
{
ProductId = productCopy.Id,
SpecificationAttributeOptionId = productSpecificationAttribute.SpecificationAttributeOptionId,
AllowFiltering = productSpecificationAttribute.AllowFiltering,
ShowOnProductPage = productSpecificationAttribute.ShowOnProductPage,
DisplayOrder = productSpecificationAttribute.DisplayOrder
};
_specificationAttributeService.InsertProductSpecificationAttribute(psaCopy);
}
// product variants
var productVariants = product.ProductVariants;
foreach (var productVariant in productVariants)
{
// product variant picture
int pictureId = 0;
if (copyImages)
{
var picture = _pictureService.GetPictureById(productVariant.PictureId);
if (picture != null)
{
var pictureCopy = _pictureService.InsertPicture(
_pictureService.LoadPictureBinary(picture),
picture.MimeType,
_pictureService.GetPictureSeName(productVariant.Name),
true);
pictureId = pictureCopy.Id;
}
}
// product variant download & sample download
int downloadId = productVariant.DownloadId;
int sampleDownloadId = productVariant.SampleDownloadId;
if (productVariant.IsDownload)
{
var download = _downloadService.GetDownloadById(productVariant.DownloadId);
if (download != null)
{
var downloadCopy = new Download()
{
DownloadGuid = Guid.NewGuid(),
UseDownloadUrl = download.UseDownloadUrl,
DownloadUrl = download.DownloadUrl,
DownloadBinary = download.DownloadBinary,
ContentType = download.ContentType,
Filename = download.Filename,
Extension = download.Extension,
IsNew = download.IsNew,
};
_downloadService.InsertDownload(downloadCopy);
downloadId = downloadCopy.Id;
}
if (productVariant.HasSampleDownload)
{
var sampleDownload = _downloadService.GetDownloadById(productVariant.SampleDownloadId);
if (sampleDownload != null)
{
var sampleDownloadCopy = new Download()
{
DownloadGuid = Guid.NewGuid(),
UseDownloadUrl = sampleDownload.UseDownloadUrl,
DownloadUrl = sampleDownload.DownloadUrl,
DownloadBinary = sampleDownload.DownloadBinary,
示例13: InstallProducts
protected virtual void InstallProducts(string defaultUserEmail)
{
var productTemplateSimple = _productTemplateRepository.Table.FirstOrDefault(pt => pt.Name == "Simple product");
if (productTemplateSimple == null)
throw new Exception("Simple product template could not be loaded");
var productTemplateGrouped = _productTemplateRepository.Table.FirstOrDefault(pt => pt.Name == "Grouped product");
if (productTemplateGrouped == null)
throw new Exception("Simple product template could not be loaded");
//delivery date
var deliveryDate = _deliveryDateRepository.Table.FirstOrDefault();
if (deliveryDate == null)
throw new Exception("No default deliveryDate could be loaded");
//default customer/user
var defaultCustomer = _customerRepository.Table.FirstOrDefault(x => x.Email == defaultUserEmail);
if (defaultCustomer == null)
throw new Exception("Cannot load default customer");
//pictures
var pictureService = EngineContext.Current.Resolve<IPictureService>();
var sampleImagesPath = _webHelper.MapPath("~/content/samples/");
//downloads
var downloadService = EngineContext.Current.Resolve<IDownloadService>();
var sampleDownloadsPath = _webHelper.MapPath("~/content/samples/");
//products
var allProducts = new List<Product>();
var product5GiftCard = new Product()
{
ProductType = ProductType.SimpleProduct,
VisibleIndividually = true,
Name = "$5 Virtual Gift Card",
ShortDescription = "$5 Gift Card. Gift Cards must be redeemed through our site Web site toward the purchase of eligible products.",
FullDescription = "<p>Gift Cards must be redeemed through our site Web site toward the purchase of eligible products. Purchases are deducted from the GiftCard balance. Any unused balance will be placed in the recipient's GiftCard account when redeemed. If an order exceeds the amount of the GiftCard, the balance must be paid with a credit card or other available payment method.</p>",
ProductTemplateId = productTemplateSimple.Id,
//SeName = "5-virtual-gift-card",
AllowCustomerReviews = true,
Price = 5M,
IsGiftCard = true,
GiftCardType = GiftCardType.Virtual,
ManageInventoryMethod = ManageInventoryMethod.DontManageStock,
OrderMinimumQuantity = 1,
OrderMaximumQuantity = 10000,
StockQuantity = 10000,
NotifyAdminForQuantityBelow = 1,
AllowBackInStockSubscriptions = false,
Published = true,
CreatedOnUtc = DateTime.UtcNow,
UpdatedOnUtc = DateTime.UtcNow
};
allProducts.Add(product5GiftCard);
product5GiftCard.ProductCategories.Add(new ProductCategory()
{
Category = _categoryRepository.Table.Single(c => c.Name == "Gift Cards"),
DisplayOrder = 1,
});
product5GiftCard.ProductPictures.Add(new ProductPicture()
{
Picture = pictureService.InsertPicture(File.ReadAllBytes(sampleImagesPath + "product_5giftcart.jpeg"), "image/jpeg", pictureService.GetPictureSeName(product5GiftCard.Name), true),
DisplayOrder = 1,
});
_productRepository.Insert(product5GiftCard);
var product25GiftCard = new Product()
{
ProductType = ProductType.SimpleProduct,
VisibleIndividually = true,
Name = "$25 Virtual Gift Card",
ShortDescription = "$25 Gift Card. Gift Cards must be redeemed through our site Web site toward the purchase of eligible products.",
FullDescription = "<p>Gift Cards must be redeemed through our site Web site toward the purchase of eligible products. Purchases are deducted from the GiftCard balance. Any unused balance will be placed in the recipient's GiftCard account when redeemed. If an order exceeds the amount of the GiftCard, the balance must be paid with a credit card or other available payment method.</p>",
ProductTemplateId = productTemplateSimple.Id,
//SeName = "25-virtual-gift-card",
AllowCustomerReviews = true,
Price = 25M,
IsGiftCard = true,
GiftCardType = GiftCardType.Virtual,
ManageInventoryMethod = ManageInventoryMethod.DontManageStock,
OrderMinimumQuantity = 1,
OrderMaximumQuantity = 10000,
StockQuantity = 10000,
NotifyAdminForQuantityBelow = 1,
AllowBackInStockSubscriptions = false,
Published = true,
ShowOnHomePage = true,
CreatedOnUtc = DateTime.UtcNow,
UpdatedOnUtc = DateTime.UtcNow
};
allProducts.Add(product25GiftCard);
product25GiftCard.ProductCategories.Add(new ProductCategory()
{
Category = _categoryRepository.Table.Single(c => c.Name == "Gift Cards"),
DisplayOrder = 2,
});
product25GiftCard.ProductPictures.Add(new ProductPicture()
{
Picture = pictureService.InsertPicture(File.ReadAllBytes(sampleImagesPath + "product_25giftcart.jpeg"), "image/jpeg", pictureService.GetPictureSeName(product25GiftCard.Name), true),
DisplayOrder = 1,
});
//.........这里部分代码省略.........
示例14: CopyProduct
/// <summary>
/// Create a copy of product with all depended data
/// </summary>
/// <param name="product">The product to copy</param>
/// <param name="newName">The name of product duplicate</param>
/// <param name="isPublished">A value indicating whether the product duplicate should be published</param>
/// <param name="copyImages">A value indicating whether the product images should be copied</param>
/// <param name="copyAssociatedProducts">A value indicating whether the copy associated products</param>
/// <returns>Product copy</returns>
public virtual Product CopyProduct(Product product, string newName,
bool isPublished = true, bool copyImages = true, bool copyAssociatedProducts = true)
{
if (product == null)
throw new ArgumentNullException("product");
if (String.IsNullOrEmpty(newName))
throw new ArgumentException("Product name is required");
//product download & sample download
int downloadId = product.DownloadId;
int sampleDownloadId = product.SampleDownloadId;
if (product.IsDownload)
{
var download = _downloadService.GetDownloadById(product.DownloadId);
if (download != null)
{
var downloadCopy = new Download
{
DownloadGuid = Guid.NewGuid(),
UseDownloadUrl = download.UseDownloadUrl,
DownloadUrl = download.DownloadUrl,
DownloadBinary = download.DownloadBinary,
ContentType = download.ContentType,
Filename = download.Filename,
Extension = download.Extension,
IsNew = download.IsNew,
};
_downloadService.InsertDownload(downloadCopy);
downloadId = downloadCopy.Id;
}
if (product.HasSampleDownload)
{
var sampleDownload = _downloadService.GetDownloadById(product.SampleDownloadId);
if (sampleDownload != null)
{
var sampleDownloadCopy = new Download
{
DownloadGuid = Guid.NewGuid(),
UseDownloadUrl = sampleDownload.UseDownloadUrl,
DownloadUrl = sampleDownload.DownloadUrl,
DownloadBinary = sampleDownload.DownloadBinary,
ContentType = sampleDownload.ContentType,
Filename = sampleDownload.Filename,
Extension = sampleDownload.Extension,
IsNew = sampleDownload.IsNew
};
_downloadService.InsertDownload(sampleDownloadCopy);
sampleDownloadId = sampleDownloadCopy.Id;
}
}
}
// product
var productCopy = new Product
{
ProductTypeId = product.ProductTypeId,
ParentGroupedProductId = product.ParentGroupedProductId,
VisibleIndividually = product.VisibleIndividually,
Name = newName,
ShortDescription = product.ShortDescription,
FullDescription = product.FullDescription,
VendorId = product.VendorId,
ProductTemplateId = product.ProductTemplateId,
AdminComment = product.AdminComment,
ShowOnHomePage = product.ShowOnHomePage,
MetaKeywords = product.MetaKeywords,
MetaDescription = product.MetaDescription,
MetaTitle = product.MetaTitle,
AllowCustomerReviews = product.AllowCustomerReviews,
LimitedToStores = product.LimitedToStores,
Sku = product.Sku,
ManufacturerPartNumber = product.ManufacturerPartNumber,
Gtin = product.Gtin,
IsGiftCard = product.IsGiftCard,
GiftCardType = product.GiftCardType,
RequireOtherProducts = product.RequireOtherProducts,
RequiredProductIds = product.RequiredProductIds,
AutomaticallyAddRequiredProducts = product.AutomaticallyAddRequiredProducts,
IsDownload = product.IsDownload,
DownloadId = downloadId,
UnlimitedDownloads = product.UnlimitedDownloads,
MaxNumberOfDownloads = product.MaxNumberOfDownloads,
DownloadExpirationDays = product.DownloadExpirationDays,
DownloadActivationType = product.DownloadActivationType,
HasSampleDownload = product.HasSampleDownload,
SampleDownloadId = sampleDownloadId,
HasUserAgreement = product.HasUserAgreement,
UserAgreementText = product.UserAgreementText,
IsRecurring = product.IsRecurring,
//.........这里部分代码省略.........
示例15: AddProductToOrderDetails
//.........这里部分代码省略.........
var year = form[controlId + "_year"];
DateTime? selectedDate = null;
try
{
selectedDate = new DateTime(Int32.Parse(year), Int32.Parse(month), Int32.Parse(day));
}
catch { }
if (selectedDate.HasValue)
{
attributesXml = _productAttributeParser.AddProductAttribute(attributesXml,
attribute, selectedDate.Value.ToString("D"));
}
}
break;
case AttributeControlType.FileUpload:
{
var httpPostedFile = this.Request.Files[controlId];
if ((httpPostedFile != null) && (!String.IsNullOrEmpty(httpPostedFile.FileName)))
{
var fileSizeOk = true;
if (attribute.ValidationFileMaximumSize.HasValue)
{
//compare in bytes
var maxFileSizeBytes = attribute.ValidationFileMaximumSize.Value * 1024;
if (httpPostedFile.ContentLength > maxFileSizeBytes)
{
warnings.Add(string.Format(_localizationService.GetResource("ShoppingCart.MaximumUploadedFileSize"), attribute.ValidationFileMaximumSize.Value));
fileSizeOk = false;
}
}
if (fileSizeOk)
{
//save an uploaded file
var download = new Download
{
DownloadGuid = Guid.NewGuid(),
UseDownloadUrl = false,
DownloadUrl = "",
DownloadBinary = httpPostedFile.GetDownloadBits(),
ContentType = httpPostedFile.ContentType,
Filename = Path.GetFileNameWithoutExtension(httpPostedFile.FileName),
Extension = Path.GetExtension(httpPostedFile.FileName),
IsNew = true
};
_downloadService.InsertDownload(download);
//save attribute
attributesXml = _productAttributeParser.AddProductAttribute(attributesXml,
attribute, download.DownloadGuid.ToString());
}
}
}
break;
default:
break;
}
}
#endregion
#region Gift cards
string recipientName = "";
string recipientEmail = "";
string senderName = "";
string senderEmail = "";
string giftCardMessage = "";