public async Task <ActionResult> Add(WebUser user, PayingItemModel pItem, int typeOfFlow) { if (ModelState.IsValid) { if (pItem.PayingItem.Date.Month > DateTime.Today.Date.Month || pItem.PayingItem.Date.Year > DateTime.Today.Year) { pItem.PayingItem.Date = DateTime.Today.Date; } try { if (pItem.Products == null) { await _payingItemService.CreateAsync(pItem.PayingItem); } else { var summ = pItem.Products.Sum(x => x.Price); if (summ != 0) { pItem.PayingItem.Summ = summ; } _payingItemHelper.CreateCommentWhileAdd(pItem); await _payingItemService.CreateAsync(pItem.PayingItem); await _pItemProductHelper.CreatePayingItemProduct(pItem); } } catch (ServiceException e) { throw new WebUiException( $"Ошибка в контроллере {nameof(PayingItemController)} в методе {nameof(Add)}", e); } catch (WebUiHelperException e) { throw new WebUiException( $"Ошибка в контроллере {nameof(PayingItemController)} в методе {nameof(Add)}", e); } catch (Exception e) { throw new WebUiException( $"Ошибка в контроллере {nameof(PayingItemController)} в методе {nameof(Add)}", e); } return(RedirectToAction("List")); } await FillViewBag(user, typeOfFlow); return(PartialView(pItem)); }
public async Task <PayingItem> CreateAsync(PayingItem item) { var insertedItem = await _payingItemService.CreateAsync(item); await _serviceTrigger.Insert(insertedItem); return(insertedItem); }
public async Task <PayingItem> CreatePayingItemFromViewModel(PayingItemModel model) { if (model is null) { throw new ArgumentNullException(nameof(model)); } try { if (model.PayingItem.Date.Month > DateTime.Today.Date.Month || model.PayingItem.Date.Year > DateTime.Today.Year) { model.PayingItem.Date = DateTime.Today.Date; } if (model.Products != null) { var sum = model.Products.Sum(x => x.Price); if (sum != 0) { model.PayingItem.Summ = sum; } CreateCommentWhileAdd(model); var itemsToAdd = model.Products.Where(x => x.ProductID != 0) .Select(product => new PayingItemProduct() { PayingItemId = model.PayingItem.ItemID, ProductId = product.ProductID, Price = product.Price }); foreach (var item in itemsToAdd) { model.PayingItem.PayingItemProducts.Add(item); } } return(await _payingItemService.CreateAsync(model.PayingItem)); } catch (ServiceException e) { throw new WebUiException($"Ошибка в типе {nameof(PayingItemCreator)} в методе {nameof(CreatePayingItemFromViewModel)}", e); } catch (Exception e) { throw new WebUiException($"Ошибка в типе {nameof(PayingItemCreator)} в методе {nameof(CreatePayingItemFromViewModel)}", e); } }