コード例 #1
0
        /// <summary>The map view model.</summary>
        /// <param name="myProfile">The my profile.</param>
        private void MapViewModel(BaseFacadeResponseModel <MyProfileResponseModel> myProfile)
        {
            var profile = myProfile?.Content?.MyProfile;

            if (profile == null)
            {
                return;
            }

            this.Street    = $"{profile.Address1}{Environment.NewLine}{profile.Address2}";
            this.Town      = profile.Town;
            this.Country   = profile.Country;
            this.Postcode  = profile.Postcode;
            this.Email     = profile.EmailAddress;
            this.FirstName = profile.FirstName;
            this.LastName  = profile.LastName;
            this.Password  = profile.Postcode;
        }
コード例 #2
0
        /// <summary>The return runner response.</summary>
        /// <param name="runner">The runner.</param>
        /// <param name="responseModel">The response model.</param>
        /// <param name="apiResponseModel">The api response model.</param>
        /// <typeparam name="T2"></typeparam>
        /// <typeparam name="T3"></typeparam>
        /// <returns>The <see cref="Task"/>.</returns>
        public async Task <ApiRunnerResponseObject> ReturnRunnerResponse <T2, T3>(
            ReauthenticationResponse <HttpResponseMessage> runner,
            T2 responseModel,
            T3 apiResponseModel)
        {
            if (runner.Result == ReauthenticationResult.Failure)
            {
                return new ApiRunnerResponseObject
                       {
                           ApiContentResponseModelContent = null,
                           FacadeResponseModel            =
                               new BaseFacadeResponseModel <T2>
                           {
                               StatusCode =
                                   HttpStatusCode
                                   .Unauthorized,
                               Message =
                                   "Invalid security tokens"
                           }
                       }
            }
            ;

            var apiContentToReturn = false;

            var baseApiResponse = new BaseApiResponseModel <T3>();
            var facadeResponse  =
                new BaseFacadeResponseModel <T2>
            {
                StatusCode = runner.Response.StatusCode,
                Message    = await runner.Response.Content.ReadAsStringAsync()
            };

            try
            {
                if (facadeResponse.StatusCode == HttpStatusCode.OK ||
                    facadeResponse.StatusCode == HttpStatusCode.Created ||
                    facadeResponse.StatusCode == HttpStatusCode.ExpectationFailed)
                {
                    baseApiResponse.Content = JsonConvert.DeserializeObject <T3>(facadeResponse.Message);
                    apiContentToReturn      = true;
                }
            }
            catch (Exception ex)
            {
                // TODO: log me
                facadeResponse.StatusCode = HttpStatusCode.InternalServerError;

                facadeResponse.Message = "Response failed deserialization";
            }

            // error handling - list of errors from response
            facadeResponse.AccessToken  = runner.AccessToken;
            facadeResponse.RefreshToken = runner.RefreshToken;

            if (apiContentToReturn)
            {
                return new ApiRunnerResponseObject
                       {
                           ApiContentResponseModelContent = baseApiResponse.Content,
                           FacadeResponseModel            = facadeResponse
                       }
            }
            ;

            return(new ApiRunnerResponseObject {
                FacadeResponseModel = facadeResponse
            });
        }
    }
}