Пример #1
0
 public void SetAsPaid()
 {
     Status = OrderStatuses.Paid;
 }
Пример #2
0
 public HasStatus(OrderStatuses status)
 {
     _status = status;
 }
Пример #3
0
 public OrderStatus GetOrderStatusByValue(OrderStatuses value)
 {
     return(DbContext.OrderStatuses.FirstOrDefault(g => g.Value == value));
 }
 public void Save(OrderStatuses orderStatuses)
 {
     _orderStatusesRepository.Add(orderStatuses);
     _unitOfWork.Complete();
 }
 public OrderResponse(OrderId orderId, OrderStatuses orderStatus, List <OrderItem> orderItems)
 {
     OrderId     = orderId;
     OrderStatus = orderStatus;
     OrderItems  = orderItems;
 }
Пример #6
0
 public static OrderStatus GetByOrderStatusEnum(OrderStatuses orderStatus)
 {
     return(OrderStatuses.SingleOrDefault(s => s.OrderStatusEnum == orderStatus));
 }
Пример #7
0
        public Order(int customerID, double weight, double volume, string from, string to, OrderStatuses os)
        {
            this.orderID    = ++ordersCount;
            this.customerID = customerID;
            this.weight     = weight;
            this.volume     = volume;
            this.from       = from;
            this.to         = to;
            this.startDate  = DateTime.Today.ToString();
            this.endDate    = null;
            switch (os)
            {
            case OrderStatuses.newOrder:
                this.orderStatus = 1;
                break;

            case OrderStatuses.openOrder:
                this.orderStatus = 2;
                break;

            case OrderStatuses.closeOrder:
                this.orderStatus = 3;
                break;

            case OrderStatuses.cancelOrder:
                this.orderStatus = 4;
                break;
            }
        }
        public async Task UpdateStausTestPositive(AccountRoles accountRole, OrderStatuses previousOrderStatus, OrderStatuses nextStatus)
        {
            //Arrange
            var owner = EntitiesCreationService.GetOwner();

            owner.HashedPassword = "******";
            var restaurant = EntitiesCreationService.GetRestaurant();

            owner.Restaurants = new List <Restaurant>()
            {
                restaurant
            };
            owner = await accountsRepository.AddAsync(owner);


            var account = EntitiesCreationService.GetOwner();

            account.HashedPassword = "******";
            account.Role           = accountRole;

            var order = EntitiesCreationService.GetOrder();

            var orderStatus = EntitiesCreationService.GetOrderStatus();

            orderStatus.Status  = previousOrderStatus;
            order.OrderStatuses = new List <OrderStatus>()
            {
                orderStatus
            };
            order.RestaurantId = owner.Restaurants[0].RestaurantId;
            account.Orders     = new List <Order>()
            {
                order
            };

            account = await accountsRepository.AddAsync(account);

            try
            {
                //Act
                await orderService.UpdateStaus(account.AccountId, account.Orders[0].EntityId, nextStatus);

                //Assert
                var statuses = ordersStatusRepository.GetAllStatusesForOrder(account.Orders[0].EntityId);
                Assert.Contains(statuses, s => s.Status == nextStatus);

                var orders = ordersRepository.GetAllOrdersForRegularUser(account.EntityId);
                Assert.Equal(orders[0].LatestOrderStatus, nextStatus);
            }
            finally
            {
                //Clear
                accountsRepository.Remove(account);
                accountsRepository.Remove(owner);
            }
        }
Пример #9
0
        public async Task <IActionResult> PutOrderStatus(string id, [FromBody] OrderStatusPutRequest req)
        {
            if (req.Status == null)
            {
                return(BadRequest(new ApiResponse
                {
                    Success = false,
                    ErrorCode = ErrorCodes.MISSING_FIELD,
                }));
            }
            var res = await _orderService.GetOrder(id);

            if (!res.Success)
            {
                return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
            }
            if (res.Data == null)
            {
                return(NotFound());
            }
            var order = res.Data;

            if (!OrderStatuses.isValidStatusChange(order.Status.CurrentStatus, req.Status, Role))
            {
                return(BadRequest(new ApiResponse
                {
                    Success = false,
                    ErrorCode = ErrorCodes.ORDER_INVALID_STATUS_CHANGE,
                }));
            }
            if (!order.UserId.Equals(UserId) && !order.RestaurantOwnerId.Equals(UserId))
            {
                return(Forbid());
            }
            var v = await _restaurantService.GetRestaurant(order.RestaurantId);

            if (!v.Success)
            {
                return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
            }
            if (v.Data == null)
            {
                return(Forbid());
            }
            var k = await _restaurantService.IsBlocked(order.UserId, order.RestaurantId);

            if (!k.Success)
            {
                return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
            }
            if (k.Data)
            {
                return(Forbid());
            }
            order.Status.CurrentStatus = req.Status;
            order.Status.StatusHistory.Add(new StatusHistoryItem
            {
                Date   = Utils.GetDateEpoch(),
                Status = req.Status
            });
            var result = await _orderService.UpdateOrderStatus(id, order);

            if (!result.Success)
            {
                return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
            }
            var user = await _userService.Get(res.Data.UserId);

            if (!user.Success)
            {
                return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
            }
            List <OrderItemDTO> list = new List <OrderItemDTO>();
            var f = await _restaurantService.GetAllFood(res.Data.RestaurantId);

            if (!f.Success)
            {
                return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
            }
            List <Food> foods = f.Data;

            foreach (var item in res.Data.Items)
            {
                OrderItemDTO ord = new OrderItemDTO
                {
                    FoodId   = item.FoodId,
                    Quantity = item.Quantity
                };
                if (foods != null)
                {
                    var cur = foods.Find(x => x.Id.Equals(item.FoodId));
                    ord.FoodName = cur.Name;
                    ord.Price    = cur.Price;
                }
                list.Add(ord);
            }
            OrderDTO o = new OrderDTO
            {
                Date = res.Data.Date,
                IsRestaurantDeleted = res.Data.IsRestaurantDeleted,
                IsUserBlocked       = res.Data.IsUserBlocked,
                OrderId             = res.Data.OrderId,
                RestaurantId        = res.Data.RestaurantId,
                RestaurantOwnerId   = res.Data.RestaurantOwnerId,
                Status         = res.Data.Status,
                RestaurantName = v.Data.Name,
                TotalPrice     = res.Data.TotalPrice,
                UserId         = res.Data.UserId,
                UserName       = user.Data.Name,
                Items          = list
            };

            return(Ok(new ApiResponse <OrderDTO>
            {
                Success = true,
                Data = o
            }));
        }
Пример #10
0
 public void Start()
 {
     Status = OrderStatuses.Processing;
 }
        public async Task UpdateStausTestNegative(AccountRoles accountRole, OrderStatuses previousOrderStatus, OrderStatuses nextStatus)
        {
            //Arrange
            var owner = EntitiesCreationService.GetOwner();

            owner.HashedPassword = "******";
            var restaurant = EntitiesCreationService.GetRestaurant();

            owner.Restaurants = new List <Restaurant>()
            {
                restaurant
            };
            owner = await accountsRepository.AddAsync(owner);


            var account = EntitiesCreationService.GetOwner();

            account.HashedPassword = "******";
            account.Role           = accountRole;

            var order = EntitiesCreationService.GetOrder();

            var orderStatus = EntitiesCreationService.GetOrderStatus();

            orderStatus.Status  = previousOrderStatus;
            order.OrderStatuses = new List <OrderStatus>()
            {
                orderStatus
            };
            order.RestaurantId = owner.Restaurants[0].RestaurantId;
            account.Orders     = new List <Order>()
            {
                order
            };

            account = await accountsRepository.AddAsync(account);

            try
            {
                //Act
                //Assert
                await Assert.ThrowsAnyAsync <Exception>(async() => await orderService.UpdateStaus(account.AccountId, account.Orders[0].EntityId, nextStatus));
            }
            finally
            {
                //Clear
                accountsRepository.Remove(account);
            }
        }
Пример #12
0
        internal List <TDto> RetrieveOrdersBySupplierAndStatus <TDto>(object instanceId, OrderStatuses status, IDataConverter <OrderData, TDto> converter)
            where TDto : class
        {
            ArgumentValidator.IsNotNull("instanceId", instanceId);
            ArgumentValidator.IsNotNull("status", status);
            ArgumentValidator.IsNotNull("converter", converter);
            IOrderService service = UnitOfWork.GetService <IOrderService>();

            var query = service.SearchBySupplierAndStatus(instanceId, (int)status);

            if (query.HasResult)
            {
                return(query.DataToDtoList(converter).ToList());
            }

            return(null);
        }
Пример #13
0
 public async Task ChangeOrderStatus(Order order, OrderStatuses status)
 {
     order.Status = status;
     context.Orders.Update(order);
     await context.SaveChangesAsync();
 }
 public void Update(OrderStatuses orderStatuses)
 {
     _orderStatusesRepository.Update(orderStatuses);
     _unitOfWork.Complete();
 }
 public async Task OrderStatusChangedNotify(int regularUserId, int orderId, int ownerId, OrderStatuses orderStatus)
 {
     var args = new
     {
         regularUserId,
         orderId,
         ownerId,
         orderStatus
     };
     await hubContext.Clients.All.SendAsync("onOrderStatusChanged", args);
 }
Пример #16
0
 public int CountOrdersByState(OrderStatuses OrderState)
 {
     return(3);
 }
Пример #17
0
        public OrderStatus GetOrderStatusByValue(OrderStatuses value)
        {
            var orderStatus = orderStatusesRepository.GetOrderStatusByValue(value);

            return(orderStatus);
        }
Пример #18
0
 public OrderStatus GetOrderStatusByOrderStatusEnum(OrderStatuses orderStatus)
 {
     return(DatabaseCommandDirectory.Instance.GetAllOrderStatuses().SingleOrDefault(s => s.OrderStatusEnum == orderStatus));
 }
Пример #19
0
 public void Start()
 {
     Status = OrderStatuses.PROCESSING;
 }
Пример #20
0
 public InvalidStatusTransitionException(OrderStatuses currentState, OrderStatuses targetState)
     : base($"It is not possible to switch from {currentState} status to {targetState} status")
 {
 }
Пример #21
0
 internal static void NewOrderMatch(string derived_currency, long order_id, int user_id, decimal actual_amount, OrderStatuses order_status) //new order status => DAEMON
 {
     Queues.daemon_queue.Enqueue(new OrderMatchMsg(derived_currency, order_id, user_id, actual_amount, (int)order_status));
 }
Пример #22
0
 public void Close()
 {
     Status = OrderStatuses.Closed;
 }