コード例 #1
0
        void HandleResponse(HTTPRequest_RetailToWarehouse request)
        {
            Console.WriteLine("Received command: " + request.WarehouseCmd);
            HTTPRequest_WarehouseToRetail response = new HTTPRequest_WarehouseToRetail();

            response.WarehouseCmd = request.WarehouseCmd;
            switch (request.WarehouseCmd)
            {
            case HTTPRequest_RetailToWarehouse.WarehouseCommand.ViewProducts:
                response.Products = products;
                ware_Publisher.Publish(id, topic, response);
                break;

            case HTTPRequest_RetailToWarehouse.WarehouseCommand.PurchaseProducts:
                break;

            default:
                break;
            }
            //Console.ForegroundColor = ConsoleColor.Red;
            //Console.WriteLine("Got message: {0}", product.ID);
            //Console.WriteLine(product.Name);
            //Console.WriteLine(product.Description);
            //Console.WriteLine(product.Quantity);
            //Console.WriteLine();
            //Console.ResetColor();
        }
        void HandleResponse(HTTPRequest_WarehouseToRetail response)
        {
            gotReply = true;
            switch (response.WarehouseCmd)
            {
            case HTTPRequest_RetailToWarehouse.WarehouseCommand.ViewProducts:
                if (toReturn == null)
                {
                    toReturn = response;
                }
                else
                {
                    foreach (var product in response.Products)
                    {
                        toReturn.Products.Add(product);
                    }
                    ;
                }
                break;

            case HTTPRequest_RetailToWarehouse.WarehouseCommand.PurchaseProducts:
                break;

            default:
                break;
            }

            lock (this)
            {
                Monitor.Pulse(this);
            }
        }
コード例 #3
0
        public static HTTPRequest_RetailerToClientGateway AttemptToViewProducts(HTTPRequest_ClientToGateway request)
        {
            Cookie userCookie = request.Cookie;

            Console.WriteLine("Checkin if user string is valid, info received - USERACCOUNTSTRING: " + userCookie.CurrentCookieString);
            //Todo: remember to verify password and not just username.
            HTTPRequest_RetailerToClientGateway response = new HTTPRequest_RetailerToClientGateway();

            response.Cookie = userCookie;
            if (_RequiresLogin == false || Cookie.ServerCheckIsValidUserString(userCookie.CurrentCookieString)) //If doesn't require login or login is verifiable.
            {
                Console.WriteLine("Valid user account string, responding with product list.");
                #region Construct response with list of products.
                //Get product list from warehouse
                HTTPRequest_RetailToWarehouse requestToForward = new HTTPRequest_RetailToWarehouse();
                requestToForward.WarehouseCmd = HTTPRequest_RetailToWarehouse.WarehouseCommand.ViewProducts;
                RetailToWarehouseCtrl_TopicBased rtwhctrl        = new RetailToWarehouseCtrl_TopicBased();
                HTTPRequest_WarehouseToRetail    wrhouseResponse = rtwhctrl.PublishToWarehouse(request.Location, requestToForward, RetailToWarehouseCtrl_TopicBased.WhichWarehouses.All);
                //rtwhctrl.SubscribeToWarehouse(request.Location, requestToForward, RetailToWarehouseCtrl_TopicBased.WhichWarehouses.All);
                response.Products = wrhouseResponse.Products;
                //response.Products = getTestProductList();
                #endregion
                return(response);
            }
            else
            {
                Console.WriteLine("User account string could not be verified.");
                return(response);
            }
        }
コード例 #4
0
 public void Publish(int id, string topic, HTTPRequest_WarehouseToRetail reply)
 {
     this.id    = id;
     this.topic = topic;
     Console.WriteLine("Topic channel: " + topic);
     using (var bus = RabbitHutch.CreateBus("host=localhost"))
     {
         Console.WriteLine("Publishing response to " + reply.WarehouseCmd + " command.");
         bus.Publish <HTTPRequest_WarehouseToRetail>(reply, x => x.WithTopic(topic));
     }
 }