/// <summary>
        ///     Gets today's data from the web API
        /// </summary>
        /// <returns>A TodaysData model containing today's data</returns>
        public TodaysData GetTodaysData()
        {
            TodaysData todaysData = null;

            // Set the URL for the request
            this.restClient.BaseUrl = this.uriService.GetUri(this.appSettings.Get(AppSettingsKeys.HelloWorldApiUrlKey));

            // Setup the request
            this.restRequest.Resource = "todaysdata";
            this.restRequest.Method   = Method.GET;

            // Clear the request parameters
            this.restRequest.Parameters.Clear();

            // Execute the call and get the response
            var todaysDataResponse = this.restClient.Execute <TodaysData>(this.restRequest);

            // Check for data in the response
            if (todaysDataResponse != null)
            {
                // Check if any actual data was returned
                if (todaysDataResponse.Data != null)
                {
                    todaysData = todaysDataResponse.Data;
                }
                else
                {
                    var errorMessage = "Error in RestSharp, most likely in endpoint URL." + " Error message: "
                                       + todaysDataResponse.ErrorMessage + " HTTP Status Code: "
                                       + todaysDataResponse.StatusCode + " HTTP Status Description: "
                                       + todaysDataResponse.StatusDescription;

                    // Check for existing exception
                    if (todaysDataResponse.ErrorMessage != null && todaysDataResponse.ErrorException != null)
                    {
                        // Log an informative exception including the RestSharp exception
                        this.logger.Error(errorMessage, null, todaysDataResponse.ErrorException);
                    }
                    else
                    {
                        // Log an informative exception including the RestSharp content
                        this.logger.Error(errorMessage, null, new Exception(todaysDataResponse.Content));
                    }
                }
            }
            else
            {
                // Log the exception
                const string ErrorMessage =
                    "Did not get any response from the Hello World Web Api for the Method: GET /todaysdata";

                this.logger.Error(ErrorMessage, null, new Exception(ErrorMessage));
            }

            return(todaysData);
        }
Example #2
0
 /// <summary>
 /// Transforms list of TodaysData BOs to list of TodaysData DTOs.
 /// </summary>
 /// <param name="TodaysData">List of TodaysData BOs.</param>
 /// <returns>List of TodaysData DTOs.</returns>
 public static TodaysDataDto ToDataTransferObject(TodaysData todaysData)
 {
     if (todaysData == null)
     {
         return(null);
     }
     return(new TodaysDataDto
     {
         Data = todaysData.Data
     });
 }
Example #3
0
        public TodaysDataResponse GetTodaysData(TodaysDataRequest request)
        {
            TodaysDataResponse response = new TodaysDataResponse();
            TodaysData         objTD    = new TodaysData();

            try
            {
                objTD = Mapper.FromDataTransferObject(request.TodaysData);

                response.Message = todaysDataDao.GetTodaysData();
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;

                response.Acknowledge = AcknowledgeType.Failure;
            }

            return(response);
        }
Example #4
0
        public void UnitTestHelloWorldConsoleAppRunNormalDataNullDataNullErrorMessage()
        {
            // Create return models for dependencies
            const string         WebApiIUrl        = "http://www.somesiteheretesting.com";
            var                  uri               = new Uri(WebApiIUrl);
            var                  mockParameters    = new Mock <List <Parameter> >();
            var                  mockRestResponse  = new Mock <IRestResponse <TodaysData> >();
            TodaysData           todaysData        = null;
            const string         ErrorMessage      = null;
            const HttpStatusCode StatusCode        = HttpStatusCode.InternalServerError;
            const string         StatusDescription = "Status Description";
            var                  errorException    = new Exception("errorHere");
            const string         ProfileContent    = "Content here";

            var errorMessage = "Error in RestSharp, most likely in endpoint URL."
                               + " Error message: " + ErrorMessage
                               + " HTTP Status Code: " + StatusCode
                               + " HTTP Status Description: " + StatusDescription;


            this.appSettingsMock.Setup(m => m.Get(AppSettingsKeys.HelloWorldApiUrlKey)).Returns(WebApiIUrl);
            this.uriServiceMock.Setup(m => m.GetUri(WebApiIUrl)).Returns(uri);
            this.restRequestMock.Setup(m => m.Parameters).Returns(mockParameters.Object);
            this.restClientMock.Setup(m => m.Execute <TodaysData>(It.IsAny <IRestRequest>())).Returns(mockRestResponse.Object);
            mockRestResponse.Setup(m => m.Data).Returns(todaysData);
            mockRestResponse.Setup(m => m.ErrorMessage).Returns(ErrorMessage);
            mockRestResponse.Setup(m => m.StatusCode).Returns(StatusCode);
            mockRestResponse.Setup(m => m.StatusDescription).Returns(StatusDescription);
            mockRestResponse.Setup(m => m.ErrorException).Returns(errorException);
            mockRestResponse.Setup(m => m.Content).Returns(ProfileContent);


            var response = this.helleHelloWorldWebService.GetTodaysData();


            Assert.IsNull(response);
            Assert.AreEqual(this.logMessageList.Count, 1);
            Assert.AreEqual(this.logMessageList[0], errorMessage);
            Assert.AreEqual(this.exceptionList.Count, 1);
            Assert.AreEqual(this.exceptionList[0].Message, ProfileContent);
        }