async Task ExecuteApoyarIncidenciaCommand() { if (_clickRegulator.SetClicked(nameof(ExecuteApoyarIncidenciaCommand), true)) { return; } IsBusy = true; try { await IncidenciaService.RegistrarNuevoApoyoIncidenciaAsync( new IncidenciaUsuario { IncidenciaId = Incidencia.IncidenciaId, UsuarioId = 2 } ); Incidencia = await IncidenciaService.ObtenerRegistroIncidenciaPorIdAsync(Incidencia.IncidenciaId); } catch (Exception ex) { await PageService.DisplayAlert("ERROR", ex.Message, "OK"); } finally { _clickRegulator.ClickDone(nameof(ExecuteApoyarIncidenciaCommand)); IsBusy = false; } }
async Task ExecuteLoadIncidenciasCommand() { if (_clickRegulator.SetClicked(nameof(ExecuteLoadIncidenciasCommand), true)) { return; } IsBusy = true; IsRefreshing = true; try { _incidenciasList.Clear(); var incidencias = await IncidenciaService.ObtenerTodosRegistrosIncidenciaAsync(); foreach (var item in incidencias) { _incidenciasList.Add(item); } } catch (Exception ex) { await PageService.DisplayAlert("Error Message", ex.Message, "OK"); } finally { _clickRegulator.ClickDone(nameof(ExecuteLoadIncidenciasCommand)); IsBusy = false; IsRefreshing = false; } }
async Task ExecuteOrdenarMasVotadasCommand() { if (_clickRegulator.SetClicked(nameof(ExecuteOrdenarMasVotadasCommand), true)) { return; } IsBusy = true; try { ParentViewModel.IncidenciasList.Clear(); var incidencias = await IncidenciaService.OrdenarMasVotadas(); foreach (var item in incidencias) { ParentViewModel.IncidenciasList.Add(item); } ParentViewModel.IsFiltered = true; await PageService.PopAsync(); } catch (Exception ex) { await PageService.DisplayAlert("ERROR", ex.Message, "OK"); } finally { _clickRegulator.ClickDone(nameof(ExecuteOrdenarMasVotadasCommand)); IsBusy = false; } }
async Task ExecuteAplicarFiltrosCommand() { if (_clickRegulator.SetClicked(nameof(ExecuteAplicarFiltrosCommand), true)) { return; } IsBusy = true; try { ParentViewModel.IncidenciasList.Clear(); var incidenciasFiltradasPorTipo = TipoIncidenciaSelected == null ? (await IncidenciaService.ObtenerTodosRegistrosIncidenciaAsync()).ToList() : (await IncidenciaService.ObtenerIncidenciasPorTipoAsync(TipoIncidenciaSelected.TipoIncidenciaId)).ToList(); var incidenciasFiltradasPorEstado = StatusIncidenciaSelected == null ? incidenciasFiltradasPorTipo : incidenciasFiltradasPorTipo.Where(inc => inc.Status.StatusIncidenciaId == StatusIncidenciaSelected.StatusIncidenciaId).ToList(); var incidenciasFiltradas = string.IsNullOrWhiteSpace(Search) ? incidenciasFiltradasPorEstado : incidenciasFiltradasPorEstado.Where(inc => inc.Titulo.Contains(Search) || inc.Descripcion.Contains(Search)); foreach (var item in incidenciasFiltradas) { ParentViewModel.IncidenciasList.Add(item); } ParentViewModel.IsFiltered = true; await PageService.PopAsync(); } catch (Exception ex) { await PageService.DisplayAlert("ERROR", ex.Message, "OK"); } finally { _clickRegulator.ClickDone(nameof(ExecuteAplicarFiltrosCommand)); IsBusy = false; } }
async Task ExecuteLoadStatusDeIncidenciasCommand() { IsBusy = true; try { StatusIncidencias.Clear(); var statuses = await IncidenciaService.ObtenerEstadosDeIncidencia(); foreach (var item in statuses) { StatusIncidencias.Add(item); } } catch (Exception ex) { await PageService.DisplayAlert("Error Message", ex.Message, "OK"); } finally { IsBusy = false; } }
async Task ExecuteLoadTiposIncidenciasCommand() { IsBusy = true; try { TiposIncidencia.Clear(); var tipos = await IncidenciaService.ObtenerTiposDeIncidencia(); foreach (var item in tipos) { TiposIncidencia.Add(item); } } catch (Exception ex) { await PageService.DisplayAlert("Error Message", ex.Message, "OK"); } finally { IsBusy = false; } }