// TODO: !!! Apply the following strategy to the rest of the ClientDataService methods. (Command pattern ?) public async Task <Result <List <NoteInfoDto> > > GetFilter(NotesFilterDto notesFilter) { var res = new Result <List <NoteInfoDto> >(); try { HttpResponseMessage httpRes; httpRes = await _httpClient.PostAsJsonAsync <NotesFilterDto>($"api/notes/getfilter", notesFilter); if (httpRes.IsSuccessStatusCode) { res = await httpRes.Content.ReadFromJsonAsync <Result <List <NoteInfoDto> > >(); } else { res.AddErrorMessage($"Error. The web server has responded with the following message: {httpRes.ReasonPhrase.ToString()}"); } return(res); } catch (Exception ex) { res.AddErrorMessage(ex.Message); return(res); } }
public async Task <bool> LoadFilteredEntities(IKntService service, NotesFilterDto notesFilter, bool refreshView = true) { bool resLoad = false; try { // TODO: provisional, hay que buscar una solución más generalista a los estados de espera. Cursor.Current = Cursors.WaitCursor; Service = service; Folder = null; Result <List <NoteInfoDto> > response; if (string.IsNullOrEmpty(notesFilter?.TextSearch.Trim()) || service == null || notesFilter == null) { response = new Result <List <NoteInfoDto> >(); response.Entity = new List <NoteInfoDto>(); } else { response = await Service.Notes.GetSearch(notesFilter); } if (response.IsValid) { ListEntities = response.Entity; NotesFilter = notesFilter; if (refreshView) { View.RefreshView(); } if (ListEntities?.Count > 0) { SelectedEntity = ListEntities[0]; } else { SelectedEntity = null; } } else { View.ShowInfo(response.Message); resLoad = await Task.FromResult <bool>(false); } } catch (Exception ex) { View.ShowInfo(ex.Message); resLoad = await Task.FromResult <bool>(false); } finally { Cursor.Current = Cursors.Default; } return(resLoad); }
public async Task <bool> LoadEntities(IKntService service, FolderInfoDto folder, bool refreshView = true) { try { Service = service; Folder = folder; NotesFilter = null; Guid f; if (Folder == null) { f = Guid.Empty; } else { f = Folder.FolderId; } Result <List <NoteInfoDto> > response; if (folder == null) { response = await Service.Notes.GetAllAsync(); } else { response = await Service.Notes.GetByFolderAsync(f); } if (response.IsValid) { ListEntities = response.Entity; if (refreshView) { View.RefreshView(); } if (ListEntities?.Count > 0) { SelectedEntity = ListEntities[0]; } else { SelectedEntity = null; } } else { View.ShowInfo(response.Message); return(false); } } catch (Exception ex) { View.ShowInfo(ex.Message); return(false); } return(true); }
//[Authorize] public async Task <IActionResult> GetFilter([FromBody] NotesFilterDto notesFilter) { try { var kresApi = await _service.Notes.GetFilter(notesFilter); if (kresApi.IsValid) { return(Ok(kresApi)); } else { return(BadRequest(kresApi)); } } catch (Exception ex) { var kresApi = new Result <List <NoteInfoDto> >(); kresApi.AddErrorMessage("Generic error: " + ex.Message); return(BadRequest(kresApi)); } }
public async Task <Result <List <NoteInfoDto> > > GetFilter(NotesFilterDto notesFilter) { return(await _repository.Notes.GetFilter(notesFilter)); }