예제 #1
0
        /// <summary>
        /// Fills the template ComboBox.
        /// </summary>
        private void FillTemplateComboBox()
        {
            _savedTemplates = LoadSavedTemplates();

            if (_savedTemplates.Templates == null)
            {
                return;
            }

            var templateList = new List <TemplateListItem>();

            cmbTemplate.ValueMember   = "TemplateId";
            cmbTemplate.DisplayMember = "TemplateName";

            templateList.Add(new TemplateListItem {
                TemplateId = 0, TemplateName = ""
            });

            foreach (var item in _savedTemplates.Templates)
            {
                templateList.Add(new TemplateListItem {
                    TemplateId = item.TemplateId, TemplateName = item.TemplateName
                });
            }

            cmbTemplate.DataSource = templateList;
        }
예제 #2
0
        /// <summary>
        /// Saves the form configuration changes.
        /// </summary>
        private void SaveFormConfigChanges()
        {
            var serializer = new XmlSerializer(typeof(AtomUITemplates));

            if (_savedTemplates == null)
            {
                _savedTemplates = new AtomUITemplates
                {
                    Templates = new List <Template>()
                }
            }
            ;
            else if (_savedTemplates.Templates == null)
            {
                _savedTemplates.Templates = new List <Template>();
            }

            bool   isNewTemplate = cmbTemplate.SelectedIndex == -1 || (int)cmbTemplate.SelectedValue == 0;
            string templateName  = string.Empty;

            if (isNewTemplate)
            {
                templateName = Prompt.ShowDialog("Enter template name", "Template Name");

                if (string.IsNullOrEmpty(templateName))
                {
                    MessageBox.Show("Template was not saved.", "Save failed", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }
            }

            Template template;

            if (isNewTemplate)
            {
                var templateId = _savedTemplates.Templates?.Count > 0
                                   ? _savedTemplates.Templates[_savedTemplates.Templates.Count - 1].TemplateId + 1
                                   : 1;
                template = new Template
                {
                    TemplateId       = templateId,
                    TemplateName     = templateName,
                    ConnectionString = txtConnectionString.Text,
                    MasterworksUrl   = txtMasterworksUrl.Text,
                    UserName         = txtMasterworksUserName.Text,
                    Password         = txtMasterworksPassword.Text,

                    Modules = new List <ModuleConfig>()
                };
                _savedTemplates.Templates.Add(template);
            }
            else
            {
                template = _savedTemplates.Templates.Find(t => t.TemplateId == (int)cmbTemplate.SelectedValue);
                template.ConnectionString = txtConnectionString.Text;
                template.MasterworksUrl   = txtMasterworksUrl.Text;
                template.UserName         = txtMasterworksUserName.Text;
                template.Password         = txtMasterworksPassword.Text;
            }

            template.SolutionTargetPath            = txtSolutionTargetPath.Text;
            template.DeploymentPath                = txtDeploymentPath.Text;
            template.AtomReactorExecutableFilePath = txtAtomReactorPath.Text;
            template.CompileAndGenerateLibrary     = chkCompileAndGenerateLibrary.Checked;
            template.IsAutoDeploy = chkAutoDeploy.Checked;

            ModuleConfig moduleConfig = template.Modules.Find(m => m.ModuleId == cmbModules.SelectedValue.ToString());

            if (moduleConfig == null)
            {
                moduleConfig = new ModuleConfig
                {
                    ModuleId   = cmbModules.SelectedValue.ToString(),
                    ModuleName = cmbModules.SelectedText,
                    Controls   = new List <ControlConfig>()
                };
                template.Modules.Add(moduleConfig);
            }

            moduleConfig.IncludeNegativeTestCase   = chkIncludeNegativeTestCase.Checked;
            moduleConfig.IncludeSecurityTestCase   = chkIncludeSecurityTestCase.Checked;
            moduleConfig.IncludeEditModeValidation = chkIncludeEditModeValidation.Checked;
            moduleConfig.IncludeViewModeValidation = chkIncludeViewModeValidation.Checked;
            moduleConfig.AutomationGuidFieldName   = cmbAutomationGuidField.SelectedValue?.ToString();
            moduleConfig.IncludeDBValidation       = chkIncludeDbValidation.Checked;

            moduleConfig.GenerateDistinctDLLs           = chkGenerateDistinctDLL.Checked;
            moduleConfig.GenerateDistinctSuiteXMLConfig = chkGenerateDistinctSuiteXmlConfig.Checked;
            moduleConfig.AutoGenerateSolutionName       = chkAutoGenerateSolutionName.Checked;
            //moduleConfig.CompileAndGenerateLibrary = chkCompileAndGenerateLibrary.Checked;
            //moduleConfig.SolutionName = txtSolutionName.Text;
            //moduleConfig.SolutionTargetPath = txtSolutionTargetPath.Text;

            for (var i = 0; i < tvControlsTree.Nodes.Count; i++)
            {
                var  node = tvControlsTree.Nodes[i];
                var  control = _formControls[node.Text];
                var  controlConfig = moduleConfig.Controls.Find(c => c.Name == node.Text);
                bool isNewControl = false, hasAttributes = false;

                if (controlConfig == null)
                {
                    isNewControl  = true;
                    controlConfig = new ControlConfig
                    {
                        Name       = node.Text,
                        Type       = control.Type.ToString(),
                        Attributes = new List <string>()
                    };
                }

                for (var j = 0; j < node.Nodes.Count; j++)
                {
                    var subNode   = node.Nodes[j];
                    var attribute = controlConfig.Attributes.Find(a => a == subNode.Text);

                    if (!subNode.Checked && attribute != null)
                    {
                        controlConfig.Attributes.Remove(attribute);
                        continue;
                    }
                    else if (subNode.Checked && attribute == null)
                    {
                        controlConfig.Attributes.Add(subNode.Text);
                        hasAttributes = true;
                    }
                }

                if (isNewControl || hasAttributes)
                {
                    moduleConfig.Controls.Add(controlConfig);
                }
            }

            using (var fs = new FileStream(AppConfig.AtomUITemplate, FileMode.Truncate))
            {
                serializer.Serialize(fs, _savedTemplates);
            }

            FillTemplateComboBox();

            cmbTemplate.SelectedValue = template.TemplateId;

            MessageBox.Show("Template saved successfully.", "Save successful", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }