void RegisterOnMessageHandlerAndReceiveMessages()
        {
            // Register the function that processes messages.
            _subscriptionClient.RegisterMessageHandler((message, token) =>
            {
                string json = Encoding.UTF8.GetString(message.Body);
                CartItemsReceiverDetails cartItems = JsonConvert.DeserializeObject <CartItemsReceiverDetails>(json);
                int quantityDifference             = 1;

                bool result = _searchRepository.UpdateQuantitiesForMenuOfRestaurant(cartItems.RestaurantId, cartItems.MenuId, cartItems.Quantity,
                                                                                    out quantityDifference);

                //if (quantityDifference < 1 && result)
                //{
                //    cartItems.Quantity = quantityDifference;
                //    string jsonForOrderService = JsonConvert.SerializeObject(cartItems);
                //    SendMessageAsync(jsonForOrderService);
                //}
                Console.WriteLine($"{cartItems.Quantity} plates of Menu {cartItems.MenuId} ordered from Restaurant {cartItems.RestaurantId}");

                return(_subscriptionClient.CompleteAsync(message.SystemProperties.LockToken));
            }, new MessageHandlerOptions(ExceptionReceivedHandler)
            {
                AutoComplete       = false,
                MaxConcurrentCalls = 1
            });
        }
示例#2
0
 public IActionResult InsertCartDetailsCheck([FromBody] CartItemsReceiverDetails cartReceiverItem)
 {
     try
     {
         CartItems cartItem = business_Repo.InsertCartDetailsCheck(cartReceiverItem);
         return(Ok(cartItem));
     }
     catch (Exception)
     {
         return(this.StatusCode((int)HttpStatusCode.InternalServerError, string.Empty));
     }
 }
        public CartItems InsertCartDetailsCheck(CartItemsReceiverDetails item)
        {
            try
            {
                CartItems cartItem = new CartItems();

                MenuItems menu = search_Repository.CartDetailsCheck(item.RestaurantId, item.MenuId);

                if (menu != null)
                {
                    cartItem = (new CartItems()
                    {
                        MenuName = menu.Item,
                        Quantity = item.Quantity,
                        Price = menu.Price,
                        IsItemAvailable = (item.Quantity <= menu.Quantity) ? true : false,
                    });
                }
                if (!cartItem.IsItemAvailable)
                {
                    cartItem.Quantity = menu.Quantity;
                }

                return(cartItem);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            //string serializedCartSenderItems = JsonConvert.SerializeObject(lstCartItems);
            //await _messenger.SendMessageAsync(serializedCartSenderItems);

            //RestaurantMenu menuObj = new RestaurantMenu();

            //menuObj.quantity = menu.quantity;
            // return 0;
        }