/// <summary> /// Ejecuta el script /// </summary> private async Task ExecuteScriptSqlAsync(IDetailViewModel viewModel, ConnectionModel connection, ArgumentListModel arguments, CancellationToken cancellationToken) { bool isExecuting = false; // Ejecuta sobre el ViewModel activo switch (viewModel) { case Files.ScriptFileViewModel fileViewModel: await fileViewModel.ExecuteSqlScriptAsync(connection, arguments, cancellationToken); isExecuting = true; break; case ExecuteFilesViewModel fileViewModel: await fileViewModel.ExecuteScriptAsync(connection, arguments, cancellationToken); isExecuting = true; break; } // Si no se está ejecutando nada, muestra un mensaje al usuario if (!isExecuting) { SolutionViewModel.MainController.SystemController.ShowMessage("Seleccione la ventana de ejecución"); } }
/// <summary> /// Abre un archivo (si reconoce la extensión) /// </summary> public bool OpenFile(string fileName) { bool opened = false; if (!string.IsNullOrWhiteSpace(fileName)) { IDetailViewModel fileViewModel = GetFileViewModel(fileName); // Abre la ventana if (fileViewModel != null) { if (fileViewModel is Details.Files.ScriptFileViewModel scriptFileViewModel) { MainController.PluginController.HostPluginsController.OpenEditor(scriptFileViewModel); } else { MainController.OpenWindow(fileViewModel); } opened = true; } } // Devuelve el valor que indica si se ha abierto el archivo return(opened); }
public void ShowProgress() { IProgressViewModel progressViewModel = new ProgressViewModel(); progressViewModel.ErrorAcknowledged += ProgressViewModelErrorAcknowledged; DetailViewModel = progressViewModel; }
/// <summary> /// Obtiene el modo de ejecución /// </summary> private ExecutionMode GetExecutionMode(IDetailViewModel viewModel) { switch (viewModel) { case Files.ScriptFileViewModel fileViewModel: if (fileViewModel.FileName.EndsWith(".sqlx", StringComparison.CurrentCultureIgnoreCase)) { return(ExecutionMode.ScriptSqlExtended); } else if (fileViewModel.FileName.EndsWith(".sql", StringComparison.CurrentCultureIgnoreCase)) { return(ExecutionMode.ScriptSql); } else if (fileViewModel.FileName.EndsWith(".xml", StringComparison.CurrentCultureIgnoreCase)) { return(ExecutionMode.JobsXml); } else { return(ExecutionMode.Unknown); } case ExecuteEtlConsoleViewModel _: return(ExecutionMode.BatchEtl); case ExecuteFilesViewModel _: return(ExecutionMode.BatchSql); default: return(ExecutionMode.Unknown); } }
private async void OnOpenDetailView(OpenDetailViewEventArgs args) { var detailViewModel = DetailViewModels .SingleOrDefault(vm => vm.Id == args.Id && vm.GetType().Name == args.ViewModelName); if (detailViewModel == null) { detailViewModel = _detailViewModelCreator[args.ViewModelName]; try { await detailViewModel.LoadAsync(args.Id); } catch { await _messageDialogService.ShowInfoDialogAsync("Невозможно загрузить данные," + "возможно сущность данные были удалены другим пользователем."); await NavigationViewModel.LoadAsync(); return; } DetailViewModels.Add(detailViewModel); } SelectedDetailViewModel = detailViewModel; }
private async void OnOpenDetailView(OpenDetailViewEventArgs args) { var detailViewModel = DetailViewModels .SingleOrDefault(vm => vm.Id == args.Id && vm.GetType().Name == args.ViewModelName); if (detailViewModel == null) { detailViewModel = _detailViewModelCreator[args.ViewModelName]; try { await detailViewModel.LoadAsync(args.Id); } catch { await _messageDialogService.ShowInfoDialogAsync("Записът не може да бъде зареден." + " Може би вече е изтрит от друг потребител. Наигационното меню ще бъде презаредено."); await NavigationViewModel.LoadAsync(); return; } DetailViewModels.Add(detailViewModel); } SelectedDetailViewModel = detailViewModel; }
private async void OnOpenDetailView(OpenDetailViewEventArgs args) { var detailViewModel = DetailViewModels .SingleOrDefault(vm => vm.Id == args.Id && vm.GetType().Name == args.ViewModelName); if (detailViewModel == null) { detailViewModel = _detailViewModelCreator[args.ViewModelName]; try { await detailViewModel.LoadAsync(args.Id); } catch { await _messageDialogService.ShowInfoDialogAsync("Could not load the entity, " + "maybe, in the meantime, it was deleted by another user. " + "The navigation will be refreshed for you."); await NavigationViewModel.LoadAsync(); return; } DetailViewModels.Add(detailViewModel); } SelectedDetailViewModel = detailViewModel; }
private async void OnOpenDetailView(OpenDetailViewEventArgs args) { if (DetailViewModel != null && DetailViewModel.HasChanges) { var result = _messageDialogService.ShowOkCancelDialog("You've made changes. Navigate away?", "Question"); if (result == MessageDialogResult.Cancel) { return; } } //switch (args.ViewModelName) //{ // case nameof(CustomerDetailViewModel): // DetailViewModel = _customerDetailViewModelCreator(); // break; // case nameof(CampaignDetailViewModel): // DetailViewModel = _campaignDetailViewModelCreator(); // break; // default: // throw new Exception($"ViewModel {args.ViewModelName} not mapped"); //} //DetailViewModel = _customerDetailViewModelCreator(); DetailViewModel = _detailViewModelCreator[args.ViewModelName]; await DetailViewModel.LoadAsync(args.Id); }
private async void OnOpenDetailView(OpenDetailViewEventArgs args) { var detailViewModel = DetailViewModels.SingleOrDefault(vm => vm.Id == args.Id && vm.GetType().Name == args.ViewModelName); if (detailViewModel == null) { detailViewModel = _detailViewModelCreator[args.ViewModelName]; try { await detailViewModel.LoadAsync(args.Id); } catch { _messageDialogService.ShowInfoDialog("Could not load entity, maybe it was deleted in the meantime by" + "another uuser."); await NavigationViewModel.LoadAsync(); return; } DetailViewModels.Add(detailViewModel); } if (SelectedDetailViewModel != null && SelectedDetailViewModel.HasChanges) { var result = _messageDialogService.ShowOkCancelDialog("You've made changes. Navigate away?", "Question"); if (result == MessageDialogResult.CANCEL) { return; } } SelectedDetailViewModel = detailViewModel; }
private async void OnOpenDetailView(OpenDetailViewEventArgs args) { //if (SelectedDetailViewModel!= null && SelectedDetailViewModel.HasChanges) //{ // var res = _messageDialogService.ShowOkCancelDialog("There are Changes. Navigate Away?", "Question"); // if (res == MessageDialogResult.Cancel) // { // return; // } //} var detailViewModel = DetailViewModels.SingleOrDefault(vm => vm.Id == args.Id && vm.GetType().Name == args.ViewModelName); if (detailViewModel == null) { detailViewModel = _detailViewModelCreator[args.ViewModelName]; await detailViewModel.LoadAsync(args.Id); DetailViewModels.Add(detailViewModel); } //switch (args.ViewModelName) //{ // case nameof(FriendDetailViewModel): // DetailViewModel = _friendDetailViewModelCreator(); // break; // case nameof(MeetingDetailViewModel): // DetailViewModel = _meetingDetailViewModelCreator(); // break; // default: // throw new Exception($"ViewModel {args.ViewModelName} not mapped"); //} SelectedDetailViewModel = detailViewModel; }
private async void OnOpenDetailView(OpenDetailViewEventArgs args) // when user clicked an item in the navigation this method is called { //it is not a good idea to use MessageBox directly in our viewmodel as this would block unit test on this method var detailViewModel = DetailViewModels .SingleOrDefault(vm => vm.Id == args.Id && vm.GetType().Name == args.ViewModelName); if (detailViewModel == null) { detailViewModel = _detailViewModelCreator[args.ViewModelName]; try { await detailViewModel.LoadAsync(args.Id); } catch (Exception ex) { await _messageDialogService.ShowInfoDialogAsync("Could not load the entity, maybe it was deleted in the meantime" + " by another user. The navigation is refreshed for you."); await NavigationViewModel.LoadAsync(); return; } DetailViewModels.Add(detailViewModel); } SelectedDetailViewModel = detailViewModel; }
/// <summary> /// Ejecuta un script /// </summary> internal async Task ExecuteScriptAsync() { if (IsExecuting) { SolutionViewModel.MainController.HostController.SystemController.ShowMessage("Ya se está ejecutando una consulta"); } else { IDetailViewModel selectedViewModel = SolutionViewModel.MainController.MainWindowController.GetActiveDetails(); switch (GetExecutionMode(selectedViewModel)) { case ExecutionMode.Unknown: SolutionViewModel.MainController.HostController.SystemController.ShowMessage("No se puede ejecutar este archivo"); break; case ExecutionMode.BatchSql: case ExecutionMode.ScriptSql: case ExecutionMode.ScriptSqlExtended: await PrepareExecuteScriptSqlAsync(selectedViewModel); break; case ExecutionMode.JobsXml: await PrepareExecuteScriptXmlAsync(selectedViewModel); break; case ExecutionMode.BatchEtl: await PrepareExecuteBatchXmlAsync(selectedViewModel); break; } } }
public MainViewModel(IIndex <string, IDetailViewModel> detailViewModelCreator) { _detailViewModelCreator = detailViewModelCreator; _detailViewModel = new LogoViewModel(); CreateDetailViewCommand = new DelegateCommand <Type>(OnCreateDetailView); }
private async void OnOpenDetailView(OpenDetailViewEventArgs args) { IDetailViewModel detailViewModel = DetailViewModels. SingleOrDefault(vm => vm.Id == args.Id && vm.GetType().Name == args.ViewModelName); if (detailViewModel == null) { detailViewModel = _detailViewModelCreator[args.ViewModelName]; try { await detailViewModel.LoadAsync(args.Id); } catch { await _messageDialogService.ShowInfoDialogAsync("Could not load entiry"); await NavigationViewModel.LoadAsync(); return; } DetailViewModels.Add(detailViewModel); } SelectedDetailViewModel = detailViewModel; }
private async void OpenDetailView(OpenDetailViewEventArgs args) { Int64 startTicks = Log.EVENT_HANDLER($"(DogMainViewModel) Enter Id:({args.Id}(", Common.LOG_APPNAME); var detailViewModel = DetailViewModels .SingleOrDefault(vm => vm.Id == args.Id && vm.GetType().Name == args.ViewModelName); if (detailViewModel == null) { switch (args.ViewModelName) { case nameof(DogDetailViewModel): detailViewModel = (IDetailViewModel)_DogDetailViewModelCreator(); break; //case nameof(MeetingDetailViewModel): // detailViewModel = _meetingDetailViewModelCreator(); // break; case nameof(BoneDetailViewModel): detailViewModel = _BoneDetailViewModelCreator(); break; // Ignore event if we don't handle default: return; } // Verify item still exists (may have been deleted) try { await detailViewModel.LoadAsync(args.Id); } catch (Exception ex) { //MessageDialogService.ShowInfoDialog($"Cannot load the entity ({ex})" + // "It may have been deleted by another user. Updating Navigation"); var message = $"Cannot load the entity ({ex})" + "It may have been deleted by another user. Updating Navigation"; DialogService.Show("NotificationDialog", new DialogParameters($"message={message}"), r => { }); await NavigationViewModel.LoadAsync(); return; } DetailViewModels.Add(detailViewModel); } SelectedDetailViewModel = detailViewModel; Log.VIEWMODEL("(DogMainViewModel) Exit", Common.LOG_APPNAME, startTicks); }
private async void OpenDetailView(OpenDetailViewEventArgs args) { Int64 startTicks = Log.EVENT_HANDLER($"(CatMainViewModel) Enter Id:({args.Id}(", Common.LOG_CATEGORY); var detailViewModel = DetailViewModels .SingleOrDefault(vm => vm.Id == args.Id && vm.GetType().Name == args.ViewModelName); if (detailViewModel == null) { switch (args.ViewModelName) { // case nameof(CatDetailViewModel): // detailViewModel = (IDetailViewModel)_CatDetailViewModelCreator(); // break; case nameof(CatDetailViewModel): detailViewModel = (IDetailViewModel)_CatDetailViewModelCreator(); break; //case nameof(MeetingDetailViewModel): // detailViewModel = _meetingDetailViewModelCreator(); // break; case nameof(ToyDetailViewModel): detailViewModel = _ToyDetailViewModelCreator(); break; // This should not happen anymore withe TYPEEvent default: return; } // Verify item still exists (may have been deleted) try { await detailViewModel.LoadAsync(args.Id); } catch (Exception ex) { var message = $"Cannot load the entity ({ex}) It may have been deleted by another user"; DialogService.Show("NotificationDialog", new DialogParameters($"message={message}"), r => { }); await NavigationViewModel.LoadAsync(); return; } DetailViewModels.Add(detailViewModel); } SelectedDetailViewModel = detailViewModel; Log.VIEWMODEL("(CatMainViewModel) Exit", Common.LOG_CATEGORY, startTicks); }
public void ShowError(string errorMessage) { IErrorViewModel errorViewModel = new ErrorViewModel(); errorViewModel.ErrorAcknowledged += ErrorViewModelErrorAcknowledged; errorViewModel.LoadData(errorMessage); DetailViewModel = errorViewModel; }
private void RemoveDetailViewModel(int id, string viewModelName) { IDetailViewModel detailViewModel = DetailViewModels. SingleOrDefault(vm => vm.Id == id && vm.GetType().Name == viewModelName); if (detailViewModel != null) { DetailViewModels.Remove(detailViewModel); } }
/// <summary> /// Modifica la ventana de detalles seleccionada /// </summary> private void UpdateSelectedTab() { IDetailViewModel details = null; // Obtiene los detalles de la ficha seleccionada if (dckManager.ActiveDocument != null) { details = dckManager.ActiveDocument.Tag as IDetailViewModel; } // Cambia la ficha seleccionada en el ViewModel ViewModel.SelectedDetailsViewModel = details; }
private async void OnOpenDetailView(OpenDetailViewEventArgs args) { if (DetailViewModel != null && DetailViewModel.HasChanges) { var result = _messageDialogService.ShowOkCancelDialog("You've made changes. Navigate away?", "Question"); if (result == MessageDialogResult.Cancel) { return; } } DetailViewModel = _detailViewModelCreator[args.ViewModelName]; await DetailViewModel.LoadAsync(args.Id); }
/*public IFriendDetailViewModel FriendDetailViewModel { get; }*/ // We don`t need set becouse we setup property directly into ctor, we bind it to friendView // WE DON`T NEED THIS IN MainViewModel //public ObservableCollection<Friend> Friends { get; set; } //public Friend SelectedFriend //{ // get { return _selectedFriend; } // set // { // _selectedFriend = value; // OnPropertyChanged(); // rise event handler; property name if automaticly passed from compiler via atribut in the method // } //} // This method is called whenever user click item in navigation // If no one detailViewModel exist one is created by if statement private async void OnOpenDetailView(OpenDetailViewEventArgs args) { // args.Id contain Id of view that is clicked var detailViewModel = DetailViewModels .SingleOrDefault(vm => vm.Id == args.Id && vm.GetType().Name == args.ViewModelName); // If ViewModel did not exist in observable collection if (detailViewModel == null) { detailViewModel = _detailViewModelCreator[args.ViewModelName]; try { await detailViewModel.LoadAsync(args.Id); } catch { await _messageDialogService.ShowInfoDialogAsync("Could not load the entity maybe it was deleted in the meantime by another user. The navigation is refreshed for you."); await NavigationViewModel.LoadAsync(); return; } DetailViewModels.Add(detailViewModel); } // Logic if user change something and navigate from current detailView //if (SelectedDetailViewModel != null && SelectedDetailViewModel.HasChanges) //{ // var result = _messageDialogService.ShowOkCancelDialog("You've made changes. Navigate away?", "Question"); // if (result == MessageDialogResult.Cancel) // { // return; // } //} //switch (args.ViewModelName) //{ // case nameof(FriendDetailViewModel): // DetailViewModel = _friendDetailViewModelCreator(); // break; // case nameof(MeetingDetailViewModel): // DetailViewModel = _meetingDetailViewModelCreator(); // break; // default: // throw new Exception($"ViewModel {args.ViewModelName} not mapped"); //} SelectedDetailViewModel = detailViewModel; }
/// <summary> /// Abre una ventana /// </summary> public SystemControllerEnums.ResultType OpenWindow(IDetailViewModel detailsViewModel) { // Abre la ventana switch (detailsViewModel) { case ViewModels.Details.Connections.ExecuteFilesViewModel viewModel: DbStudioViewManager.AppViewsController.OpenDocument(new Connections.ExecuteFilesView(viewModel), viewModel); break; case ViewModels.Details.Files.ScriptFileViewModel viewModel: PluginController.HostPluginsController.OpenEditor(viewModel); break; case ViewModels.Details.Files.Structured.BaseFileViewModel viewModel: DbStudioViewManager.AppViewsController.OpenDocument(new Files.DataTableFileView(viewModel), viewModel); break; case ViewModels.Details.Queries.ExecuteQueryViewModel viewModel: DbStudioViewManager.AppViewsController.OpenDocument(new Queries.ExecuteQueryView(viewModel), viewModel); break; case ViewModels.Details.EtlProjects.ExecuteEtlConsoleViewModel viewModel: DbStudioViewManager.AppViewsController.OpenDocument(new EtlProjects.ExecuteEtlConsoleView(viewModel), viewModel); break; case ViewModels.Details.Reporting.DataSources.DataSourceSqlViewModel viewModel: DbStudioViewManager.AppViewsController.OpenDocument(new Reporting.Details.DataSources.DataSourceSqlView(viewModel), viewModel); break; case ViewModels.Details.Reporting.DataSources.DataSourceTableViewModel viewModel: DbStudioViewManager.AppViewsController.OpenDocument(new Reporting.Details.DataSources.DataSourceTableView(viewModel), viewModel); break; case ViewModels.Details.Reporting.Dimension.DimensionViewModel viewModel: DbStudioViewManager.AppViewsController.OpenDocument(new Reporting.Details.Dimensions.DimensionView(viewModel), viewModel); break; case ViewModels.Details.Reporting.Queries.ReportViewModel viewModel: DbStudioViewManager.AppViewsController.OpenDocument(new Reporting.Queries.ReportView(viewModel), viewModel); break; case ViewModels.Details.Reporting.Reports.ReportViewModel viewModel: DbStudioViewManager.AppViewsController.OpenDocument(new Reporting.Details.Reports.ReportView(viewModel), viewModel); break; } // Devuelve el valor predeterminado return(SystemControllerEnums.ResultType.Yes); }
private async void OnOpenDetailView(OpenDetailViewEventArgs args) { var detailViewModel = DetailViewModels .SingleOrDefault(vm => vm.Id == args.Id && vm.GetType().Name == args.ViewModelName); if (detailViewModel == null) { detailViewModel = detailViewModelCreator[args.ViewModelName]; await detailViewModel.LoadAsync(args.Id); DetailViewModels.Add(detailViewModel); } SelectedDetailViewModel = detailViewModel; }
/// <summary> /// Prepara la ejecución de un script XML /// </summary> private async Task PrepareExecuteBatchXmlAsync(IDetailViewModel viewModel) { if (viewModel is ExecuteEtlConsoleViewModel etlViewModel) { if (string.IsNullOrWhiteSpace(etlViewModel.ProjectFileName)) { SolutionViewModel.MainController.SystemController.ShowMessage("Seleccione el archivo de proyecto"); } else if (!etlViewModel.ProjectFileName.EndsWith(".xml")) { SolutionViewModel.MainController.SystemController.ShowMessage("No se reconoce el formato del archivo de proyecto"); } else if (string.IsNullOrWhiteSpace(etlViewModel.ContextFileName)) { SolutionViewModel.MainController.SystemController.ShowMessage("Seleccione el archivo de contexto"); } else if (!etlViewModel.ContextFileName.EndsWith(".xml")) { SolutionViewModel.MainController.SystemController.ShowMessage("No se reconoce el formato del archivo de contexto"); } else { // Arranca la ejecución StartExecution(); // Ejecuta la tarea try { // Ejecuta el script XML await etlViewModel.ExecuteXmlScriptAsync(_cancellationToken); // Muestra el mensaje al usuario SolutionViewModel.MainController.MainWindowController .ShowNotification(BauMvvm.ViewModels.Controllers.SystemControllerEnums.NotificationType.Information, "Ejecución de script XML", "Ha terminado correctamente la ejecución del script"); } catch (Exception exception) { SolutionViewModel.MainController.Logger.Default.LogItems.Error($"Error al ejecutar la consulta. {exception.Message}"); } // Indica que ha finalizado la tarea y detiene el temporizador StopExecuting(); } } }
/// <summary> /// Prepara la ejecución de un script XML /// </summary> private async Task PrepareExecuteScriptXmlAsync(IDetailViewModel viewModel) { if (viewModel is Files.ScriptFileViewModel fileViewModel) { if (!fileViewModel.FileName.EndsWith(".xml")) { SolutionViewModel.MainController.SystemController.ShowMessage("No se pueden ejecutar scripts de este tipo de archivo"); } else if (fileViewModel.IsUpdated) { SolutionViewModel.MainController.SystemController.ShowMessage("Grabe el contenido del archivo antes de ejecutar"); } else if (string.IsNullOrWhiteSpace(fileViewModel.Content)) { SolutionViewModel.MainController.SystemController.ShowMessage("El archivo está vacío"); } else if (string.IsNullOrWhiteSpace(EtlParametersFileName) || !System.IO.File.Exists(EtlParametersFileName)) { SolutionViewModel.MainController.SystemController.ShowMessage("Seleccione un archivo de contexto"); } else { // Arranca la ejecución StartExecution(); // Ejecuta la tarea try { // Ejecuta el script XML await fileViewModel.ExecuteXmlScriptAsync(EtlParametersFileName, _cancellationToken); // Muestra el mensaje al usuario SolutionViewModel.MainController.MainWindowController .ShowNotification(BauMvvm.ViewModels.Controllers.SystemControllerEnums.NotificationType.Information, "Ejecución de script XML", "Ha terminado correctamente la ejecución del script"); } catch (Exception exception) { SolutionViewModel.MainController.Logger.Default.LogItems.Error($"Error al ejecutar la consulta. {exception.Message}"); } // Indica que ha finalizado la tarea y detiene el temporizador StopExecuting(); } } }
public static void DoPrintRecord(IDetailViewModel detail, DateTime refreshDateTime, int headerLength, string filePrefix, string title, int registerId) { IBusinessBase model = detail.Model as IBusinessBase; var instance = new PrintRecord { _detail = detail, _model = model, _refreshDateTime = refreshDateTime, _headerLength = headerLength, _filePrefix = filePrefix, _title = title, _registerId = registerId }; instance.DoPrintRecord(); }
/// <summary> /// Abre una ventana de detalles /// </summary> public SystemControllerEnums.ResultType OpenWindow(IDetailViewModel detailViewModel) { SystemControllerEnums.ResultType result = SystemControllerEnums.ResultType.Yes; // Muestra la ventana adecuada switch (detailViewModel) { case Libraries.BauSparkScripts.ViewModels.Solutions.Details.Connections.ConnectionViewModel viewModel: result = HostHelperController.ShowDialog(MainWindow, new Views.Connections.ConnectionView(viewModel)); break; default: OpenWindowRequired?.Invoke(this, detailViewModel); break; } // Devuelve el resultado return(result); }
private async void OnOpenDetailView(OpenDetailViewEventArgs args) { var detailViewModel = DetailViewModels .SingleOrDefault(vm => vm.Id == args.Id && vm.GetType().Name == args.ViewModelName); if (detailViewModel == null) { switch (args.ViewModelName) { case nameof(FriendDetailViewModel): detailViewModel = _friendDetailViewModelCreator(); break; case nameof(MeetingDetailViewModel): detailViewModel = _meetingDetailViewModelCreator(); break; case nameof(ProgrammingLanguageDetailViewModel): detailViewModel = _programmingLanguageDetailViewModelCreator(); break; } // Verify item still exists (may have been deleted) try { await detailViewModel.LoadAsync(args.Id); } catch { _messageDialogService.ShowInfoDialog( "Cannot load the entity, it may have been deleted" + " by another user. Updating Navigation"); await NavigationViewModel.LoadAsync(); return; } DetailViewModels.Add(detailViewModel); } SelectedDetailViewModel = detailViewModel; }
/// <summary> /// Prepara la ejecución de un script SQL o un lote de scripts SQL /// </summary> private async Task PrepareExecuteScriptSqlAsync(IDetailViewModel viewModel) { ConnectionModel connection = GetSelectedConnection(); if (connection == null) { SolutionViewModel.MainController.HostController.SystemController.ShowMessage("Seleccione una conexión"); } else { (ArgumentListModel arguments, string error) = GetParameters(); // Si ha podido cargar el archivo de parámetros, ejecuta el script if (!string.IsNullOrWhiteSpace(error)) { SolutionViewModel.MainController.HostController.SystemController.ShowMessage(error); } else { // Arranca la ejecución StartExecution(); // Ejecuta la tarea try { // Ejecuta el script await ExecuteScriptSqlAsync(viewModel, connection, arguments, _cancellationToken); // Mensaje al usuario SolutionViewModel.MainController.MainWindowController .ShowNotification(BauMvvm.ViewModels.Controllers.SystemControllerEnums.NotificationType.Information, "Ejecución de script SQL", "Ha terminado correctamente la ejecución del script SQL"); } catch (Exception exception) { SolutionViewModel.MainController.Logger.Default.LogItems.Error($"Error al ejecutar la consulta. {exception.Message}"); } // Indica que ha finalizado la tarea y detiene el temporizador StopExecuting(); } } }
private async void OnOpenDetailView(OpenDetailViewEventArgs args) { if (DetailViewModel != null && DetailViewModel.HasChanges) { var result = _messageDialogService.ShowOkCancelDialog("You've made changes. Navigate away?", "Question"); if (result == MessageDialogResult.Cancel) { return; } } switch (args.ViewModelName) { case nameof(FriendDetailViewModel): DetailViewModel = _friendDetailViewModelCreator(); break; } await DetailViewModel.LoadAsync(args.Id); }