public async Task <ActionResult> Index(int?page = 1) { var client = ExpenseTrackerHttpClient.GetClient(); var model = new ExpenseGroupsViewModel(); // Calling the GET method on API HttpResponseMessage egsResponse = await client.GetAsync("api/expensegroupstatusses"); if (egsResponse.IsSuccessStatusCode) { string egsContent = await egsResponse.Content.ReadAsStringAsync(); var lstExpenseGroupStatusses = JsonConvert .DeserializeObject <IEnumerable <ExpenseGroupStatus> >(egsContent); model.ExpenseGroupStatusses = lstExpenseGroupStatusses; } else { return(Content("An error occurred.")); } // Without sorting //HttpResponseMessage response = await client.GetAsync("api/expensegroups"); // With sorting. Expense groups will be sorted first by status code and then by title //HttpResponseMessage response = await client.GetAsync("api/expensegroups?sort=expensegroupstatusid,title"); // With paging. We already have suport for paging in API but we need to add new support in the client. // I added PagingInfo.cs & HeaderParser.cs helper classes to implement paging on this MVC client. HttpResponseMessage response = await client.GetAsync("api/expensegroups?sort=expensegroupstatusid,title&page=" + page + "&pagesize=5"); if (response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); var pagingInfo = HeaderParser.FindAndParsePagingInfo(response.Headers); // Also, added NuGet package pagedlist.mvc to implement paging var lstExpenseGroups = JsonConvert.DeserializeObject <IEnumerable <ExpenseGroup> >(content); var pagedExpenseGroupsList = new StaticPagedList <ExpenseGroup>(lstExpenseGroups, pagingInfo.CurrentPage, pagingInfo.PageSize, pagingInfo.TotalCount); model.ExpenseGroups = pagedExpenseGroupsList; model.PagingInfo = pagingInfo; } else { return(Content("An error occurred.")); } return(View(model)); }
// GET: ExpenseGroup public async Task <ActionResult> Index(int?page = 1) { var client = ExpenseTrackerHttpClient.GetClient(); var model = new ExpenseGroupsViewModel(); var egsResponse = await client.GetAsync("api/expensegroupstatusses"); if (egsResponse.IsSuccessStatusCode) { string egsContent = await egsResponse.Content.ReadAsStringAsync(); var lstExpenseGroupStatusses = JsonConvert .DeserializeObject <IEnumerable <ExpenseGroupStatus> >(egsContent); model.ExpenseGroupStatusses = lstExpenseGroupStatusses; } else { return(Content("An error occurred.")); } // HttpResponseMessage response = await client.GetAsync("api/expensegroups?sort=expensegroupstatusid,title"); HttpResponseMessage response = await client.GetAsync("api/expensegroups?sort=expensegroupstatusid,title&page=" + page + "&pagesize=5"); if (response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); var pagingInfo = HeaderParser.FindAndParsePagingInfo(response.Headers); var lstExpenseGroups = JsonConvert.DeserializeObject <IEnumerable <ExpenseGroup> >(content); // model.ExpenseGroups = lstExpenseGroups; var pagedExpenseGroupsList = new StaticPagedList <ExpenseGroup>(lstExpenseGroups, pagingInfo.CurrentPage, pagingInfo.PageSize, pagingInfo.TotalCount); model.ExpenseGroups = pagedExpenseGroupsList; model.PagingInfo = pagingInfo; } else { return(Content("An error occurred.")); } return(View(model)); }
public async Task <ActionResult> Index(int?page = 1) { //calling get or post happen as async mode var client = ExpenseTrackerHttpClient.GetClient(); var model = new ExpenseGroupsViewModel(); // GET Expense Group Status var egsResponse = await client.GetAsync("api/expensegroupstatusses"); if (egsResponse.IsSuccessStatusCode) { string egsContent = await egsResponse.Content.ReadAsStringAsync(); //deserelized the response to get oreginal data var lstExpenseGroupStatusses = JsonConvert.DeserializeObject <IEnumerable <ExpenseGroupStatus> >(egsContent); model.ExpenseGroupStatusses = lstExpenseGroupStatusses; } else { return(Content("An error occurred.")); } // GET Expense Group HttpResponseMessage response = await client.GetAsync("api/expensegroups?sort=expensegroupstatusid,title&page=" + page + "&pagesize=5"); //done sorting if (response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); //paging var pagingInfo = HeaderParser.FindAndParsePagingInfo(response.Headers); //deserelized the response and get the data as IEnumerable var lstExpenseGroups = JsonConvert.DeserializeObject <IEnumerable <ExpenseGroup> >(content); //then it convert to IPagedList inerface for pageing var pagedExpenseGroupsList = new StaticPagedList <ExpenseGroup>(lstExpenseGroups, pagingInfo.CurrentPage, pagingInfo.PageSize, pagingInfo.TotalCount); model.ExpenseGroups = pagedExpenseGroupsList; model.PagingInfo = pagingInfo; } else { return(Content("An error occured.")); } return(View(model)); }
public async Task <ActionResult> Index(int?page = 1) { var client = ExpenseTrackerHttpClient.GetClient(); var model = new ExpenseGroupsViewModel(); HttpResponseMessage egsResponse = await client.GetAsync("api/expensegroupstatusses"); if (egsResponse.IsSuccessStatusCode) { string egsContent = await egsResponse.Content.ReadAsStringAsync(); var lstExpenseGroupStatusses = JsonConvert.DeserializeObject <IEnumerable <ExpenseGroupStatus> >(egsContent); model.ExpenseGroupStatusses = lstExpenseGroupStatusses; } else { return(Content("An error occurred.")); } string userId = (this.User.Identity as ClaimsIdentity).FindFirst("unique_user_key").Value; HttpResponseMessage response = await client.GetAsync("api/expensegroups?sort=expensegroupstatusid" + ",title&page=" + page + "&pagesize=5&userid=" + userId); if (response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); // get the paging info from the header var pagingInfo = HeaderParser.FindAndParsePagingInfo(response.Headers); var lstExpenseGroups = JsonConvert.DeserializeObject <IEnumerable <ExpenseGroup> >(content); var pagedExpenseGroupsList = new StaticPagedList <ExpenseGroup>(lstExpenseGroups, pagingInfo.CurrentPage, pagingInfo.PageSize, pagingInfo.TotalCount); model.ExpenseGroups = pagedExpenseGroupsList; model.PagingInfo = pagingInfo; } else { return(Content("An error occurred.")); } return(View(model)); }
public async Task <ActionResult> Index(int?page = 1) { var ExpenseGroupsVM = new ExpenseGroupsViewModel(); var client = PWETHttpClient.GetClient(); //Statusses HttpResponseMessage egssResponse = await client.GetAsync("api/expensegroupstatusses"); if (egssResponse.IsSuccessStatusCode) { string egsContent = await egssResponse.Content.ReadAsStringAsync(); var lstExpensesGroupsStatus = JsonConvert.DeserializeObject <IEnumerable <ExpenseGroupStatus> >(egsContent); ExpenseGroupsVM.ExpenseGroupStatus = lstExpensesGroupsStatus; } else { return(Content("An error has occurred")); } //Expenses HttpResponseMessage Response = await client.GetAsync("api/expensegroup?sort=expensegroupstatusid,title&page=" + page + "&pagesize=5"); if (Response.IsSuccessStatusCode) { string content = await Response.Content.ReadAsStringAsync(); var pagingInfo = HeaderParser.FindAndParsePagingInfo(Response.Headers); var lstExpenseGroups = JsonConvert.DeserializeObject <IEnumerable <ExpenseGroup> >(content); var pagedListExpenseGroups = new StaticPagedList <ExpenseGroup>(lstExpenseGroups, pagingInfo.CurrentPage, pagingInfo.PageSize, pagingInfo.TotalCount); ExpenseGroupsVM.ExpenseGroup = pagedListExpenseGroups; ExpenseGroupsVM.PagingInfo = pagingInfo; } else { return(Content("An error occurred.")); } return(View(ExpenseGroupsVM)); }
public async Task <ActionResult> Index() { var client = ExpenseTrackerHttpClient.GetClient(); var model = new ExpenseGroupsViewModel(); var egsResponse = await client.GetAsync("api/expensegroupstatusses"); if (egsResponse.IsSuccessStatusCode) { string egsContent = await egsResponse.Content.ReadAsStringAsync(); var lstExpenseGroupStatusses = JsonConvert .DeserializeObject <IEnumerable <ExpenseGroupStatus> >(egsContent); model.ExpenseGroupStatusses = lstExpenseGroupStatusses; } else { return(Content("An error occurred.")); } HttpResponseMessage response = await client.GetAsync("api/expensegroups"); if (response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); var lstExpenseGroups = JsonConvert.DeserializeObject <IEnumerable <ExpenseGroup> >(content); model.ExpenseGroups = lstExpenseGroups; } else { return(Content("An error occurred.")); } return(View(model)); }