示例#1
0
        /// <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"));
        }
示例#2
0
        /// <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));
        }
示例#3
0
        /// <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);
        }