public async Task AddCategoryAsync(HttpRequest request) { // Addition IFormFile file = request.Form.Files.FirstOrDefault(); string newFileName = FileHelper.GetUniqueFileName(file?.FileName); //Category adding DB transaction using (var dbContextTransaction = _unitOfWork.BeginTransaction()) { try { Category category = new Category(); category.Name = request.Form["name"]; category.ImageFileName = FileHelper.FilterImageName(newFileName); await _unitOfWork.Categories.CreateAsync(category); await _unitOfWork.SaveAsync(); dbContextTransaction.Commit(); } catch (Exception ex) { dbContextTransaction.Rollback(); // Rollbacking DB ExceptionDispatchInfo.Capture(ex).Throw(); } } await FileHelper.AddImageAsync(file, newFileName); }
public async Task AddAsync(CategoryViewModel categoryVM) { string newFileName = FileHelper.GetUniqueFileName(categoryVM.ImageFile?.FileName); await AddCategoryAsync(categoryVM, newFileName); await FileHelper.AddImageAsync(categoryVM.ImageFile, newFileName); }
public async Task AddAsync(ProductViewModel productVM) { string newFileName = FileHelper.GetUniqueFileName(productVM.ImageFile?.FileName); await AddProductAsync(productVM, newFileName); await FileHelper.AddImageAsync(productVM.ImageFile, newFileName); await _auctionService.StartSaleAsync(productVM.Id, PriceHelper.DecimalToInt(productVM.Price)); // Statring sale }
public async Task <IActionResult> Add(CategoryViewModel categoryVM) { if (!ModelState.IsValid) { return(View(categoryVM)); // Validation failed. Return to add form } string newFileName = FileHelper.GetUniqueFileName(categoryVM.ImageFile?.FileName); await AddCategoryAsync(categoryVM, newFileName); await FileHelper.AddImageAsync(categoryVM.ImageFile, newFileName); return(Redirect("~/Category/Index")); }
public async Task <IActionResult> Add(ProductViewModel productVM) { if (!ModelState.IsValid) { InitCategorySelector(); return(View(productVM)); // Validation failed. Return to add form } string newFileName = FileHelper.GetUniqueFileName(productVM.ImageFile?.FileName); await AddProductAsync(productVM, newFileName); await FileHelper.AddImageAsync(productVM.ImageFile, newFileName); await _auctionService.StartSaleAsync(productVM.Id, PriceHelper.DecimalToInt(productVM.Price)); // Statring sale return(Redirect("~/Product/Index")); }
public async Task AddProductAsync(HttpRequest request) { // Addition IFormFile file = request.Form.Files.FirstOrDefault(); string newFileName = FileHelper.GetUniqueFileName(file?.FileName); //Product adding DB transaction using (var dbContextTransaction = _unitOfWork.BeginTransaction()) { try { Product product = new Product(); Category category = await _unitOfWork.Categories.FindAsync(c => c.Name == request.Form["categoryName"]); product.CategoryId = category.Id; product.Name = request.Form["name"]; product.Description = request.Form["description"]; product.Price = PriceHelper.StrToInt(request.Form["price"]); product.SellerPrice = product.Price; product.ImageFileName = FileHelper.FilterImageName(newFileName); product.Bidder = 0; await _unitOfWork.Products.CreateAsync(product); await _unitOfWork.SaveAsync(); dbContextTransaction.Commit(); } catch (Exception ex) { dbContextTransaction.Rollback(); // Rollbacking DB ExceptionDispatchInfo.Capture(ex).Throw(); } } await FileHelper.AddImageAsync(file, newFileName); await _auctionService.StartSaleAsync(Int64.Parse(request.Form["id"]), PriceHelper.StrToInt(request.Form["price"])); // Statring sale }