public async Task <IActionResult> Add() { var form = new CreateLayingForm(); await InitLotsList(form); return(View(form)); }
public async Task <IActionResult> Add(CreateLayingForm form) { if (!ModelState.IsValid) { await InitLotsList(form); return(View(form)); } var res = await _laying.Create(form); if (res.IsCorrect) { return(RedirectToAction(nameof(List))); } ViewData[ViewDataKeys.ErrorMessage] = res.ErrorMessage; await InitLotsList(form); return(View(form)); }
public async Task <HbResult <HbLaying> > Create(CreateLayingForm form) { var lotExist = await _dc.Lots.Where(u => !u.IsDeleted && u.Id == form.LotId).AnyAsync(); if (!lotExist) { return(new HbResult <HbLaying>(ErrorCodes.LotNotFound)); } var incubatorExist = await _dc.Incubators.AnyAsync(u => !u.IsDeleted && u.Id == form.IncubatorId); if (!incubatorExist) { return(new HbResult <HbLaying>(ErrorCodes.IncubatorNotFound)); } var purchasesEggs = await _dc.Purchases.Where(u => u.LotId == form.LotId && !u.IsDeleted).SumAsync(u => u.Count); var existLayings = await _dc.Layings.Where(u => u.LotId == form.LotId && !u.IsDeleted).SumAsync(u => u.Count); if (purchasesEggs - existLayings < form.Count) { return(new HbResult <HbLaying>(ErrorCodes.LayingCountMoreThanPurchasesCount)); } var laying = _dc.Layings.Add(new HbLayings { Count = form.Count, LayingDate = form.LayingDate, LotId = form.LotId, IncubatorId = form.IncubatorId, CreationDate = DateTimeOffset.UtcNow }); await _dc.SaveChangesAsync(); await _lots.RecalculateLot(form.LotId); return(new HbResult <HbLaying>(_mapper.Map <HbLaying>(laying.Entity))); }
private async Task InitLotsList(CreateLayingForm form) { form.Lots = await _lots.GetList(new PagedLotsForm()); form.Incubators = await _incub.GetList(); }