public async Task <Response <OrderItem> > UpdateAsync(int id, OrderItemInputResource inputOrderItem) { if (id <= 0) { return("Record not found"); } var orderItem = await workUnit.OrderItemRepository.GetByIdAsync(id, true); if (orderItem == null) { return("Record not found"); } mapper.Map(inputOrderItem, orderItem); if (!workUnit.OrderItemRepository.HasDataChanged) { return("Data is not modified"); } try { await workUnit.SaveAsync(); return(orderItem); } catch (DbUpdateConcurrencyException) { return("Record not found"); } catch (Exception ex) { logger.LogError(ex, "Exception thrown while accessing database"); return(InternalServerError); } }
public async Task <Response <OrderItem> > AddAsync(OrderItemInputResource inputOrderItem) { var orderItem = inputOrderItem.AsModel(mapper); try { await workUnit.OrderItemRepository.AddAsync(orderItem); //After SaveAsync() orderItem entity has updated automatically (its Id), //we don't need to retrieve it from DB await workUnit.SaveAsync(); return(orderItem); } catch (Exception ex) { logger.LogError(ex, "Exception thrown while accessing database"); return(InternalServerError); } }
public static OrderItem AsModel(this OrderItemInputResource source, IMapper mapper) => mapper.Map <OrderItem>(source);
public async Task <ObjectResult> Update(int id, [FromBody] OrderItemInputResource inputOrderItem) { var result = await service.UpdateAsync(id, inputOrderItem); return(result.AsResource(mapper)); }
public async Task <ObjectResult> Post([FromBody] OrderItemInputResource inputOrderItem) { var response = await service.AddAsync(inputOrderItem); return(response.AsResource(mapper)); }