/// <summary> /// Guarda los datos del formulario en el modelo /// </summary> private void Save() { if (ValidateData()) { // Asigna las propiedades Deployment.Name = Name; Deployment.Description = Description; Deployment.PathScriptsTarget = PathScriptsTarget; Deployment.PathFilesTarget = PathFilesTarget; // Añade los elementos ConnectionsListViewModel.GetConnections(Deployment.Connections); Deployment.Parameters.Clear(); Deployment.Parameters.AddRange(ParametersListViewModel.GetParameters()); Deployment.Scripts.Clear(); Deployment.Scripts.AddRange(ScriptsTreeViewModel.GetScripts()); // Añade los formatos de salida Deployment.ReportFormatTypes.Clear(); foreach (ControlItemViewModel item in ReportOutputListViewModel.Items) { if (item.Tag != null && item.IsChecked) { Deployment.ReportFormatTypes.Add(item.Tag.ToString().GetEnum(DeploymentModel.ReportFormat.Xml)); } } // Añade el modo de distribución al proyecto si es necesario if (IsNew) { Project.Deployments.Add(Deployment); IsNew = false; } // Graba los datos ExplorerViewModel.SaveProject(); IsUpdated = false; } }
/// <summary> /// Initializes a new instance of the <see cref="MenuViewModel" /> class. /// </summary> /// <param name="eventAggregator">The event aggregator.</param> /// <param name="mouseManager">The mouse manager.</param> /// <param name="connectionsListViewModel">The connections list view model.</param> public MenuViewModel(IEventAggregator eventAggregator, IMouseManager mouseManager, ConnectionsListViewModel connectionsListViewModel) { Ensure.That(eventAggregator).IsNotNull(); Ensure.That(mouseManager).IsNotNull(); Ensure.That(connectionsListViewModel).IsNotNull(); _eventAggregator = eventAggregator; _mouseManager = mouseManager; _mouseManager.PreProcessInput += MouseManagerPreProcessMouse; ConnectionsList = connectionsListViewModel; }
/// <summary> /// Inicializa las propiedades /// </summary> private void InitViewModel() { // Inicializa las propiedades básicas Name = Deployment.Name; Description = Deployment.Description; PathScriptsTarget = Deployment.PathScriptsTarget; PathFilesTarget = Deployment.PathFilesTarget; // Carga las conexiones ConnectionsListViewModel.LoadItems(Deployment); ParametersListViewModel.LoadItems(Deployment.Parameters); ScriptsTreeViewModel.LoadFiles(); LoadReportOutputList(); }
/// <summary> /// Comprueba los datos introducidos /// </summary> private bool ValidateData() { bool validated = false; // Comprueba los datos introducidos if (!Project.GlobalId.Equals(ExplorerViewModel.Project.GlobalId, StringComparison.CurrentCultureIgnoreCase)) { MainViewModel.Instance.ControllerWindow.ShowMessage("Se ha cargado otro proyecto en el explorador. No se puede grabar la distribución en este archivo"); } else if (string.IsNullOrEmpty(Name)) { MainViewModel.Instance.ControllerWindow.ShowMessage("Introduzca el nombre de la conexión"); } else if (!ConnectionsListViewModel.ValidateData()) { MainViewModel.Instance.ControllerWindow.ShowMessage("Seleccione la clave y conexión de los elementos de distribución"); } else if (string.IsNullOrEmpty(PathScriptsTarget)) { MainViewModel.Instance.ControllerWindow.ShowMessage("Seleccione el directorio donde se guardan los scripts"); } else if (string.IsNullOrEmpty(PathFilesTarget)) { MainViewModel.Instance.ControllerWindow.ShowMessage("Seleccione el directorio donde se guardan los archivos generados"); } else if (!ParametersListViewModel.ValidateData(out string error)) { MainViewModel.Instance.ControllerWindow.ShowMessage(error); } else if (!ScriptsTreeViewModel.ValidateData(out error)) { MainViewModel.Instance.ControllerWindow.ShowMessage(error); } else { validated = true; } // Devuelve el valor que indica si los datos son correctos return(validated); }