//Execution Report list public async Task<Response> PostExecutionReport<T>( string urlBase, string servicePrefix, string controller, string cookie, SearchExecutionReport search) { try { var request = JsonConvert.SerializeObject(search); Debug.WriteLine("********request*************"); Debug.WriteLine(request); var content = new StringContent( request, Encoding.UTF8, "application/json"); var cookieContainer = new CookieContainer(); var handler = new HttpClientHandler() { CookieContainer = cookieContainer }; var client = new HttpClient(handler); client.BaseAddress = new Uri(urlBase); var url = string.Format("{0}{1}", servicePrefix, controller); cookieContainer.Add(client.BaseAddress, new Cookie("JSESSIONID", cookie)); var response = await client.PostAsync(url, content); Debug.WriteLine("********response*************"); Debug.WriteLine(response); if (!response.IsSuccessStatusCode) { return new Response { IsSuccess = false, Message = response.StatusCode.ToString(), }; } var result = await response.Content.ReadAsStringAsync(); Debug.WriteLine("********result*************"); Debug.WriteLine(result); //var newRecord = JsonConvert.DeserializeObject<T>(result); var list = JsonConvert.DeserializeObject<List<T>>(result, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); Debug.WriteLine("+++++++++++++++++++++++++list++++++++++++++++++++++++"); Debug.WriteLine(list); return new Response { IsSuccess = true, Message = "OK", Result = list, }; } catch (Exception ex) { return new Response { IsSuccess = false, Message = ex.Message, }; } }
private async void Download_Excel(object sender, EventArgs e) { var cookie = Settings.Cookie; var res = cookie.Substring(11, 32); var dateNow = DateTime.Now.ToString("dd-MM-yyyy"); var _searchModel = new SearchExecutionReport { criteria1 = "", criteria3 = "", date = null, date1 = null, id3 = -1, maxResult = 50, nomenclatureId = -1, order = "desc", sortedBy = "request_execution_date", status = "ALL" }; /* var _searchModel = new SearchModel * { * criteria1 = "", * criteria3 = "", * id3 = -1, * maxResult = 50, * nomenclatureId = -1, * order = "desc", * sortedBy = "request_execution_date", * status = "ALL" * };*/ var request = JsonConvert.SerializeObject(_searchModel); Debug.WriteLine("********request*************"); Debug.WriteLine(request); var content = new StringContent(request, Encoding.UTF8, "application/json"); var cookieContainer = new CookieContainer(); var handler = new HttpClientHandler() { CookieContainer = cookieContainer }; var client = new HttpClient(handler); var url = "https://portalesp.smart-path.it/Portalesp/executionReport/exportExcel"; Debug.WriteLine("********url*************"); Debug.WriteLine(url); DependencyService.Get <INotification>().CreateNotification("Download Excel", "Please wait a few seconds !"); client.BaseAddress = new Uri(url); cookieContainer.Add(client.BaseAddress, new Cookie("JSESSIONID", res)); var response = await client.PostAsync(url, content); if (!response.IsSuccessStatusCode) { await Application.Current.MainPage.DisplayAlert("Error", response.StatusCode.ToString(), "ok"); return; } PopuPage page1 = new PopuPage(); await PopupNavigation.Instance.PushAsync(page1); await Task.Delay(2000); var result = await response.Content.ReadAsStreamAsync(); Debug.WriteLine("********result*************"); Debug.WriteLine(result); using (var streamReader = new MemoryStream()) { result.CopyTo(streamReader); byte[] bytes = streamReader.ToArray(); MemoryStream stream = new MemoryStream(bytes); Debug.WriteLine("********stream*************"); Debug.WriteLine(stream); if (stream == null) { await Application.Current.MainPage.DisplayAlert("Warning", "Data is Empty", "ok"); return; } await DependencyService.Get <ISave>().SaveAndView("Request-execution-" + dateNow + ".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", stream); } }