public async Task <IActionResult> GetById(int?id)
        {
            if (id == null)  //create new one
            {
                return(IdNotProvidedBadRequest());
            }
            Order order = await db.Orders.IncludeAll().AsNoTracking().SingleOrDefaultAsync(o => o.Id == id);

            if (order == null)
            {
                return(ModelNotFound(id));
            }

            //map to response
            OrderResponse orderResponse = OrderMapper.MapFromOrderToOrderResponse(order);

            return(Ok(orderResponse));
        }
        public async Task <IActionResult> Create([FromBody] OrderCreateRequest requestModel)
        {
            DateTime utcNow = DateTime.UtcNow;
            //map to entity
            Order order = OrderMapper.MapFromOrderCreateRequestToOrder(requestModel, utcNow);

            db.Orders.Add(order);

            await db.SaveChangesAsync();

            Order createdOrder = await db.Orders.IncludeAll().AsNoTracking().SingleOrDefaultAsync(o => o.Id == order.Id);

            var filePath = _excelService.CreateAndSaveFile(createdOrder);

            if (!string.IsNullOrEmpty(filePath))
            {
                _emailService.SendEmail(filePath, createdOrder.Category.Name);
            }

            //map to response
            OrderResponse orderResponse = OrderMapper.MapFromOrderToOrderResponse(order);

            return(CreatedAtAction(nameof(GetById), new { id = order.Id }, orderResponse));
        }