Exemplo n.º 1
0
 /// <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));
     }
 }
Exemplo n.º 2
0
        /// <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);
            }
        }
Exemplo n.º 3
0
        /// <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;
            }
        }
Exemplo n.º 4
0
        /// <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));
            }
        }