/// <summary> /// Shows a Save/Generate messagebox /// </summary> /// <param name="success">true if operation was successful</param> /// <param name="filename">the filename</param> /// <param name="operation">the operation type</param> private void ShowSaveOrGenMessage(Boolean success, String filename, SaveOrGenerate operation) { if (!success) { messageBoxService.ShowError( String.Format("There was a problem {0} the\r\nViewModel file : {1}", operation == SaveOrGenerate.Save ? "Saving" : "Generating", filename)); } else { messageBoxService.ShowInformation( String.Format("Successfully {0} the\r\nViewModel file : {1}", operation == SaveOrGenerate.Save ? "Saved" : "Generated", filename)); } }
/// <summary> /// Saves the current ViewModel as an XML file or generates C# code for the /// current ViewModel /// </summary> /// <param name="filter">The save file filter to use</param> /// <param name="operation">The SaveOrGenerate operation to use</param> private Tuple <Boolean, String> SaveOrGenerateOperation(String filter, SaveOrGenerate operation) { if (!IsValid) { messageBoxService.ShowError("The current ViewModel is InValid\r\nPlease fix it then retry"); return(null); } else { //Ask the user where they want to save the file, and save it try { saveFileService.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory; saveFileService.FileName = String.Empty; saveFileService.Filter = filter; saveFileService.OverwritePrompt = true; bool?result = saveFileService.ShowDialog(null); if (result.HasValue && result.Value) { //Create a Persistence ViewModel based on the current In Memory ViewModel PesistentVM pesistentVM = new PesistentVM(); pesistentVM.VMName = ViewModelName; pesistentVM.VMType = CurrentViewModelType; pesistentVM.VMNamespace = ViewModelNamespace; foreach (SinglePropertyViewModel propVM in propertiesViewModel.PropertyVMs) { pesistentVM.VMProperties.Add(new PesistentVMSingleProperty { PropertyType = propVM.PropertyType, PropName = propVM.PropName, UseDataWrapper = propVM.UseDataWrapper, ParentViewModelName = ViewModelName }); } bool success = false; FileInfo file = new FileInfo(saveFileService.FileName); //decide what file needs saving/generating switch (operation) { case SaveOrGenerate.Save: //save to XML success = ViewModelPersistence.PersistViewModel( saveFileService.FileName, pesistentVM); ShowSaveOrGenMessage(success, file.Name, SaveOrGenerate.Save); return(TupleHelper.New(success, saveFileService.FileName)); case SaveOrGenerate.Generate: //generate code success = ViewModelPersistence.CreateViewModelCode( saveFileService.FileName, pesistentVM); ShowSaveOrGenMessage(success, file.Name, SaveOrGenerate.Generate); return(TupleHelper.New(success, saveFileService.FileName)); } } } catch (Exception ex) { messageBoxService.ShowError( String.Format("An error occurred trying to {0} the ViewModel\r\n{1}", operation.ToString(), ex.Message)); return(null); } return(null); } }
/// <summary> /// Saves the current ViewModel as an XML file or generates C# code for the /// current ViewModel /// </summary> /// <param name="filter">The save file filter to use</param> /// <param name="operation">The SaveOrGenerate operation to use</param> private Tuple<Boolean,String> SaveOrGenerateOperation(String filter, SaveOrGenerate operation) { if (!IsValid) { messageBoxService.ShowError("The current ViewModel is InValid\r\nPlease fix it then retry"); return null; } else { //Ask the user where they want to save the file, and save it try { saveFileService.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory; saveFileService.FileName = String.Empty; saveFileService.Filter = filter; saveFileService.OverwritePrompt = true; bool? result = saveFileService.ShowDialog(null); if (result.HasValue && result.Value) { //Create a Persistence ViewModel based on the current In Memory ViewModel PesistentVM pesistentVM = new PesistentVM(); pesistentVM.VMName = ViewModelName; pesistentVM.VMType = CurrentViewModelType; pesistentVM.VMNamespace = ViewModelNamespace; foreach (SinglePropertyViewModel propVM in propertiesViewModel.PropertyVMs) { pesistentVM.VMProperties.Add(new PesistentVMSingleProperty { PropertyType = propVM.PropertyType, PropName = propVM.PropName, UseDataWrapper = propVM.UseDataWrapper, ParentViewModelName = ViewModelName }); } bool success = false; FileInfo file = new FileInfo(saveFileService.FileName); //decide what file needs saving/generating switch (operation) { case SaveOrGenerate.Save: //save to XML success = ViewModelPersistence.PersistViewModel( saveFileService.FileName,pesistentVM); ShowSaveOrGenMessage(success, file.Name, SaveOrGenerate.Save); return TupleHelper.New(success, saveFileService.FileName); case SaveOrGenerate.Generate: //generate code success = ViewModelPersistence.CreateViewModelCode( saveFileService.FileName, pesistentVM); ShowSaveOrGenMessage(success, file.Name, SaveOrGenerate.Generate); return TupleHelper.New(success, saveFileService.FileName); } } } catch (Exception ex) { messageBoxService.ShowError( String.Format("An error occurred trying to {0} the ViewModel\r\n{1}", operation.ToString(), ex.Message)); return null; } return null; } }
/// <summary> /// Shows a Save/Generate messagebox /// </summary> /// <param name="success">true if operation was successful</param> /// <param name="filename">the filename</param> /// <param name="operation">the operation type</param> private void ShowSaveOrGenMessage(Boolean success,String filename, SaveOrGenerate operation) { if (!success) { messageBoxService.ShowError( String.Format("There was a problem {0} the\r\nViewModel file : {1}", operation == SaveOrGenerate.Save ? "Saving" : "Generating", filename)); } else { messageBoxService.ShowInformation( String.Format("Successfully {0} the\r\nViewModel file : {1}", operation == SaveOrGenerate.Save ? "Saved" : "Generated", filename)); } }