public List <ProductColour> GetAllColour() { try { string query = @"SELECT * FROM [dbo].[ProductColour]"; SqlCommand cmd = new SqlCommand(query, con); con.Open(); SqlDataReader reader = cmd.ExecuteReader(); List <ProductColour> aList = new List <ProductColour>(); while (reader.Read()) { ProductColour aCategory = new ProductColour(); aCategory.ProductColourId = (int)reader["ProductColourId"]; aCategory.ProductColourName = reader["ProductColour"].ToString(); aList.Add(aCategory); } reader.Close(); return(aList); } catch (Exception exception) { return(null); } finally { con.Close(); } }
public ActionResult SaveColour(ProductColour productColour) { if (ModelState.IsValid) { ViewBag.Msg = aProductColourManager.SaveColour(productColour); } return(View()); }
static ProductColourInfo Convert(ProductColour colour) { return(new ProductColourInfo { Guid = colour.Guid, NameTranslations = JsonConvert.DeserializeObject <TranslationInfo[]>(colour.NameTranslations), ProductGuid = colour.ProductGuid, Value = colour.Value }); }
public string SaveColour(ProductColour productColour) { if (aProductColourGateway.SaveColour(productColour) > 0) { return("Product Colour has been saved successfully"); } else { return("Failed to save Product Colour"); } }
// GET: /<controller>/ public IActionResult Product(long id, string statusMessage = null, string successMessage = null, string failureMessage = null, string returnUrl = null) { var viewModel = new ProductViewModel() { Product = _context.Products.Where(x => x.Id == id). Include(c => c.ProductBrand). Include(c => c.ProductColours). Include(c => c.ProductSizes). Include(c => c.ProductImages). SingleOrDefault(), StatusMessage = statusMessage, SuccessMessage = successMessage, FailureMessage = failureMessage }; if (string.IsNullOrWhiteSpace(returnUrl)) { viewModel.ReturnUrl = "~/Products"; } else { viewModel.ReturnUrl = returnUrl.Replace(";amp;", "&"); } viewModel.Sizes = ProductSize.GetList(viewModel.Product.ProductSizes); viewModel.Colours = ProductColour.GetList(viewModel.Product.ProductColours); viewModel.Product.Description = viewModel.Product.Description.Replace(System.Environment.NewLine, "<br />"); if (viewModel.Product.ProductImages.Count == 0) { viewModel.Product.ProductImages.Add(new ProductImage() { Uri = "https://farm5.staticflickr.com/4705/40336899591_bdc86eddb2_o.png" }); } // get related products viewModel.RelatedProducts = _context.Products. Where(x => x.ProductBrandId == viewModel.Product.ProductBrandId). Include(p => p.Department). Include(p => p.ProductBrand). Include(p => p.ProductSizes). Include(p => p.ProductImages). Include(p => p.ProductColours). Where(x => x.Stock > 0). ToList(); return(View(viewModel)); //return ControllerHelper.RedirectToLocal(this, "/Home/ComingSoon"); }
public void Delete(Guid id) { using (DatabaseContext context = new DatabaseContext()) { ProductColour color = (from c in context.ProductColours where c.Guid == id select c).FirstOrDefault(); if (color == null) { return; } context.ProductColours.Remove(color); context.SaveChanges(); } }
public void Post(ProductColourInfo request) { if (request.ProductGuid == Guid.Empty) { throw new HttpResponseException(HttpStatusCode.BadRequest); } using (DatabaseContext context = new DatabaseContext()) { ProductColour newColour = new ProductColour { Guid = Guid.NewGuid(), NameTranslations = JsonConvert.SerializeObject(request.NameTranslations), Value = request.Value, ProductGuid = request.ProductGuid }; context.ProductColours.Add(newColour); context.SaveChanges(); } }
public int SaveColour(ProductColour productColour) { try { string query = @"INSERT INTO [dbo].[ProductColour] ([ProductColour]) VALUES('" + productColour.ProductColourName + "')"; SqlCommand cmd = new SqlCommand(query, con); con.Open(); int rowAffected = cmd.ExecuteNonQuery(); return(rowAffected); } catch (Exception exception) { return(0); } finally { con.Close(); } }
public IActionResult EditProduct(long id, string statusMessage = null, string successMessage = null, string failureMessage = null) { var viewModel = new NewEditProductViewModel() { Product = _context.Products.Where(x => x.Id == id). Include(c => c.ProductBrand). Include(c => c.ProductColours). Include(c => c.ProductSizes). Include(c => c.ProductImages). Include(c => c.Department). SingleOrDefault(), StatusMessage = statusMessage, SuccessMessage = successMessage, FailureMessage = failureMessage, ReturnUrl = "~/ManageProducts" }; viewModel.ProductSizes = ProductSize.GetList(viewModel.Product.ProductSizes); viewModel.ProductColours = ProductColour.GetList(viewModel.Product.ProductColours); viewModel.ProductImages = ProductImage.GetList(viewModel.Product.ProductImages); viewModel.Brands = ProductBrand.GetList(_context.ProductBrands.OrderBy(b => b.Brand).OrderBy(x => x.Brand).ToList()); viewModel.Colours = Colour.GetList(_context.Colours.OrderBy(c => c.Value).ToList()); viewModel.Departments = Department.GetList(_context.Departments.OrderBy(d => d.DepartmentName).ToList()); viewModel.Sizes = Size.GetList(_context.Sizes.OrderBy(s => s.Value).ToList()); viewModel.Brand = viewModel.Product.ProductBrand.Brand; viewModel.Department = viewModel.Product.Department.DepartmentName; if (viewModel.Product.ProductImages.Count == 0) { viewModel.Product.ProductImages.Add(new ProductImage() { Uri = "https://farm5.staticflickr.com/4705/40336899591_bdc86eddb2_o.png" }); } return(View(viewModel)); }
public JsonResult IsColourExists(ProductColour productColour) { bool isExist = aProductColourManager.IsColourExists(productColour.ProductColourName); return(Json(!isExist, JsonRequestBehavior.AllowGet)); }
public async Task <IActionResult> PreviewProduct(NewEditProductViewModel viewModel) { // create product images var inDb = _context.Products. Where(x => x.Id == viewModel.Product.Id). Include(x => x.ProductImages).SingleOrDefault(); List <ProductImage> productImages = new List <ProductImage>(); foreach (var image in inDb.ProductImages) { if (viewModel.Image != null) { foreach (var item in viewModel.Image) { if (image.Uri.Replace("https://d3rlz58riodgu6.cloudfront.net/", "").Replace("?Authorization", "") == item) { productImages.Add(new ProductImage() { Uri = image.Uri }); } } } } //add new images if (viewModel.ImageFiles != null) { foreach (var item in viewModel.ImageFiles) { var filePath = Path.GetTempPath(); var filename = filePath + _storeName + '_' + Guid.NewGuid(); using (var stream = new FileStream(filename, FileMode.Create)) { await item.CopyToAsync(stream); } S3Helper.UploadToS3(filename, S3Helper.tempBucketName); var image = new ProductImage() { Uri = "https://s3.amazonaws.com/gustafgallerystore-tempimages/" + _storeName + '_' + item.FileName.ToString() + "?Authorization" }; productImages.Add(image); } } viewModel.ProductImagePreview = productImages; //add sizes List <ProductSize> productSizes = new List <ProductSize>(); foreach (var item in viewModel.Size) { var size = new ProductSize() { Size = item.ToString() }; productSizes.Add(size); } viewModel.Product.ProductSizes = productSizes; //add colour List <ProductColour> productColours = new List <ProductColour>(); foreach (var item in viewModel.Colour) { var colour = new ProductColour() { Colour = item.ToString() }; productColours.Add(colour); } // get related products viewModel.RelatedProducts = _context.Products. Where(x => x.ProductBrandId == _context.ProductBrands. Where(y => y.Brand == viewModel.Brand).SingleOrDefault().Id ). Include(x => x.ProductImages). ToList(); viewModel.Product.ProductColours = productColours; return(View(viewModel)); }
public async Task <IActionResult> EditProduct(NewEditProductViewModel input, string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; bool modelValid = true; decimal priceComparison = 0; if (string.IsNullOrWhiteSpace(input.Product.Title) || input.Product.Price == priceComparison || string.IsNullOrWhiteSpace(input.Department) || string.IsNullOrWhiteSpace(input.Brand)) { modelValid = false; } if (modelValid) { try { //extract from db var inDb = new Product(); inDb = _context.Products.Where(x => x.Id == input.Product.Id). Include(c => c.ProductBrand). Include(c => c.ProductColours). Include(c => c.ProductSizes). Include(c => c.ProductImages). Include(c => c.Department). SingleOrDefault(); //update product inDb.Price = input.Product.Price; inDb.Description = input.Product.Description; inDb.Stock = input.Product.Stock; inDb.Title = input.Product.Title; //Prepare Product if (inDb.Department.DepartmentName != input.Department) { //Department var department = new Department(); department = _context.Departments.Where(x => x.DepartmentName == input.Department).SingleOrDefault(); inDb.Department = department; } if (inDb.ProductBrand.Brand != input.Brand) { //brand var brand = new ProductBrand(); brand = _context.ProductBrands.Where(x => x.Brand == input.Brand).SingleOrDefault(); inDb.ProductBrand = brand; } //add sizes List <ProductSize> productSizes = new List <ProductSize>(); foreach (var item in input.Size) { var size = new ProductSize() { Size = item.ToString() }; productSizes.Add(size); } inDb.ProductSizes = productSizes; //add colour List <ProductColour> productColours = new List <ProductColour>(); foreach (var item in input.Colour) { var colour = new ProductColour() { Colour = item.ToString() }; productColours.Add(colour); } inDb.ProductColours = productColours; //images List <ProductImage> productImages = new List <ProductImage>(); //remove old images foreach (var image in inDb.ProductImages) { bool deleteImage = true; if (input.Image != null) { foreach (var item in input.Image) { if (image.Uri.Replace("https://d3rlz58riodgu6.cloudfront.net/", "").Replace("?Authorization", "") == item) { deleteImage = false; } } } if (deleteImage) { S3Helper.DeleteFromS3Async(image.Uri, S3Helper.bucketName); _context.Remove(image); } else { //add image to new list productImages.Add(image); } } //add new images if (input.ImageFiles != null) { foreach (var item in input.ImageFiles) { var filePath = Path.GetTempPath(); var filename = filePath + _storeName + '_' + $@"{item.FileName}"; using (var stream = new FileStream(filename, FileMode.Create)) { await item.CopyToAsync(stream); } S3Helper.UploadToS3(filename, S3Helper.bucketName); var image = new ProductImage() { Uri = "https://d3rlz58riodgu6.cloudfront.net/" + _storeName + '_' + item.FileName.ToString() + "?Authorization" }; productImages.Add(image); } } inDb.ProductImages = productImages; //update Product _context.Update(inDb); input.SuccessMessage = "Product updated"; _context.SaveChanges(); return(ControllerHelper.RedirectToLocal(this, string.Format("/ManageProducts?successMessage={0}", input.SuccessMessage))); } catch (System.Exception ex) { input.FailureMessage = "An Error occured; " + ex.Message; } } input.Brands = ProductBrand.GetList(_context.ProductBrands.OrderBy(b => b.Brand).ToList()); input.Colours = Colour.GetList(_context.Colours.OrderBy(c => c.Value).ToList()); input.Sizes = Size.GetList(_context.Sizes.OrderBy(s => s.Value).ToList()); input.Departments = Department.GetList(_context.Departments.OrderBy(d => d.DepartmentName).ToList()); input.StatusMessage = StatusMessage; input.Product.ProductImages = _context.ProductImages.Where(x => x.ProductId == input.Product.Id).ToList(); if (input.Product.ProductImages.Count == 0) { input.Product.ProductImages.Add(new ProductImage() { Uri = "https://farm5.staticflickr.com/4705/40336899591_bdc86eddb2_o.png" }); } return(View(input)); }
public async Task <IActionResult> AddProduct(NewEditProductViewModel input, string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; bool modelValid = true; decimal priceComparison = 0; if (string.IsNullOrWhiteSpace(input.Product.Title) || input.Product.Price == priceComparison || string.IsNullOrWhiteSpace(input.Department) || string.IsNullOrWhiteSpace(input.Brand)) { modelValid = false; } if (modelValid) { try { //Prepare Product input.Product.CreateDate = DateTime.Now; //Department var department = new Department(); department = _context.Departments.Where(x => x.DepartmentName == input.Department).SingleOrDefault(); input.Product.Department = department; //brand var brand = new ProductBrand(); brand = _context.ProductBrands.Where(x => x.Brand == input.Brand).SingleOrDefault(); input.Product.ProductBrand = brand; //add sizes List <ProductSize> productSizes = new List <ProductSize>(); foreach (var item in input.Size) { var size = new ProductSize() { Size = item.ToString() }; productSizes.Add(size); } input.Product.ProductSizes = productSizes; //add sizes List <ProductColour> productColours = new List <ProductColour>(); foreach (var item in input.Colour) { var colour = new ProductColour() { Colour = item.ToString() }; productColours.Add(colour); } input.Product.ProductColours = productColours; //images List <ProductImage> productImages = new List <ProductImage>(); if (input.ImageFiles != null) { foreach (var item in input.ImageFiles) { var filePath = Path.GetTempPath(); var filename = filePath + _storeName + '_' + $@"{item.FileName}"; using (var stream = new FileStream(filename, FileMode.Create)) { await item.CopyToAsync(stream); } S3Helper.UploadToS3(filename, S3Helper.bucketName); var image = new ProductImage() { Uri = "https://d3rlz58riodgu6.cloudfront.net/" + _storeName + '_' + item.FileName.ToString() + "?Authorization" }; productImages.Add(image); } } input.Product.ProductImages = productImages; //Create product code //var producCode = string.Concat(input.Product.ProductBrand.BrandCode.ToUpper(), '_', input.Product.Department.DepartmentCode, '_', input.Product.Title.Substring(0, 3).ToUpper()); //input.Product.ProductCode = GenerateProductCode(producCode); //Create Product _context.Add(input.Product); _context.SaveChanges(); input.Product.ProductCode = string.Concat(input.Product.ProductBrand.Id, '-', input.Product.Department.Id, '-', input.Product.Id); _context.Update(input.Product); _context.SaveChanges(); input.SuccessMessage = "Product added"; return(ControllerHelper.RedirectToLocal(this, string.Format("/ManageProducts?successMessage={0}", input.SuccessMessage))); } catch (System.Exception ex) { input.FailureMessage = "An Error occured; " + ex.Message; } } input.Brands = ProductBrand.GetList(_context.ProductBrands.OrderBy(b => b.Brand).ToList()); input.Colours = Colour.GetList(_context.Colours.OrderBy(c => c.Value).ToList()); input.Sizes = Size.GetList(_context.Sizes.OrderBy(s => s.Value).ToList()); input.Departments = Department.GetList(_context.Departments.OrderBy(d => d.DepartmentName).ToList()); input.StatusMessage = StatusMessage; return(View(input)); }