public async Task <OrderDto> CreateOrder(OrderCreateOrUpdateDto input)
        {
            var userId = HttpContext.Current.User.Identity.GetUserId();
            var entity = input.MapTo <Eron.Core.Entities.Financial.Order.Order>();

            entity.UserId      = userId;
            entity.OrderNumber = GenerateOrderNumber();
            entity.OrderStatus = OrderStatusType.NeedInvoice;
            entity.Id          = Guid.NewGuid();

            //if (entity.HasDesignOrder)
            //{
            //    entity.DesignPrice = entity.Tariff.DesignPrice.HasValue ?
            //        entity.Tariff.DesignPrice.Value : 0;
            //}

            UnitOfWork.OrderRepository.Create(entity);
            await UnitOfWork.SaveAsync();

            foreach (var imageId in input.ImageIds)
            {
                var eronFile = await _fileHelper.GetFileAsync(imageId);

                await _fileHelper.TransferToDatabaseAsync(eronFile);

                eronFile.OrderId = entity.Id;
                UnitOfWork.FileRepository.Update(eronFile);
                await UnitOfWork.SaveAsync();
            }

            return(entity.MapTo <OrderDto>());
        }
Example #2
0
        public async Task<IHttpActionResult> Post(OrderCreateOrUpdateDto input)
        {
            if (!ModelState.IsValid)
                return BadRequest(ModelState);

            var result = await _orderAppService.CreateOrder(input);
            return Ok(result);
        }