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")); }
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); }
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); }