Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
 public static OrderItem AsModel(this OrderItemInputResource source, IMapper mapper)
 => mapper.Map <OrderItem>(source);
Пример #4
0
        public async Task <ObjectResult> Update(int id, [FromBody] OrderItemInputResource inputOrderItem)
        {
            var result = await service.UpdateAsync(id, inputOrderItem);

            return(result.AsResource(mapper));
        }
Пример #5
0
        public async Task <ObjectResult> Post([FromBody] OrderItemInputResource inputOrderItem)
        {
            var response = await service.AddAsync(inputOrderItem);

            return(response.AsResource(mapper));
        }