Beispiel #1
0
        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);
        }
Beispiel #2
0
        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
        }
Beispiel #4
0
        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"));
        }
Beispiel #6
0
        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
        }