예제 #1
0
        public async Task <ActionResult <OrderEntity> > CreateOrderEntity(OrderCreateResource createResource, string userId)
        {
            var creatingEntitiesResult = await GetCreatingEntities(createResource, userId);

            if (creatingEntitiesResult.Value == null)
            {
                return(creatingEntitiesResult.Result);
            }
            return(GetOrderEntity(creatingEntitiesResult.Value));
        }
예제 #2
0
        private async Task <ActionResult <OrderCreatingEntities> > GetCreatingEntities(OrderCreateResource createResource, string userId)
        {
            var creatingEntities = new OrderCreatingEntities();

            creatingEntities.User = await usersRepository.Get(userId);

            if (creatingEntities.User == null)
            {
                return(new UnauthorizedResult());
            }
            //TODO
            //creatingEntities.Address = creatingEntities.User.Adresses.FirstOrDefault(ad => ad.Id == createResource.AddressId);
            if (creatingEntities.Address == null)
            {
                return(NotFound(createResource.AddressId));
            }
            creatingEntities.Cart = await cartsRepository.Get(createResource.CartId);

            if (creatingEntities.Cart == null)
            {
                return(NotFound(createResource.CartId));
            }
            creatingEntities.DeliveryWindow = await deliveryWindowsRepository.Get(createResource.DeliveryWindowId);

            if (creatingEntities.DeliveryWindow == null)
            {
                return(NotFound(createResource.DeliveryWindowId));
            }
            creatingEntities.DeliveryWindow.Orders = null;
            return(creatingEntities);
        }