public Guid SaveFile(string fileName, byte[] content, Guid playerId, Guid brandId, Guid licenseeId) { var fileId = _fileStorage.Save(fileName, content); _repository.Metadatas.Add(new FileMetadata { FileId = fileId, LicenseeId = licenseeId, BrandId = brandId, PlayerId = playerId }); _repository.SaveChanges(); return(fileId); }
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); } }