private void EditSale_Click(object sender, RoutedEventArgs e) { if (SaleGrid.SelectedItem != null) { UpdateSaleForm form = new UpdateSaleForm((Sale)SaleGrid.SelectedItem); if (form.ShowDialog() == true) { db.UpdateSale(form.sale); SaleCollection.RemoveAt(SaleGrid.SelectedIndex); SaleCollection.Add(form.sale); } } }
public async Task <HbResult <HbSale> > Update(UpdateSaleForm form) { var lotExist = await _dc.Lots.Where(u => !u.IsDeleted && u.Id == form.LotId).AnyAsync(); if (!lotExist) { return(new HbResult <HbSale>(ErrorCodes.LotNotFound)); } var sale = await _dc.Sales.FirstOrDefaultAsync(u => u.Id == form.Id && !u.IsDeleted); if (sale == null) { return(new HbResult <HbSale>(ErrorCodes.SaleNotFound)); } if (form.Type != SalesTypes.Egg) { var soldChickens = await _dc.Sales.Where(u => u.LotId == form.LotId && u.Id != form.Id && u.Type != SalesTypes.Egg && !u.IsDeleted).SumAsync(u => u.Count); var broodCount = await _dc.Broods.Where(u => u.LotId == form.LotId && !u.IsDeleted).SumAsync(u => u.Count); if (form.Count > broodCount - soldChickens) { return(new HbResult <HbSale>(ErrorCodes.SalesCountMoreThanBroodCount)); } } sale.SaleDate = form.SaleDate; sale.Comment = form.Comment; sale.Count = form.Count; sale.Amount = form.Amount; sale.Buyer = form.Buyer; sale.Type = form.Type; sale.LotId = form.LotId; await _dc.SaveChangesAsync(); await _lotsUnit.RecalculateLot(form.LotId); return(new HbResult <HbSale>(_mapper.Map <HbSale>(sale))); }
public async Task <IActionResult> Edit(UpdateSaleForm form) { if (!ModelState.IsValid) { await InitLotsList(form); return(View(form)); } var res = await _sales.Update(form); if (res.IsCorrect) { return(RedirectToAction(nameof(List))); } ViewData[ViewDataKeys.ErrorMessage] = res.ErrorMessage; await InitLotsList(form); return(View(form)); }