Exemple #1
0
        private Task HandleStoreCatalogReady(Message message, CancellationToken arg2)
        {
            try
            {
                _logService.SendMessagesAsync($"- Iniciando leitura de HandleStoreCatalogReady");

                var messageString = "";
                if (message.Body != null)
                {
                    messageString = Encoding.UTF8.GetString(message.Body);
                }

                ShowDisplayMessage showDisplayMessage = new ShowDisplayMessage();

                showDisplayMessage.Properties = new Dictionary <String, Object>();
                showDisplayMessage.Properties.Add("ServicoEnvio", "GeekBurger.UI");
                showDisplayMessage.Label = "showwelcomepage";
                showDisplayMessage.Body  = "Exibir página de boas vindas";
                _showDisplayService.AddMessage(showDisplayMessage);
                _showDisplayService.SendMessagesAsync(Topics.uicommand);

                return(Task.CompletedTask);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #2
0
        public void CatalogVerify()
        {
            //Ready ready = _metodosApi.retornoGet<Ready>("http://localhost:50135/Mock/api/store");


            Ready ready = _metodosApi.retornoGet <Ready>("http://geekburgerstorecatalog.azurewebsites.net/api/store");


            ShowDisplayMessage showDisplayMessage = new ShowDisplayMessage();

            showDisplayMessage.Properties = new Dictionary <String, Object>();
            showDisplayMessage.Properties.Add("ServicoEnvio", "GeekBurger.UI");


            if (ready?.IsReady == true)
            {
                showDisplayMessage.Label = "showwelcomepage";
                showDisplayMessage.Body  = "Exibir página de boas vindas";
            }
            else
            {
                showDisplayMessage.Label = "storeunavailable";
                showDisplayMessage.Body  = "Catálogo não disponível";
            }

            _showDisplayService.AddMessage(showDisplayMessage);
            _showDisplayService.SendMessagesAsync(Topics.uicommand);
        }
Exemple #3
0
        public IActionResult PostOrder([FromBody] OrderToUpsert order)
        {
            ShowDisplayMessage showDisplayMessage = new ShowDisplayMessage();

            showDisplayMessage.Properties = new Dictionary <String, Object>();
            showDisplayMessage.Properties.Add("ServicoEnvio", "GeekBurger.UI");

            showDisplayMessage.Label = "NewOrder";
            showDisplayMessage.Body  = order;
            _showDisplayService.AddMessage(showDisplayMessage);
            _showDisplayService.SendMessagesAsync(Topics.neworder);


            return(CreatedAtRoute("GetFace",
                                  new { OrderId = orderToGet.OrderId },
                                  orderToGet));
        }
Exemple #4
0
        public void AddMessage(ShowDisplayMessage showDisplayMessage)
        {
            _messages.Clear();
            Message message = new Message();

            message.Label = showDisplayMessage.Label;
            message.Body  = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(showDisplayMessage.Body));
            if (showDisplayMessage.Properties != null)
            {
                foreach (KeyValuePair <string, object> keyValuePair in showDisplayMessage.Properties)
                {
                    message.UserProperties.Add(keyValuePair);
                }
            }

            _messages.Add(showDisplayMessage.AsMessage());
        }
Exemple #5
0
        private Task HandleUserRetrieved(Message message, CancellationToken arg2)
        {
            try
            {
                _logger.LogInformation($"- Iniciando leitura de HandleUserRetrieved");
                _logService.SendMessagesAsync($"- Iniciando leitura de HandleUserRetrieved");

                UserRetrievedMessage userRetrievedMessage;

                var messageString = "";
                if (message.Body != null)
                {
                    messageString = Encoding.UTF8.GetString(message.Body);
                }

                //UserRetrievedMessage userRetrievedMessage = new UserRetrievedMessage();
                try
                {
                    userRetrievedMessage = message.As <UserRetrievedMessage>();
                    if (userRetrievedMessage == null)
                    {
                        return(Task.CompletedTask);
                    }
                }
                catch (Exception ex)
                {
                    //mensagem inválida para nosso contexto
                    return(Task.CompletedTask);
                }

                ShowDisplayMessage showDisplayMessage = new ShowDisplayMessage();
                showDisplayMessage.Properties = new Dictionary <String, Object>();
                showDisplayMessage.Properties.Add("ServicoEnvio", "GeekBurger.UI");

                if (userRetrievedMessage.AreRestrictionsSet)
                {
                    //TODO get para produtos
                    //get api/products
                    //publish message showproduct list

                    //TODO confirmar se precisa passar usuarioID para pegar lista de produtos
                    //TODO inserir objeto de

                    /*
                     * //GET api/products request (on StoreCatalog
                     *      API)
                     *      { "StoreName": "Beverly Hills",
                     *       "UserId": 1111,
                     *       "Restrictions": ["soy","diary","peanut"] }
                     *
                     * */
                    //ProductsListMessage productsListMessage = _metodosApi.retornoGet<ProductsListMessage>("http://localhost:50135/Mock/api/products");

                    IList <string> restrictionList = _metodosApi.retornoGet <List <string> >($"https://geekburgeruser.azurewebsites.net/api/FoodRestriction/{userRetrievedMessage.UserId}/GetFoodRestrictionsByUserId");

                    var    storename = "Los Angeles - Pasadena";
                    string url       = $"http://geekburgerstorecatalog.azurewebsites.net/api/products?StoreName={storename}&UserId={userRetrievedMessage.UserId}&Restrictions={restrictionList.Aggregate((i, j) => i + " =" + j)}";

                    StoreCatalog.Contract.Requests.ProductRequest productRequest = new StoreCatalog.Contract.Requests.ProductRequest()
                    {
                        UserId       = userRetrievedMessage.UserId,
                        StoreName    = "",
                        Restrictions = restrictionList
                    };

                    StoreCatalog.Contract.Responses.ProductResponse productsListMessage = _metodosApi.retornoGet <StoreCatalog.Contract.Responses.ProductResponse>(url);

                    showDisplayMessage.Label = "ShowProductsList";
                    showDisplayMessage.Body  = productsListMessage;
                }
                else
                {
                    showDisplayMessage.Label = "showfoodrestrictionsform";
                    showDisplayMessage.Body  = "<inserir objeto { UserId: 1111, RequesterId: 1111> }";
                }

                _showDisplayService.AddMessage(showDisplayMessage);
                _showDisplayService.SendMessagesAsync(Topics.uicommand);

                return(Task.CompletedTask);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }