/// <summary> /// This function is called when the client navigates to *hostname*/CompanyListings/DisplayCompany/*info* /// </summary> /// <param name="info">The name of the company whos info is to be displayed</param> /// <returns>A view to be sent to the client</returns> public ActionResult DisplayCompany(string info) { if (Globals.isLoggedIn() == false) { return(RedirectToAction("Index", "Authentication")); } if ("".Equals(info)) { return(View("Index")); } ServiceBusConnection connection = ConnectionManager.getConnectionObject(Globals.getUser()); if (connection == null) { return(RedirectToAction("Index", "Authentication")); } ViewBag.CompanyName = info; GetCompanyInfoRequest infoRequest = new GetCompanyInfoRequest(new CompanyInstance(info)); GetCompanyInfoResponse infoResponse = connection.getCompanyInfo(infoRequest); ViewBag.CompanyInfo = infoResponse.companyInfo; GetCompanyReviewsRequest reviewRequest = new GetCompanyReviewsRequest(info); GetCompanyReviewsResponse reviewResponse = connection.getCompanyReviews(reviewRequest); ViewBag.CompanyReviews = reviewResponse.getReviews(); return(View("DisplayCompany")); }
/// <summary> /// Makes a call to the CompanyReviewService's Web Api /// </summary> /// <param name="request">Object containing information about the request</param> /// <param name="context">Information regarding the calling endpoint</param> /// <returns></returns> public Task Handle(GetCompanyReviewsRequest request, IMessageHandlerContext context) { CompanyReviewAPIRequest webRequest = new CompanyReviewAPIRequest(); GetCompanyReviewsResponse response = webRequest.getCompanyReviews(request); return(context.Reply(response)); }
/// <summary> /// This function is called when the client navigates to *hostname*/CompanyListings/DisplayCompany/*info* /// </summary> /// <param name="id">The name of the company whos info is to be displayed</param> /// <returns>A view to be sent to the client</returns> public ActionResult DisplayCompany(string id) { if (Globals.isLoggedIn() == false) { return(RedirectToAction("Index", "Authentication")); } if (String.IsNullOrWhiteSpace(id)) { return(View("Index")); } ServiceBusConnection connection = ConnectionManager.getConnectionObject(Globals.getUser()); if (connection == null) { return(RedirectToAction("Index", "Authentication")); } ViewBag.CompanyName = id; GetCompanyInfoRequest infoRequest = new GetCompanyInfoRequest(new CompanyInstance(id)); GetCompanyInfoResponse infoResponse = connection.getCompanyInfo(infoRequest); ViewBag.CompanyInfo = infoResponse.companyInfo; if (infoResponse.result) { GetCompanyReviewsRequest request = new GetCompanyReviewsRequest(id); GetCompanyReviewsResponse result = connection.getReviews(request); ViewBag.Reviews = result; } else { return(View("Index")); } WeatherRequest weatherRequest = new WeatherRequest(infoResponse.companyInfo.locations[0]); WeatherResponse weatherResponse = connection.getWeather(weatherRequest); ViewBag.WeatherResponse = weatherResponse; return(View("DisplayCompany")); }
/// <summary> /// Sends an API request over http to the server running the Company Review Service requesting a list of Customer reviews for a specified company /// </summary> /// <param name="request">Request Information</param> /// <returns>The response from the server containing the requested reviews</returns> public GetCompanyReviewsResponse getCompanyReviews(GetCompanyReviewsRequest request) { HttpResponseMessage response; MemoryStream memStream = new MemoryStream(); DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(GetCompanyReviewsRequest)); serializer.WriteObject(memStream, request); string jsonEndodedObject = Encoding.ASCII.GetString(memStream.ToArray()); string path = $"GetCompanyReviews/{jsonEndodedObject}"; //string path = $"GetCompanyReviews/{request.getCompanyName()}"; try { response = webCaller.GetAsync(path).GetAwaiter().GetResult(); } catch (HttpRequestException e) { return(new GetCompanyReviewsResponse(false, "Could not connect to service API. Error messsage: " + e.Message, null)); } if (response.IsSuccessStatusCode == false) { return(new GetCompanyReviewsResponse(false, response.Content.ReadAsStringAsync().GetAwaiter().GetResult(), null)); } memStream = (MemoryStream)response.Content.ReadAsStreamAsync().GetAwaiter().GetResult(); serializer = new DataContractJsonSerializer(typeof(GetCompanyReviewsResponse)); GetCompanyReviewsResponse responseData = (GetCompanyReviewsResponse)serializer.ReadObject(memStream); /* I put this here so i could get the response as a JSON object more easily to use as an example. * MemoryStream memStream1 = new MemoryStream(); * DataContractJsonSerializer serializer1 = new DataContractJsonSerializer(typeof(GetCompanyReviewsResponse)); * * serializer1.WriteObject(memStream1, responseData); * * string jsonEndodedObject1 = Encoding.ASCII.GetString(memStream1.ToArray()); */ return(responseData); }