public static void ShowMensajeProgreso(string Mensaje, TipoLoader Loader = TipoLoader.PROGRESSRING) { try { switch (Loader) { case TipoLoader.PROGRESSRING: _ShowProgressRing = Visibility.Visible; RaiseStaticPropertyChanged("ShowProgressRing"); break; case TipoLoader.PROGRESSBAR: _ShowProgressBar = Visibility.Visible; RaiseStaticPropertyChanged("ShowProgressBar"); break; case TipoLoader.METROPROGRESSBAR: _ShowMetroProgressBar = Visibility.Visible; RaiseStaticPropertyChanged("ShowMetroProgressBar"); break; default: break; } _ProgressMessage = Mensaje; RaiseStaticPropertyChanged("ProgressMessage"); _ShowProgressDialog = Visibility.Visible; RaiseStaticPropertyChanged("ShowProgressDialog"); } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al mostrar el mensaje de progreso", ex); } }
/// <summary> /// Metodo auxiliar para ejecutar procesos asincronos /// </summary> /// <typeparam name="T">Objeto que regresa el proceso</typeparam> /// <param name="Mensaje">Mensaje para el usuario</param> /// <param name="predicade">Proceso</param> /// <param name="Tipo_Loader">Tipo de loading</param> /// <returns>Respuesta del Proceso</returns> public static async Task <T> OperacionesAsync <T>(string Mensaje, Func <T> predicade, TipoLoader Tipo_Loader = TipoLoader.PROGRESSRING) { T result = default(T); try { StaticSourcesViewModel.ShowMensajeProgreso(Mensaje, Tipo_Loader); result = await Task.Factory.StartNew <T>(predicade); } catch (Exception ex) { StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error en el proceso", ex); } finally { StaticSourcesViewModel.CloseMensajeProgreso(); } return(result); }