示例#1
0
        /// <summary>
        ///     The save config.
        /// </summary>
        /// <param name="parameters">
        ///     The parameters.
        /// </param>
        public void SaveConfig(object parameters)
        {
            if (DataType != null)
            {
                ApplicationServiceDataType applicationServiceDataType = null;

                if (!this.IsDefault && SelectedApplicationService != null)
                {
                    applicationServiceDataType = UpdateDataTypeSpecific();

                    SelectedApplicationService =
                        applicationServiceDataType.ApplicationServiceData.FirstOrDefault(o =>
                                                                                         o.Id == SelectedApplicationService.Id);

                    UpdateApplicationService();
                }
                else
                {
                    applicationServiceDataType = UpdateDataTypeSpecific();
                }

                IDictionary <string, string> parameterDictionary = parameters as IDictionary <string, string>;
                DataType.Save(parameterDictionary);
            }
        }
示例#2
0
        /// <summary>
        /// The load config.
        /// </summary>
        /// <param name="parameters">
        /// The parameters.
        /// </param>
        public void LoadConfig(object parameters)
        {
            if (this.DataType == null)
            {
                return;
            }

            this.Loaded = true;

            IDictionary <string, string> parameterDictionary = parameters as IDictionary <string, string>;

            this.DataType?.Load(parameterDictionary);

            this.applicationServiceData = new ApplicationServiceDataType();
            this.applicationServiceData.DomainDefinition = this.DataSource;
            this.applicationServiceData.Load(parameterDictionary);

            (this.DataType as WebApiServiceDataType).ApplicationServiceDataType = this.applicationServiceData;

            if (parameterDictionary.ContainsKey("basePath"))
            {
                this.SavePath = parameterDictionary["basePath"];
            }

            if (parameterDictionary.ContainsKey("name"))
            {
                this.SelectedWebApi =
                    (this.DataType as WebApiServiceDataType).WebApiDataList.FirstOrDefault(
                        o => o.Id.ToString() == parameterDictionary["name"]);
            }

            this.TreeviewContextModels.Visible  = this.SelectedWebApi != null;
            this.gbAdditionalNamespaces.Visible = this.SelectedWebApi == null;

            if (this.SelectedWebApi == null)
            {
                this.SetupDefault();
            }
            else
            {
                this.IsDefault = false;
            }

            if (this.IsDefault)
            {
                this.btnNew.Text = "Add";
                this.btnNew.Tag  = "Add";
            }
            else
            {
                this.btnNew.Text = "Delete";
                this.btnNew.Tag  = "Delete";
            }

            this.UpdateUI();

            if (this.DataType.Validate().Count > 0)
            {
                StringBuilder sb = new StringBuilder();

                var  contextDataType = this.DataType as WebApiServiceDataType;
                bool removed         = false;

                foreach (var error in contextDataType.MissingApplicationList)
                {
                    DialogResult result = MessageBox.Show(
                        $"Delete missing Application Service {error.ApplicationServiceName} from the WebApi {error.ApplicationServiceData.ApplicationServiceName}",
                        "Missing Table",
                        MessageBoxButtons.YesNo,
                        MessageBoxIcon.Error);

                    if (result == DialogResult.Yes)
                    {
                        var model = error.ApplicationServiceData.Models.FirstOrDefault(
                            m => m.TableName == error.ApplicationServiceName);
                        error.ApplicationServiceData.Models.Remove(model);
                        removed = true;
                    }
                }

                if (removed)
                {
                    this.SaveConfig(parameterDictionary);
                }

                foreach (Validation validation in this.DataType.ValidationResult)
                {
                    if (validation.ValidationType != ValidationType.ContextMissingModels)
                    {
                        sb.AppendLine(validation.Description);
                    }
                }

                if (sb.Length > 0)
                {
                    MessageBox.Show(sb.ToString(), "Invalid Context", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }