public async Task <TMapTo> UpdateOrderAsync <TMapTo>(Order orderToUpdate) where TMapTo : Order { try { var address = await this.GetOrderByIdAsync(orderToUpdate.Id); var mappedDtoModel = _mapper.Map <Order, OrderDTO>(orderToUpdate, address); var updatedModel = _ordersContext.Orders.Update(mappedDtoModel); if (updatedModel is null) { throw new Exception( $"Can not update entity {typeof(OrderDTO)} using data from object parameter {nameof(orderToUpdate)}"); } await _ordersContext.SaveChangesAsync(); return(_mapper.Map <TMapTo>(updatedModel)); } catch (Exception ex) { throw new Exception( "Some error occured while updating order. Updated changes won't be applied", ex); } }
public async Task <TMapTo> CreateOrderAsync <TMapTo>(Order orderCreate) where TMapTo : Order { try { var mappedDtoModel = _mapper.Map <Order, OrderDTO>(orderCreate); var createdEntity = await _ordersContext.Orders.AddAsync(mappedDtoModel); if (createdEntity is null) { throw new Exception( $"Can not create entity {typeof(OrderDTO)} from parameter {nameof(orderCreate)}"); } await _ordersContext.SaveChangesAsync(); var mappedCreatedEntity = _mapper.Map <OrderDTO, TMapTo>(createdEntity); return(mappedCreatedEntity); } catch (Exception ex) { throw new Exception(ex.Message); } }