public async Task <IActionResult> Index(IEnumerable <FertilizerViewModel> fertilizers)
        {
            if (!ModelState.IsValid)
            {
                TempData["message"] = "Błąd: Wystąpił problem. Nie wprowadzono zmian";
                return(View(fertilizers));
            }

            var FertilizersToSave = fertilizers.Select(x => new Fertilizer
            {
                Id   = x.Id,
                Name = x.Name,
                N    = x.N,
                P    = x.P,
                K    = x.K,
                Ca   = x.Ca,
                Mg   = x.Mg,
                S    = x.S,
                Na   = x.Na,
            });


            foreach (var item in FertilizersToSave)
            {
                await _fertilizerRepository.Update(item);
            }

            var fertilizersToDelete = fertilizers.Where(x => x.Delete == true);

            foreach (var item in fertilizersToDelete)
            {
                var fertilizer = await _fertilizerRepository.GetById(item.Id);

                await _fertilizerRepository.Delete(fertilizer);
            }
            TempData["message"] = "Zmiany zapisano pomyślnie!";
            return(RedirectToAction("Index"));
        }
Пример #2
0
        public override async Task <int> HandleCommand(DeleteCommand request, CancellationToken cancellationToken)
        {
            var fertilizer = await fertilizerQueries.GetById(request.Id);

            if (fertilizer == null)
            {
                throw new BusinessException("Fertilizer.NotExisted");
            }
            var rs = -1;

            using (var conn = DALHelper.GetConnection())
            {
                conn.Open();
                using (var trans = conn.BeginTransaction())
                {
                    try
                    {
                        fertilizer.IsDeleted = true;
                        fertilizer           = UpdateBuild(fertilizer, request.LoginSession);

                        if (await fertilizerRepository.Update(fertilizer) > 0)
                        {
                            rs = 0;
                        }
                    }
                    finally
                    {
                        if (rs == 0)
                        {
                            trans.Commit();
                        }
                        else
                        {
                            try
                            {
                                trans.Rollback();
                            }
                            catch { }
                        }
                    }
                }
            }

            return(rs);
        }
Пример #3
0
        public override async Task <int> HandleCommand(UpdateCommand request, CancellationToken cancellationToken)
        {
            if (request.Fertilizer == null || request.Fertilizer.Id == 0)
            {
                throw new BusinessException("Fertilizer.NotExisted");
            }

            var fertilizer = await fertilizerQueries.GetById(request.Fertilizer.Id);

            if (fertilizer == null)
            {
                throw new BusinessException("Fertilizer.NotExisted");
            }

            if ((request.Fertilizer?.CategoryId ?? 0) > 0)
            {
                var category = await fertilizerCategoryQueries.GetById(request.Fertilizer.CategoryId ?? 0);

                if (category == null)
                {
                    throw new BusinessException("Category.NotExisted");
                }
            }

            var rs = -1;

            using (var conn = DALHelper.GetConnection())
            {
                conn.Open();
                using (var trans = conn.BeginTransaction())
                {
                    try
                    {
                        request.Fertilizer.CreatedDate = fertilizer.CreatedDate;
                        request.Fertilizer.CreatedBy   = fertilizer.CreatedBy;
                        request.Fertilizer             = UpdateBuild(request.Fertilizer, request.LoginSession);
                        request.Fertilizer.Code        = string.IsNullOrWhiteSpace(fertilizer.Code)
                            ? (await storageQueries.GenarateCodeAsync(StorageKeys.FertilizerCode))
                            : fertilizer.Code;

                        rs = await fertilizerRepository.Update(request.Fertilizer);

                        if (rs == 0)
                        {
                            return(-1);
                        }

                        rs = 0;
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                    finally
                    {
                        if (rs == 0)
                        {
                            trans.Commit();
                        }
                        else
                        {
                            try
                            {
                                trans.Rollback();
                            }
                            catch { }
                        }
                    }
                }
            }

            return(rs);
        }