示例#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
        private ServiceBusResponse getReviews(GetCompanyReviewsRequest request)
        {
            if (authenticated == false)
            {
                return(new GetCompanyReviewsResponse(false, "Error: You must be logged in to use the company look up functionality.", null));
            }

            SendOptions sendOptions = new SendOptions();

            sendOptions.SetDestination("Company");
            return(requestingEndpoint.Request <ServiceBusResponse>(request, sendOptions).ConfigureAwait(false).GetAwaiter().GetResult());
        }
        /// <summary>
        /// Makes a request to the Company Review Service for the customer reviews of a specific company
        /// </summary>
        /// <param name="request">Request information</param>
        /// <returns>The response from the service, containing the reviews</returns>
        private GetCompanyReviewsResponse getCompanyReviews(GetCompanyReviewsRequest request)
        {
            if (authenticated == false)
            {
                return(new GetCompanyReviewsResponse(false, "Must be logged in to use the Company Directory Service", null));
            }

            SendOptions sendOptions = new SendOptions();

            sendOptions.SetDestination("CompanyReview");

            return(requestingEndpoint.Request <GetCompanyReviewsResponse>(request, sendOptions)
                   .ConfigureAwait(false).GetAwaiter().GetResult());
        }
示例#4
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);
        }
 /// <summary>
 /// Makes a request to the service bus for reviews of a company
 /// </summary>
 /// <param name="request">Request object containing needed information</param>
 /// <returns>Reviews of a company</returns>
 public GetCompanyReviewsResponse getCompanyReviews(GetCompanyReviewsRequest request)
 {
     send(request);
     return((GetCompanyReviewsResponse)readUntilEOF());
 }