예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
            }
        }