public HttpResponseMessage Update([FromBody] UpdateFurnitureDto furnitureDto) { return(Request.ExecuteProtectedAndWrapResult <UpdateFurnitureDto, FurnitureItemModel>( dto => FurnitureService.UpdateFurnitureItem(dto), ModelState, furnitureDto )); }
public FurnitureItemModel UpdateFurnitureItem(UpdateFurnitureDto dto) { return(ProtectedExecute <UpdateFurnitureDto, FurnitureItemModel>(furnitureDto => { AdminService.CheckActiveAdmin(furnitureDto.AdminSession); FurnitureItemModel model = Mapper.Map <UpdateFurnitureDto, FurnitureItemModel>(furnitureDto); IEnumerable <UsedPartModel> partsToAdd = furnitureDto.UsedPartsToAdd.Aggregate( new List <UsedPartModel>(), (acc, parts) => acc.Concat(Enumerable.Repeat(new UsedPartModel(parts.PartId.GetValueOrDefault()), parts.Count.GetValueOrDefault())).ToList() ); return FurnitureRepo.Update(model.Id, model, furnitureDto.UsedPartsToRemove, partsToAdd); }, dto)); }