/// <summary> /// Loads the stories. /// </summary> /// <returns>The stories.</returns> /// <param name="type">Type.</param> private async Task LoadStories(string type) { var tokens = this.keychainService.GetAuthorizedKeychainRequestModel(); var requestModel = new AuthorizedPaginatedFacadeRequestModel { AccessToken = tokens.AccessToken, RefreshToken = tokens.RefreshToken, Paging = new PaginationConfigModel { PageToGet = 1, NumberItems = 4 }, QueryParameters = new List <KeyValuePair <string, object> > { new KeyValuePair <string, object>(MagicStrings.StoryTypes, type), new KeyValuePair <string, object>(MagicStrings.FilterByLocation, false) } }; var result = await this.storyFacade.GetStories(requestModel); if (result.StatusCode == HttpStatusCode.OK) { Device.BeginInvokeOnMainThread(() => { this.ReloadStories(type, result.Content.Stories); }); } else { await this.DialogService.DisplayAlertAsync(GrosvenorConstants.ApiCallErrorMessageTitle, Constants.LeaseErrorMessage, GrosvenorConstants.ApiCallErrorMessageOkButton); } }
private async Task LoadAccountStatement() { var atuhorizedRequestModel = Mapper.Map <AuthorizedFacadeRequestModel>(this.keychainService.GetAuthorizedKeychainRequestModel()); var requestModel = new AuthorizedPaginatedFacadeRequestModel { AccessToken = atuhorizedRequestModel.AccessToken, RefreshToken = atuhorizedRequestModel.RefreshToken, Paging = new PaginationConfigModel { PageToGet = 1, NumberItems = 10 }, QueryParameters = new List <KeyValuePair <string, object> > { new KeyValuePair <string, object>(MagicStrings.LeaseId, this.Properties.LeaseId), new KeyValuePair <string, object>(MagicStrings.StartDate, DateTime.Now.AddYears(-1).AddDays(-10)), new KeyValuePair <string, object>(MagicStrings.EndDate, DateTime.Now.AddDays(-10)) } }; var result = await this.propertyFacade.GetAccountStatement(requestModel); if (result.StatusCode == HttpStatusCode.OK) { Device.BeginInvokeOnMainThread(() => { this.ReloadStatement(result.Content); }); } else { await this.DialogService.DisplayAlertAsync( GrosvenorConstants.ApiCallErrorMessageTitle, Constants.LeaseErrorMessage, GrosvenorConstants.ApiCallErrorMessageOkButton); } }
/// <summary>The get stories.</summary> /// <param name="model">The model.</param> /// <returns>The <see cref="Task"/>.</returns> public async Task <BaseFacadeResponseModel <GetStoriesResponseModel> > GetStories( AuthorizedPaginatedFacadeRequestModel model) { var apiModel = new GetStoriesApiRequestModel { NumberOfItems = model.Paging.NumberItems, PageToGet = model.Paging.PageToGet, StoryTypes = model.QueryParameters.GetValue( MagicStrings.StoryTypes), TagList = model.QueryParameters.GetValue(MagicStrings.TagList), FilterByLocation = (bool)model.QueryParameters.GetValue( MagicStrings.FilterByLocation, ListExtensions.DictReturnType.Boolean) }; // try api call with access token var runner = await this.authWrapper.TraverseReauth( () => this.storyApi.GetStories( model.AccessToken, apiModel.StoryTypes, apiModel.TagList, apiModel.PageToGet, apiModel.NumberOfItems, apiModel.FilterByLocation), model.RefreshToken); // generic runner response that sets up the return object var runnerResponse = await new ApiRunnerResponseHelper().ReturnRunnerResponse( runner, new GetStoriesResponseModel(), new GetStoriesApiResponseModel()); var mappedFacadeResponse = runnerResponse.FacadeResponseModel as BaseFacadeResponseModel <GetStoriesResponseModel>; // here we need to translate the api content response into the UI response if (runnerResponse.ApiContentResponseModelContent != null) { var apiResponse = runnerResponse.ApiContentResponseModelContent as GetStoriesApiResponseModel; var stories = new List <Story>(); if (apiResponse != null) { foreach (var story in apiResponse.Stories) { stories.Add( new Story { Id = story.Id, Content = story.HtmlContent, Category = story.Category, DateCreated = story.DateCreated, DateModified = story.DateModified, ImageAlt = story.ImageAlt, ImageUrl = story.ImageUrl, StoryFormat = story.StoryFormat, StoryUrl = story.StoryUrl, Tags = story.Tags.Select(x => x.Tag).ToList(), Title = story.Title, Description = story.Description }); } if (mappedFacadeResponse != null) { mappedFacadeResponse.Content = new GetStoriesResponseModel { Stories = stories, TotalNumberOfItems = apiResponse.TotalNumberOfItems }; } } } return(mappedFacadeResponse); }
/// <summary> /// The get account statement. /// </summary> /// <param name="requestModel"> /// The request model. /// </param> /// <returns> /// The /// <see cref="Task"/> /// . /// </returns> /// <exception cref="NotImplementedException"> /// </exception> public async Task <BaseFacadeResponseModel <AccountStatementResponseModel> > GetAccountStatement( AuthorizedPaginatedFacadeRequestModel requestModel) { var apiAccountStatement = new AccountStatementApiRequestModel { LeaseId = requestModel.QueryParameters.GetValue( MagicStrings.LeaseId, true), StartDate = ((DateTime)requestModel.QueryParameters.GetValue( MagicStrings.StartDate, ListExtensions.DictReturnType.DateTime)).ToString( SharedConfig.LongDateFormat, CultureInfo.InvariantCulture), EndDate = ((DateTime)requestModel.QueryParameters.GetValue( MagicStrings.EndDate, ListExtensions.DictReturnType.DateTime)).ToString( SharedConfig.LongDateFormat, CultureInfo.InvariantCulture) }; // try api call with access token var runner = await this.authenticationWrapper.TraverseReauth( () => this.propertyApi.GetAccountStatement( requestModel.AccessToken, apiAccountStatement.LeaseId, apiAccountStatement.StartDate, apiAccountStatement.EndDate, requestModel.Paging.PageToGet, requestModel.Paging.NumberItems), requestModel.RefreshToken); // generic runner response that sets up the return object var runnerResponse = await new ApiRunnerResponseHelper().ReturnRunnerResponse( runner, new AccountStatementResponseModel(), new AccountStatementApiResponseModel()); var mappedFacadeResponse = runnerResponse.FacadeResponseModel as BaseFacadeResponseModel <AccountStatementResponseModel>; // here we need to translate the api content response into the UI response if (runnerResponse.ApiContentResponseModelContent != null) { var apiResponse = runnerResponse.ApiContentResponseModelContent as AccountStatementApiResponseModel; if (apiResponse != null) { mappedFacadeResponse.Content = new AccountStatementResponseModel() { AccountStatementEntries = Mapper.Map <IEnumerable <AccountStatementEntry> >( apiResponse.AccountStatementEntries), TotalNumberOfItems = apiResponse.TotalNumberOfItems } } ; } return(mappedFacadeResponse); }