Example #1
0
        public async Task <OrderItemVM> CreateNewOrderItem(CreateOrderItemVM vm)
        {
            var orderUser = _db.OrderUsers.GetAll().FirstOrDefault(m => m.UserProfileId == vm.UserProfileId && m.Order.IsActive);

            if (vm.OrderId == 0 && orderUser?.Order.Id != null)
            {
                vm.OrderId = orderUser.Order.Id;
            }

            var orderItem = orderUser?.Order.OrderItems.FirstOrDefault(m => m.MenuItemId == vm.MenuItemId && m.UserId == vm.UserProfileId);

            if (orderItem != null)
            {
                vm.Count = orderItem.Count + 1;
                vm.Id    = orderItem.Id;
                return(await UpdateNewOrderItem(vm));
            }

            var dbItem = new OrderItem
            {
                OrderId      = vm.OrderId,
                Count        = vm.Count,
                MenuItemId   = vm.MenuItemId,
                PricePerItem = vm.PricePerItem,
                Status       = vm.Status,
                Title        = vm.Title,
                UserId       = vm.UserProfileId
            };
            var newItem = await _db.OrderItems.CreateAsync(dbItem);

            var order = _db.Orders.GetAll().FirstOrDefault(m => m.Id == vm.OrderId);

            return(new OrderItemVM(newItem, order.Location.Currency));
        }
Example #2
0
        public async Task UpdateOrderItem(CreateOrderItemVM vm)
        {
            try
            {
                var item = await _orderService.UpdateNewOrderItem(vm);

                var orderers = connects.Where(m => m.OrderIds.Contains(item.OrderId)).Select(m => m.ConnectionId).ToList();
                await Clients.Clients(orderers).SendAsync("UpdateOrderItem", item);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Example #3
0
        public async Task <OrderItemVM> UpdateNewOrderItem(CreateOrderItemVM vm)
        {
            var dbItem = await _db.OrderItems.GetByIdAsync(vm.Id);

            dbItem.Count  = vm.Count;
            dbItem.Status = vm.Status;
            var newItem = await _db.OrderItems.UpdateAsync(dbItem);

            var order = _db.Orders.GetAll().FirstOrDefault(m => m.Id == dbItem.OrderId);

            if (order != null)
            {
                var ret = new OrderItemVM(newItem, order.Location.Currency);
                return(ret);
            }
            throw new Exception("order not found");
        }