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())); }
/// <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); }