public async Task <bool> AddItem(DocumentAddItemModel model) { try { //Это "немножко" плохой код; ввиду реализации всей инфраструктуры я потратил достаточное количество времени(для тестового задания). //Реализация методов обновления остатков должна быть заложена в репозиторий, что я не успеваю сделать :) //Тем не менее требуемый функционал реализован. var ctx = new StoreHouseContext(); var entityFrom = ctx.Stocks.SingleOrDefault(x => x.ProductId == model.Product.Id && x.WarehouseId == model.WarehouseFrom.Id); entityFrom.Value -= model.Value; ctx.Stocks.Update(entityFrom); var entityTo = ctx.Stocks.SingleOrDefault(x => x.ProductId == model.Product.Id && x.WarehouseId == model.WarehouseTo.Id); entityTo.Value += model.Value; ctx.Stocks.Update(entityTo); //плохой код закончен var warehouseFromItem = await _warehouseRepo.GetItemByid(model.WarehouseFrom.Id); //var warehouseFromStock = warehouseFromItem.Stocks.SingleOrDefault(x => x.ProductId == model.Product.Id); //warehouseFromStock.Value -= model.Value; //var warehouseToItem = await _warehouseRepo.GetItemByid(model.WarehouseTo.Id); //var warehouseToStock = warehouseFromItem.Stocks.SingleOrDefault(x => x.ProductId == model.Product.Id); //warehouseToStock.Value += model.Value; _documentsRepo.Add(new Documents { StockId = model.Product.Id, WarehouseFrom = model.WarehouseFrom.Id, WarehouseTo = model.WarehouseTo.Id, Value = model.Value }); ctx.SaveChanges();//сохранение контекста, вызванное плохим кодом выше _documentsRepo.SaveChanges(); return(true); } catch (Exception ex) { return(false); } }
public object Post(Document added) { object json; string messageError = ""; try { Document posted = repository.Add(added, ref messageError); if (posted != null) { json = new { total = 1, data = posted, success = true }; } else { json = new { message = messageError, success = false }; }; } catch (Exception ex) { LogManager.Write("ERROR:" + Environment.NewLine + "\tMETHOD = " + this.GetType().FullName + "." + MethodBase.GetCurrentMethod().Name + Environment.NewLine + "\tMESSAGE = " + ex.Message); object error = new { message = ex.Message }; json = new { message = ex.Message, success = false }; }; return(json); }
public void CreateDocumentsPivot(DocumentsPivot Documents) { GEN_Documents clas = Mapper.Map <DocumentsPivot, GEN_Documents>(Documents); documentsRepository.Add(clas); }