Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }