public MyQueriesDTO UserQueries(string userId, bool allUsers) { using (ApplicationDbContext db = new ApplicationDbContext()) { var queryWorkflowUserIds = db.QueryWorkflowUsers.Where(qwu => !allUsers ? qwu.UserId == userId : true).Select(qwu => qwu.Id).ToList(); var dbQueries = db.Queries.Where(q => queryWorkflowUserIds.Contains(q.QueryWorkFlowUserId)).OrderByDescending(q => q.Updated); var tanIds = dbQueries.Select(q => q.TanId).ToList(); Dictionary <int, Tan> idWiseTans = db.Tans.Where(t => tanIds.Contains(t.Id)).GroupBy(t => t.Id).ToDictionary(d => d.Key, d => d.First()); List <QueryDTO> queries = new List <QueryDTO>(); foreach (var q in dbQueries) { if (idWiseTans.ContainsKey(q.TanId)) { queries.Add(new QueryDTO { Id = q.Id, Title = q.Title, Comment = q.Comment, Page = q.Page, QueryType = q.QueryType, TanId = q.TanId, TanNumber = idWiseTans[q.TanId].tanNumber, DocumentPath = Path.Combine(C.ShipmentSharedPath, idWiseTans[q.TanId].DocumentPath) }); } } MyQueriesDTO dto = new MyQueriesDTO(); dto.Queries = queries; return(dto); } }
private async void DoRefreshQueriesAsync(object obj) { Loading = true; try { ClearQuery.Execute(this); Queries = new ObservableCollection <QueryVM>(); var result = await RestHub.MyQueries(); if (result.UserObject != null) { MyQueriesDTO myQueriesDto = (MyQueriesDTO)result.UserObject; List <QueryDTO> dtos = myQueriesDto.Queries; foreach (var dto in dtos) { Queries.Add(new QueryVM { Id = dto.Id, TanId = dto.TanId, DocumentPath = dto.DocumentPath, TanNumber = dto.TanNumber, Comment = dto.Comment, Page = dto.Page, QueryType = dto.QueryType, Title = dto.Title }); } } } catch (Exception ex) { AppErrorBox.ShowErrorMessage("Error while loading Queries", ex.ToString()); } Loading = false; }
public static async Task <RestStatus> MyQueries() { try { RestStatus status = new RestStatus(); if (!string.IsNullOrEmpty(Sessionkey)) { using (var httpClient = new HttpClient()) { httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(BEARER_HEDER, Sessionkey); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(APPLICATION_JSON)); StringContent stringContent = new StringContent(""); HttpResponseMessage response = await httpClient.GetAsync($"{My_QUERIES}?allUsers={(U.RoleId == 4 ? true : false)}"); using (HttpContent content = response.Content) { string responseText = await content.ReadAsStringAsync(); status.HttpCode = response.StatusCode; status.HttpResponse = responseText; if (status.HttpCode == System.Net.HttpStatusCode.OK) { MyQueriesDTO myQueries = JsonConvert.DeserializeObject <MyQueriesDTO>(responseText); status.UserObject = myQueries; status.StatusMessage = "User Queries Loaded Successfully . ."; } else { status.StatusMessage = "Can't Load Queries"; status.UserObject = false; } } } } return(status); } catch (Exception ex) { Log.This(ex); } return(null); }