示例#1
0
        public async Task <IActionResult> UpdateCartridge(Guid id, CartridgeUpdateRequest request)
        {
            var result = await CartridgeService.UpdateCartridge(id, request);

            if (!result)
            {
                return(NotFound(ApiResponse.Failure("Update", $"Cartridge with id ${id} does not exist")));
            }

            return(Ok(ApiResponse.Success()));
        }
示例#2
0
        /// <summary>
        /// Updates cartridge
        /// </summary>
        /// <param name="cartridgeId">Cartridge to update id</param>
        /// <param name="request">Update data request</param>
        /// <returns>True if successful</returns>
        public async Task <bool> UpdateCartridge(Guid cartridgeId, CartridgeUpdateRequest request)
        {
            var cartridgeDb = await CartridgeRepo
                              .GetAll()
                              .FirstOrDefaultAsync(c => c.Id == cartridgeId);

            if (cartridgeDb == null)
            {
                return(false);
            }

            Mapper.Map(request, cartridgeDb);

            await MakeCopiesAvaOrUnava(request.CopiesToMakeAva, true, cartridgeDb.Id);
            await MakeCopiesAvaOrUnava(request.CopiesToMakeUnava, false, cartridgeDb.Id);

            var copiesAmount = request.CopiesToAddAva + request.CopiesToAddUnava;

            var copies = new List <CartridgeCopy>(copiesAmount);

            for (int i = 0; i < copiesAmount; ++i)
            {
                copies.Add(new CartridgeCopy
                {
                    CartridgeId = cartridgeDb.Id,
                    Avaible     = i < request.CopiesToAddAva
                });
            }

            CartridgeCopyRepo.AddRange(copies);

            await CartridgeRepo.SaveChangesAsync();

            CartridgeRepo.Update(cartridgeDb);
            await CartridgeRepo.SaveChangesAsync();

            return(true);
        }