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); } }
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); } }
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)); } }