private void PopulateDataGrid(SqlDataReader reader, DatabaseTable tableName)
 {
     dataGrid_Results.ItemsSource = null;
     switch (tableName)
     {
         case DatabaseTable.ProcessControl:
             var processControls = new List<ProcessControl>();
             while (reader.Read())
             {
                 var x = new ProcessControl(reader);
                 processControls.Add(x);
             }
             dataGrid_Results.ItemsSource = processControls;
             break;
         case DatabaseTable.SystemSettings:
             var systemSettingses = new List<SystemSettings>();
             while (reader.Read())
             {
                 var x = new SystemSettings(reader);
                 systemSettingses.Add(x);
             }
             dataGrid_Results.ItemsSource = systemSettingses;
             break;
         case DatabaseTable.BillingDecisionsConfiguration:
             var billingDecisionsConfigurations = new List<BillingDecisionsConfiguration>();
             while (reader.Read())
             {
                 var x = new BillingDecisionsConfiguration(reader);
                 billingDecisionsConfigurations.Add(x);
             }
             dataGrid_Results.ItemsSource = billingDecisionsConfigurations;
             break;
         default:
             Tools.ShowErrorPopUpModal("Unsupported table");
             break;
     }
 }
 /// <summary>
 ///     This API supports the Entity Framework Core infrastructure and is not intended to be used
 ///     directly from your code. This API may change or be removed in future releases.
 /// </summary>
 protected virtual string GetDbSetName([NotNull] DatabaseTable table)
 => _dbSetNamer.GetName(Check.NotNull(table, nameof(table)));
        /// <summary>
        ///     This API supports the Entity Framework Core infrastructure and is not intended to be used
        ///     directly from your code. This API may change or be removed in future releases.
        /// </summary>
        protected virtual KeyBuilder VisitPrimaryKey([NotNull] EntityTypeBuilder builder, [NotNull] DatabaseTable table)
        {
            Check.NotNull(builder, nameof(builder));
            Check.NotNull(table, nameof(table));

            var primaryKey = table.PrimaryKey;

            if (primaryKey == null)
            {
                _reporter.WriteWarning(DesignStrings.MissingPrimaryKey(table.DisplayName()));
                return(null);
            }

            var unmappedColumns = primaryKey.Columns
                                  .Where(c => _unmappedColumns.Contains(c))
                                  .Select(c => c.Name)
                                  .ToList();

            if (unmappedColumns.Any())
            {
                _reporter.WriteWarning(
                    DesignStrings.PrimaryKeyErrorPropertyNotFound(
                        table.DisplayName(),
                        string.Join(CultureInfo.CurrentCulture.TextInfo.ListSeparator, unmappedColumns)));
                return(null);
            }

            var keyBuilder = builder.HasKey(primaryKey.Columns.Select(GetPropertyName).ToArray());

            if (primaryKey.Columns.Count == 1 &&
                primaryKey.Columns[0].ValueGenerated == null &&
                primaryKey.Columns[0].DefaultValueSql == null)
            {
                var property = builder.Metadata.FindProperty(GetPropertyName(primaryKey.Columns[0]))?.AsProperty();
                if (property != null)
                {
                    var conventionalValueGenerated = new RelationalValueGeneratorConvention().GetValueGenerated(property);
                    if (conventionalValueGenerated == ValueGenerated.OnAdd)
                    {
                        property.ValueGenerated = ValueGenerated.Never;
                    }
                }
            }

            keyBuilder.Metadata.AddAnnotations(primaryKey.GetAnnotations());

            return(keyBuilder);
        }
Ejemplo n.º 4
0
        public void Composite_foreign_key()

        {
            var ida = new DatabaseColumn {
                Name = "Id_A", StoreType = "long"
            };
            var idb = new DatabaseColumn {
                Name = "Id_B", StoreType = "long"
            };
            var parentTable = new DatabaseTable
            {
                Name    = "Parent",
                Columns =
                {
                    ida,
                    idb
                },
                PrimaryKey = new DatabasePrimaryKey
                {
                    Columns = { ida, idb }
                }
            };
            var childrenTable = new DatabaseTable
            {
                Name    = "Children",
                Columns =
                {
                    IdColumn,
                    new DatabaseColumn {
                        Name = "ParentId_A",StoreType                 = "long"
                    },
                    new DatabaseColumn {
                        Name = "ParentId_B",StoreType                 = "long"
                    }
                },
                PrimaryKey = IdPrimaryKey
            };

            childrenTable.ForeignKeys.Add(
                new DatabaseForeignKey
            {
                Table          = childrenTable,
                PrincipalTable = parentTable,
                OnDelete       = ReferentialAction.SetNull,
                Columns        =
                {
                    childrenTable.Columns.ElementAt(1),
                    childrenTable.Columns.ElementAt(2)
                },
                PrincipalColumns =
                {
                    parentTable.Columns.ElementAt(0),
                    parentTable.Columns.ElementAt(1)
                }
            });

            var model = _factory.Create(new DatabaseModel {
                Tables = { parentTable, childrenTable }
            });

            var parent = (EntityType)model.FindEntityType("Parent");

            var children = (EntityType)model.FindEntityType("Children");

            Assert.NotEmpty(parent.GetReferencingForeignKeys());

            var fk = Assert.Single(children.GetForeignKeys());

            Assert.False(fk.IsUnique);
            Assert.Equal(DeleteBehavior.SetNull, fk.DeleteBehavior);

            var principalKey = fk.PrincipalKey;

            Assert.Equal("Parent", principalKey.DeclaringEntityType.Name);
            Assert.Equal("IdA", principalKey.Properties[0].Name);
            Assert.Equal("IdB", principalKey.Properties[1].Name);
        }
Ejemplo n.º 5
0
        public static void GenerateControllerApi(DatabaseTable table, string BusinessLayerRootPath)
        {
            string forderEntity = BusinessLayerRootPath + Path.DirectorySeparatorChar + "ControllerApi\\";

            if (!Directory.Exists(forderEntity))
            {
                Directory.CreateDirectory(forderEntity);
            }

            string file             = forderEntity + table.ClassName + "Controller.cs";
            string className        = table.ClassName;
            bool   isHasDeleteFidle = false;

            foreach (var column in table.Columns)
            {
                if (column.PropertyName == "IsDeleted")
                {
                    isHasDeleteFidle = true;
                }
            }

            #region Lấy thông tin Entity trong bảng hiện tại (Lấy comment và custom method)
            Dictionary <string, string> dicComment = null;
            Dictionary <string, string> dicFields  = null;
            string customMethodString = "";
            string fileCs             = ConfigGlobal.SettingConfig.Setting_FoudationLink + "\\ControllerApi\\" + className + "Controller.cs";
            if (!string.IsNullOrEmpty(ConfigGlobal.SettingConfig.Setting_FoudationLink) && ConfigGlobal.SettingConfig.Setting_CheckGenByForder)
            {
                if (File.Exists(fileCs))
                {
                    using (StreamReader streamReader = new StreamReader(fileCs))
                    {
                        string text = streamReader.ReadToEnd();
                        streamReader.Close();
                        dicFields = FindFieldInEntity(text, out dicComment, out customMethodString);
                    }

                    //var streamReader = new StreamReader(fileCs);
                    //string text = streamReader.ReadToEnd();
                    //streamReader.Close();
                    //dicFields = FindFieldInEntity(text, out dicComment, out customMethodString);
                }
            }
            #endregion

            var stringBuild = new StringBuilder();
            {
                #region Header
                stringBuild.AppendLine("using System;");
                stringBuild.AppendLine("using System.Net;");
                stringBuild.AppendLine("using System.Collections.Generic;");
                stringBuild.AppendLine("using System.Linq;");
                stringBuild.AppendLine("using System.Threading.Tasks;");
                stringBuild.AppendLine("using System.Web.Http;");
                stringBuild.AppendLine("using Nexus.Common.Enum;");
                stringBuild.AppendLine("using System.Web.Http.Cors;");
                stringBuild.AppendLine("using Nexus.DatabaseDAL.Common;");
                stringBuild.AppendLine("using Nexus.Entity;");
                stringBuild.AppendLine("using Nexus.Entity.Entities;");
                stringBuild.AppendLine("using Nexus.Memory;");
                stringBuild.AppendLine("using Nexus.Models;");
                stringBuild.AppendLine("using Nexus.Utils;");

                stringBuild.AppendLine("namespace Nexus.Controllers");
                stringBuild.AppendLine("{");
                stringBuild.AppendLine("\tpublic class " + className + "Controller" + ": ApiController");
                stringBuild.AppendFormat("\t{{");
                #endregion

                stringBuild.AppendLine("");

                #region get all
                stringBuild.AppendLine("\t\t[EnableCors(origins: \"*\", headers: \"*\", methods: \"*\")]");
                stringBuild.AppendLine("\t\tpublic async Task<IHttpActionResult> Get()");
                stringBuild.AppendLine("\t\t{");
                stringBuild.AppendLine("\t\t\ttry");
                stringBuild.AppendLine("\t\t\t{");
                stringBuild.AppendLine("\t\t\t\t#region token");
                stringBuild.AppendLine("\t\t\t\tvar header = Request.Headers;");
                stringBuild.AppendLine("\t\t\t\tif (header.Authorization == null)");
                stringBuild.AppendLine("\t\t\t\t{");
                stringBuild.AppendLine("\t\t\t\t\treturn StatusCode(HttpStatusCode.Unauthorized);");
                stringBuild.AppendLine("\t\t\t\t}");
                stringBuild.AppendLine("\t\t\t\tvar token = header.Authorization.Parameter;");
                stringBuild.AppendLine("\t\t\t\tEmployee employee;");
                stringBuild.AppendLine("\t\t\t\tif (string.IsNullOrWhiteSpace(token) || !TokenManager.ValidateToken(token, out employee))");
                stringBuild.AppendLine("\t\t\t\t{");
                stringBuild.AppendLine("\t\t\t\t\treturn StatusCode(HttpStatusCode.Unauthorized);");
                stringBuild.AppendLine("\t\t\t\t}");
                stringBuild.AppendLine("\t\t\t\t#endregion");
                stringBuild.AppendLine($"\t\t\t\tvar lstData = MemoryInfo.GetAll{className}();");
                if (isHasDeleteFidle)
                {
                    stringBuild.AppendLine("\t\t\t\tif (lstData != null)");
                    stringBuild.AppendLine("\t\t\t\t\tlstData = lstData.Where(x => x.IsDeleted != null && x.IsDeleted != 1).ToList();");
                }
                stringBuild.AppendLine("\t\t\t\tvar res = new RequestErrorCode(true, null, null);");
                stringBuild.AppendLine("\t\t\t\tres.ListDataResult.AddRange(lstData);");
                stringBuild.AppendLine("\t\t\t\treturn Ok(res);");
                stringBuild.AppendLine("\t\t\t}");
                stringBuild.AppendLine("\t\t\tcatch (Exception ex)");
                stringBuild.AppendLine("\t\t\t{");
                stringBuild.AppendLine("\t\t\t\tLogger.Write(ex.ToString());");
                stringBuild.AppendLine("\t\t\t}");
                stringBuild.AppendLine("\t\t\treturn BadRequest(\"Unknow\");");
                stringBuild.AppendLine("\t\t}");
                #endregion

                stringBuild.AppendLine("");
                #region get by id
                stringBuild.AppendLine("\t\t[EnableCors(origins: \"*\", headers: \"*\", methods: \"*\")]");
                stringBuild.AppendLine("\t\tpublic async Task<IHttpActionResult> Get(int id)");
                stringBuild.AppendLine("\t\t{");
                stringBuild.AppendLine("\t\t\ttry");
                stringBuild.AppendLine("\t\t\t{");
                stringBuild.AppendLine("\t\t\t\t#region token");
                stringBuild.AppendLine("\t\t\t\tvar header = Request.Headers;");
                stringBuild.AppendLine("\t\t\t\tif (header.Authorization == null)");
                stringBuild.AppendLine("\t\t\t\t{");
                stringBuild.AppendLine("\t\t\t\t\treturn StatusCode(HttpStatusCode.Unauthorized);");
                stringBuild.AppendLine("\t\t\t\t}");
                stringBuild.AppendLine("\t\t\t\tvar token = header.Authorization.Parameter;");
                stringBuild.AppendLine("\t\t\t\tEmployee employee;");
                stringBuild.AppendLine("\t\t\t\tif (string.IsNullOrWhiteSpace(token) || !TokenManager.ValidateToken(token, out employee))");
                stringBuild.AppendLine("\t\t\t\t{");
                stringBuild.AppendLine("\t\t\t\t\treturn StatusCode(HttpStatusCode.Unauthorized);");
                stringBuild.AppendLine("\t\t\t\t}");
                stringBuild.AppendLine("\t\t\t\t#endregion");
                stringBuild.AppendLine($"\t\t\t\tvar data = MemoryInfo.Get{className}(id);");
                if (isHasDeleteFidle)
                {
                    stringBuild.AppendLine("\t\t\t\tif (data != null && data.IsDeleted == 1)");
                    stringBuild.AppendLine("\t\t\t\t\tdata = null;");
                }
                stringBuild.AppendLine("\t\t\t\tvar res = new RequestErrorCode(true, null, null);");
                stringBuild.AppendLine("\t\t\t\tres.DataResult = data;");
                stringBuild.AppendLine("\t\t\t\treturn Ok(res);");
                stringBuild.AppendLine("\t\t\t}");
                stringBuild.AppendLine("\t\t\tcatch (Exception ex)");
                stringBuild.AppendLine("\t\t\t{");
                stringBuild.AppendLine("\t\t\t\tLogger.Write(ex.ToString());");
                stringBuild.AppendLine("\t\t\t}");
                stringBuild.AppendLine("\t\t\treturn BadRequest(\"Unknow\");");
                stringBuild.AppendLine("\t\t}");


                #endregion

                stringBuild.AppendLine("");
                #region Post
                stringBuild.AppendLine("\t\t[EnableCors(origins: \"*\", headers: \"*\", methods: \"*\")]");
                stringBuild.AppendLine($"\t\tpublic async Task<IHttpActionResult> Post([FromBody]{table.ClassName} req)");
                stringBuild.AppendLine("\t\t{");
                stringBuild.AppendLine("\t\t\ttry");
                stringBuild.AppendLine("\t\t\t{");
                stringBuild.AppendLine("\t\t\t\tstring errorMessage = \"UnknowError\";");
                stringBuild.AppendLine("\t\t\t\tstring errorCode = ErrorCodeEnum.UnknownError.ToString();");
                stringBuild.AppendLine("\t\t\t\t#region token");
                stringBuild.AppendLine("\t\t\t\tvar header = Request.Headers;");
                stringBuild.AppendLine("\t\t\t\tif (header.Authorization == null)");
                stringBuild.AppendLine("\t\t\t\t{");
                stringBuild.AppendLine("\t\t\t\t\treturn StatusCode(HttpStatusCode.Unauthorized);");
                stringBuild.AppendLine("\t\t\t\t}");
                stringBuild.AppendLine("\t\t\t\tvar token = header.Authorization.Parameter;");
                stringBuild.AppendLine("\t\t\t\tEmployee employee;");
                stringBuild.AppendLine("\t\t\t\tif (string.IsNullOrWhiteSpace(token) || !TokenManager.ValidateToken(token, out employee))");
                stringBuild.AppendLine("\t\t\t\t{");
                stringBuild.AppendLine("\t\t\t\t\treturn StatusCode(HttpStatusCode.Unauthorized);");
                stringBuild.AppendLine("\t\t\t\t}");
                stringBuild.AppendLine("\t\t\t\t#endregion");
                stringBuild.AppendLine("\t\t\t\tif (!Operator.IsAdmin(employee))");
                stringBuild.AppendLine("\t\t\t\t\treturn Ok(new RequestErrorCode(false, ErrorCodeEnum.Error_NotHavePermision.ToString(), \"Khong co quyen\"));");
                stringBuild.AppendLine("");
                stringBuild.AppendLine("\t\t\t\t#region Validate");
                stringBuild.AppendLine("\t\t\t\tif (!Validate(req, out errorCode, out errorMessage))");
                stringBuild.AppendLine("\t\t\t\t{");
                stringBuild.AppendLine("\t\t\t\t\treturn Ok(new RequestErrorCode(false, errorCode, errorMessage));");
                stringBuild.AppendLine("\t\t\t\t}");
                stringBuild.AppendLine("\t\t\t\t#endregion");
                stringBuild.AppendLine("");
                stringBuild.AppendLine("\t\t\t\t#region Tạo key");
                stringBuild.AppendLine("\t\t\t\tvar oldKey = Memory.Memory.GetMaxKey(req.GetName());");
                stringBuild.AppendLine("\t\t\t\tint newKey = oldKey + 1;");
                stringBuild.AppendLine("\t\t\t\t// set key");
                stringBuild.AppendLine("\t\t\t\treq.Id = newKey;");
                stringBuild.AppendLine("\t\t\t\t#endregion");
                stringBuild.AppendLine("");
                stringBuild.AppendLine("\t\t\t\t#region Process");
                stringBuild.AppendLine("\t\t\t\treq.CreatedAt = DateTime.Now;");
                stringBuild.AppendLine("\t\t\t\treq.CreatedBy = employee.Id;");
                if (isHasDeleteFidle)
                {
                    stringBuild.AppendLine("\t\t\t\treq.IsDeleted = 0;");
                }
                stringBuild.AppendLine("\t\t\t\tUpdateEntitySql updateEntitySql = new UpdateEntitySql();");
                stringBuild.AppendLine("\t\t\t\tvar lstCommand = new List<EntityCommand>();");
                stringBuild.AppendLine("\t\t\t\tlstCommand.Add(new EntityCommand { BaseEntity = new Entity.Entity(req), EntityAction = EntityAction.Insert });");
                stringBuild.AppendLine("\t\t\t\tbool isOkDone = updateEntitySql.UpdateDefault(lstCommand);");
                stringBuild.AppendLine("\t\t\t\tif (!isOkDone)");
                stringBuild.AppendLine("\t\t\t\t{");
                stringBuild.AppendLine("\t\t\t\t\treturn Ok(new RequestErrorCode(false, errorCode, errorMessage));");
                stringBuild.AppendLine("\t\t\t\t}");
                stringBuild.AppendLine("\t\t\t\t#endregion");
                stringBuild.AppendLine("\t\t\t\t// update memory");
                stringBuild.AppendLine("\t\t\t\tMemorySet.UpdateAndInsertEntity(req);");
                stringBuild.AppendLine("\t\t\t\tvar result = new RequestErrorCode(true);");
                stringBuild.AppendLine("\t\t\t\tresult.DataResult = req;");
                stringBuild.AppendLine("\t\t\t\treturn Ok(result);");
                stringBuild.AppendLine("\t\t\t}");
                stringBuild.AppendLine("\t\t\tcatch (Exception ex)");
                stringBuild.AppendLine("\t\t\t{");
                stringBuild.AppendLine("\t\t\t\tLogger.Write(ex.ToString());");
                stringBuild.AppendLine("\t\t\t}");
                stringBuild.AppendLine("\t\t\treturn BadRequest(\"Unknow\");");
                stringBuild.AppendLine("\t\t}");
                #endregion

                stringBuild.AppendLine("");
                #region put
                stringBuild.AppendLine("\t\t[EnableCors(origins: \"*\", headers: \"*\", methods: \"*\")]");
                stringBuild.AppendLine($"\t\tpublic async Task<IHttpActionResult> Put(int id,[FromBody]{table.ClassName} req)");
                stringBuild.AppendLine("\t\t{");
                stringBuild.AppendLine("\t\t\ttry");
                stringBuild.AppendLine("\t\t\t{");
                stringBuild.AppendLine("\t\t\t\tstring errorMessage = \"UnknowError\";");
                stringBuild.AppendLine("\t\t\t\tstring errorCode = ErrorCodeEnum.UnknownError.ToString();");
                stringBuild.AppendLine("\t\t\t\t#region token");
                stringBuild.AppendLine("\t\t\t\tvar header = Request.Headers;");
                stringBuild.AppendLine("\t\t\t\tif (header.Authorization == null)");
                stringBuild.AppendLine("\t\t\t\t{");
                stringBuild.AppendLine("\t\t\t\t\treturn StatusCode(HttpStatusCode.Unauthorized);");
                stringBuild.AppendLine("\t\t\t\t}");
                stringBuild.AppendLine("\t\t\t\tvar token = header.Authorization.Parameter;");
                stringBuild.AppendLine("\t\t\t\tEmployee employee;");
                stringBuild.AppendLine("\t\t\t\tif (string.IsNullOrWhiteSpace(token) || !TokenManager.ValidateToken(token, out employee))");
                stringBuild.AppendLine("\t\t\t\t{");
                stringBuild.AppendLine("\t\t\t\t\treturn StatusCode(HttpStatusCode.Unauthorized);");
                stringBuild.AppendLine("\t\t\t\t}");
                stringBuild.AppendLine("\t\t\t\t#endregion");
                stringBuild.AppendLine("\t\t\t\tif (!Operator.IsAdmin(employee))");
                stringBuild.AppendLine("\t\t\t\t\treturn Ok(new RequestErrorCode(false, ErrorCodeEnum.Error_NotHavePermision.ToString(), \"Khong co quyen\"));");
                stringBuild.AppendLine("");
                stringBuild.AppendLine("\t\t\t\t#region Validate");
                stringBuild.AppendLine("\t\t\t\tif (!ValidateUpdate(req, out errorCode, out errorMessage))");
                stringBuild.AppendLine("\t\t\t\t{");
                stringBuild.AppendLine("\t\t\t\t\treturn Ok(new RequestErrorCode(false, errorCode, errorMessage));");
                stringBuild.AppendLine("\t\t\t\t}");
                stringBuild.AppendLine("\t\t\t\t#endregion");
                stringBuild.AppendLine("");
                stringBuild.AppendLine("\t\t\t\t#region Check exist");
                stringBuild.AppendLine($"\t\t\t\tvar obj = MemoryInfo.Get{table.ClassName}(id);");
                stringBuild.AppendLine("\t\t\t\tif (obj == null)");
                stringBuild.AppendLine("\t\t\t\t{");
                stringBuild.AppendLine("\t\t\t\t\treturn Ok(new RequestErrorCode(false, ErrorCodeEnum.DataNotExist.ToString(), \"Khong ton tai\"));");
                stringBuild.AppendLine("\t\t\t\t}");
                stringBuild.AppendLine("\t\t\t\t#endregion");
                stringBuild.AppendLine("\t\t\t\treq.Id = obj.Id; // gan lai id de update");
                stringBuild.AppendLine("\t\t\t\t#region Process");
                stringBuild.AppendLine("\t\t\t\treq.UpdatedAt = DateTime.Now;");
                stringBuild.AppendLine("\t\t\t\treq.UpdatedBy = employee.Id;");
                stringBuild.AppendLine("\t\t\t\tUpdateEntitySql updateEntitySql = new UpdateEntitySql();");
                stringBuild.AppendLine("\t\t\t\tvar lstCommand = new List<EntityCommand>();");
                stringBuild.AppendLine("\t\t\t\tlstCommand.Add(new EntityCommand { BaseEntity = new Entity.Entity(req), EntityAction = EntityAction.Update });");
                stringBuild.AppendLine("\t\t\t\tbool isOkDone = updateEntitySql.UpdateDefault(lstCommand);");
                stringBuild.AppendLine("\t\t\t\tif (!isOkDone)");
                stringBuild.AppendLine("\t\t\t\t{");
                stringBuild.AppendLine("\t\t\t\t\treturn Ok(new RequestErrorCode(false, errorCode, errorMessage));");
                stringBuild.AppendLine("\t\t\t\t}");
                stringBuild.AppendLine("\t\t\t\t#endregion");
                stringBuild.AppendLine("\t\t\t\t// update memory");
                stringBuild.AppendLine("\t\t\t\tMemorySet.UpdateAndInsertEntity(req);");
                stringBuild.AppendLine("\t\t\t\tvar result = new RequestErrorCode(true);");
                stringBuild.AppendLine("\t\t\t\tresult.DataResult = req;");
                stringBuild.AppendLine("\t\t\t\treturn Ok(result);");
                stringBuild.AppendLine("\t\t\t}");
                stringBuild.AppendLine("\t\t\tcatch (Exception ex)");
                stringBuild.AppendLine("\t\t\t{");
                stringBuild.AppendLine("\t\t\t\tLogger.Write(ex.ToString());");
                stringBuild.AppendLine("\t\t\t}");
                stringBuild.AppendLine("\t\t\treturn BadRequest(\"Unknow\");");
                stringBuild.AppendLine("\t\t}");
                #endregion

                stringBuild.AppendLine("");
                #region delete
                stringBuild.AppendLine("\t\t[EnableCors(origins: \"*\", headers: \"*\", methods: \"*\")]");
                stringBuild.AppendLine("\t\tpublic async Task<IHttpActionResult> Delete(int id)");
                stringBuild.AppendLine("\t\t{");
                stringBuild.AppendLine("\t\t\ttry");
                stringBuild.AppendLine("\t\t\t{");
                stringBuild.AppendLine("\t\t\t\tstring errorMessage = \"UnknowError\";");
                stringBuild.AppendLine("\t\t\t\tstring errorCode = ErrorCodeEnum.UnknownError.ToString();");
                stringBuild.AppendLine("\t\t\t\t#region token");
                stringBuild.AppendLine("\t\t\t\tvar header = Request.Headers;");
                stringBuild.AppendLine("\t\t\t\tif (header.Authorization == null)");
                stringBuild.AppendLine("\t\t\t\t{");
                stringBuild.AppendLine("\t\t\t\t\treturn StatusCode(HttpStatusCode.Unauthorized);");
                stringBuild.AppendLine("\t\t\t\t}");
                stringBuild.AppendLine("\t\t\t\tvar token = header.Authorization.Parameter;");
                stringBuild.AppendLine("\t\t\t\tEmployee employee;");
                stringBuild.AppendLine("\t\t\t\tif (string.IsNullOrWhiteSpace(token) || !TokenManager.ValidateToken(token, out employee))");
                stringBuild.AppendLine("\t\t\t\t{");
                stringBuild.AppendLine("\t\t\t\t\treturn StatusCode(HttpStatusCode.Unauthorized);");
                stringBuild.AppendLine("\t\t\t\t}");
                stringBuild.AppendLine("\t\t\t\t#endregion");
                stringBuild.AppendLine("\t\t\t\tif (!Operator.IsAdmin(employee))");
                stringBuild.AppendLine("\t\t\t\t\treturn Ok(new RequestErrorCode(false, ErrorCodeEnum.Error_NotHavePermision.ToString(), \"Khong co quyen\"));");
                stringBuild.AppendLine("");
                stringBuild.AppendLine("\t\t\t\t#region Check exist");
                stringBuild.AppendLine($"\t\t\t\tvar obj = MemoryInfo.Get{table.ClassName}(id);");
                stringBuild.AppendLine("\t\t\t\tif (obj == null)");
                stringBuild.AppendLine("\t\t\t\t{");
                stringBuild.AppendLine("\t\t\t\t\treturn Ok(new RequestErrorCode(false, ErrorCodeEnum.DataNotExist.ToString(), \"Khong ton tai\"));");
                stringBuild.AppendLine("\t\t\t\t}");
                stringBuild.AppendLine("\t\t\t\t#endregion");
                stringBuild.AppendLine("");
                stringBuild.AppendLine("\t\t\t\tbool isHasDeleteProperties = obj.GetType().GetProperty(\"IsDeleted\") != null;");
                stringBuild.AppendLine("\t\t\t\tif (!isHasDeleteProperties)");
                stringBuild.AppendLine("\t\t\t\t{");
                stringBuild.AppendLine("\t\t\t\t\treturn Ok(new RequestErrorCode(false, ErrorCodeEnum.DataNotExist.ToString(), \"Khong ton tai\"));");
                stringBuild.AppendLine("\t\t\t\t}");
                if (isHasDeleteFidle)
                {
                    stringBuild.AppendLine("\t\t\t\tobj.IsDeleted = 1;");
                }
//                stringBuild.AppendLine("\t\t\t\t// check role ");
//                stringBuild.AppendLine("\t\t\t\tif (!Operator.HasPermision(userInfo.IdUserLogin, RoleDefinitionEnum.None))");
//                stringBuild.AppendLine("\t\t\t\t{");
//                stringBuild.AppendLine("\t\t\t\treturn Ok(new RequestErrorCode(false, ErrorCodeEnum.Error_NotHavePermision.ToString(), \"Khong co quyen xoa\"));");
//                stringBuild.AppendLine("\t\t\t\t}");
                stringBuild.AppendLine("");
                stringBuild.AppendLine("\t\t\t\t#region Process");
                stringBuild.AppendLine("\t\t\t\tUpdateEntitySql updateEntitySql = new UpdateEntitySql();");
                stringBuild.AppendLine("\t\t\t\tvar lstCommand = new List<EntityCommand>();");
                stringBuild.AppendLine("\t\t\t\tlstCommand.Add(new EntityCommand { BaseEntity = new Entity.Entity(obj), EntityAction = EntityAction.Update });");
                stringBuild.AppendLine("\t\t\t\tbool isOkDone = updateEntitySql.UpdateDefault(lstCommand);");
                stringBuild.AppendLine("\t\t\t\tif (!isOkDone)");
                stringBuild.AppendLine("\t\t\t\t{");
                stringBuild.AppendLine("\t\t\t\t\treturn Ok(new RequestErrorCode(false, errorCode, errorMessage));");
                stringBuild.AppendLine("\t\t\t\t}");
                stringBuild.AppendLine("\t\t\t\t#endregion");
                stringBuild.AppendLine("\t\t\t\t// update memory");
                stringBuild.AppendLine("\t\t\t\tMemorySet.UpdateAndInsertEntity(obj);");
                stringBuild.AppendLine("\t\t\t\tvar result = new RequestErrorCode(true);");
                stringBuild.AppendLine("\t\t\t\tresult.DataResult = obj;");
                stringBuild.AppendLine("\t\t\t\treturn Ok(result);");
                stringBuild.AppendLine("\t\t\t}");
                stringBuild.AppendLine("\t\t\tcatch (Exception ex)");
                stringBuild.AppendLine("\t\t\t{");
                stringBuild.AppendLine("\t\t\t\tLogger.Write(ex.ToString());");
                stringBuild.AppendLine("\t\t\t}");
                stringBuild.AppendLine("\t\t\treturn BadRequest(\"Unknow\");");
                stringBuild.AppendLine("\t\t}");
                #endregion

                stringBuild.AppendLine("");
                #region Custom Function
                stringBuild.AppendLine("\t\t#region Validation");
                stringBuild.AppendLine($"\t\tprivate bool Validate({table.ClassName} obj, out string errorCode, out string errorMess)");
                stringBuild.AppendLine("\t\t{");
                stringBuild.AppendLine("\t\t\terrorCode = null;");
                stringBuild.AppendLine("\t\t\terrorMess = null;");
                stringBuild.AppendLine("\t\t\ttry");
                stringBuild.AppendLine("\t\t\t{");
                stringBuild.AppendLine("");
                stringBuild.AppendLine("\t\t\t}");
                stringBuild.AppendLine("\t\t\tcatch (Exception ex)");
                stringBuild.AppendLine("\t\t\t{");
                stringBuild.AppendLine("\t\t\t\tLogger.Write(ex.ToString());");
                stringBuild.AppendLine("\t\t\t\tthrow;");
                stringBuild.AppendLine("\t\t\t}");
                stringBuild.AppendLine("\t\t\treturn true;");
                stringBuild.AppendLine("\t\t}");
                stringBuild.AppendLine("");

                stringBuild.AppendLine($"\t\tprivate bool ValidateUpdate({table.ClassName} obj, out string errorCode, out string errorMess)");
                stringBuild.AppendLine("\t\t{");
                stringBuild.AppendLine("\t\t\terrorCode = null;");
                stringBuild.AppendLine("\t\t\terrorMess = null;");
                stringBuild.AppendLine("\t\t\ttry");
                stringBuild.AppendLine("\t\t\t{");
                stringBuild.AppendLine("");
                stringBuild.AppendLine("\t\t\t}");
                stringBuild.AppendLine("\t\t\tcatch (Exception ex)");
                stringBuild.AppendLine("\t\t\t{");
                stringBuild.AppendLine("\t\t\t\tLogger.Write(ex.ToString());");
                stringBuild.AppendLine("\t\t\t\tthrow;");
                stringBuild.AppendLine("\t\t\t}");
                stringBuild.AppendLine("\t\t\treturn true;");
                stringBuild.AppendLine("\t\t}");
                stringBuild.AppendLine("\t\t#endregion");
                stringBuild.AppendLine("");


                #endregion

                stringBuild.AppendLine("");
                stringBuild.AppendLine("\t}"); // END OF CLASS
                stringBuild.AppendLine("}");   // END OF NAME SPACE
            }

            using (StreamWriter sw = new StreamWriter(file))
            {
                sw.WriteLine(stringBuild.ToString());
                sw.Close();
            }

            if (File.Exists(fileCs) && ConfigGlobal.SettingConfig.Setting_CheckGenByForder)
            {
                File.Delete(fileCs);
                using (var sw = new StreamWriter(fileCs))
                {
                    sw.WriteLine(stringBuild.ToString());
                    sw.Close();
                }
            }
        }
        public static List <string> GenerateListOfRandomNumbericFromInterval(int numberOfRowsToGenerate, DatabaseColumn column, DatabaseTable table, Dictionary <string, List <string> > valuesGeneratedForDatabase)
        {
            string min = column.MinNumber;
            string max = column.MaxNumber;

            Decimal minValue;
            Decimal maxValue;

            try
            {
                minValue = Decimal.Parse(min);
            }
            catch (Exception)
            {
                throw new GenerationException($"Could not parse {min}.");
            }

            try
            {
                maxValue = Decimal.Parse(max);
            }
            catch (Exception)
            {
                throw new GenerationException($"Could not parse {max}.");
            }

            if (minValue > maxValue)
            {
                throw new GenerationException($"Minimum value cannot be greater then maximum value");
            }

            minValue *= 100;
            maxValue *= 100;

            int intMinValue = Decimal.ToInt32(minValue);
            int intMaxValue = Decimal.ToInt32(maxValue);

            Random random = new Random();

            List <string> listOfNumerics = new List <string>(numberOfRowsToGenerate);

            List <string> tempListOfOtherNumerics = new List <string>();

            // List of dates, values generated here will be bigger
            List <Decimal> otherNumerics = new List <Decimal>();

            if (valuesGeneratedForDatabase.TryGetValue($"{table.Name}:{column.RelatedColumn}", out tempListOfOtherNumerics))
            {
                foreach (string numericString in tempListOfOtherNumerics)
                {
                    // substring to remove quotes
                    otherNumerics.Add(Decimal.Parse(numericString));
                }
            }

            for (int i = 0; i < numberOfRowsToGenerate; i++)
            {
                if (otherNumerics.Count() == 0)
                {
                    int randomInt = random.Next(intMinValue, intMaxValue + 1);
                    listOfNumerics.Add(ParseIntToNumericStringDivideBy100(randomInt));
                }
                else
                {
                    Decimal otherNumeric = otherNumerics[i];
                    otherNumeric *= 100;
                    int    otherValue = Decimal.ToInt32(otherNumeric);
                    string relation   = column.Relation;
                    string value;
                    switch (relation)
                    {
                    case GenerationConstants.LESSER_THAN:
                        value = ParseIntToNumericStringDivideBy100(IntegerGeneratorsClass.LesserThan(otherValue, intMinValue, intMaxValue));
                        break;

                    case GenerationConstants.LESSER_THAN_OR_EQUAL_TO:
                        value = ParseIntToNumericStringDivideBy100(IntegerGeneratorsClass.LesserThanOrEqual(otherValue, intMinValue, intMaxValue));
                        break;

                    case GenerationConstants.EQUAL_TO:
                        value = ParseIntToNumericStringDivideBy100(IntegerGeneratorsClass.Equal(otherValue, intMinValue, intMaxValue));
                        break;

                    case GenerationConstants.NOT_EQUAL_TO:
                        value = ParseIntToNumericStringDivideBy100(IntegerGeneratorsClass.NotEqual(otherValue, intMinValue, intMaxValue));
                        break;

                    case GenerationConstants.GREATER_THAN_OR_EQUAL_TO:
                        value = ParseIntToNumericStringDivideBy100(IntegerGeneratorsClass.GreaterThanOrEqual(otherValue, intMinValue, intMaxValue));
                        break;

                    case GenerationConstants.GREATER_THAN:
                        value = ParseIntToNumericStringDivideBy100(IntegerGeneratorsClass.GreaterThan(otherValue, intMinValue, intMaxValue));
                        break;

                    default:
                        throw new GenerationException($"{relation} is not a supported column relation");
                    }
                    listOfNumerics.Add(value);
                }
            }
            return(listOfNumerics);
        }
Ejemplo n.º 7
0
 private DatabaseColumn FindColumn(DatabaseTable table, string columnName)
 => table.Columns.SingleOrDefault(c => string.Equals(c.Name, columnName, StringComparison.Ordinal)) ??
 table.Columns.SingleOrDefault(c => string.Equals(c.Name, columnName, StringComparison.OrdinalIgnoreCase));
        public async Task <List <BaseAltiumDbEntity> > GetData(StreamReader streamReader, DatabaseTable table)
        {
            List <BaseAltiumDbEntity> data = new List <BaseAltiumDbEntity>();

            table.TableColumns = table.TableColumns.OrderBy(x => x.DatabaseOrder).ToList();
            while (true)
            {
                var line = await streamReader.ReadLineAsync();

                if (line == null)
                {
                    break;
                }
                data.Add(new BaseAltiumDbEntity());
                var values = line.Split(',');
                for (int i = 1; i < table.TableColumns.Count; i++)
                {
                    data[^ 1][table.TableColumns[i].ColumnName] = values[i - 1];
Ejemplo n.º 9
0
        public DatabaseTable Execute(CancellationToken ct, string tableName)
        {
            if (ct.IsCancellationRequested)
            {
                return(null);
            }

            var tables = _readerAdapter.Tables(tableName);

            if (tables.Count == 0)
            {
                return(null);
            }
            if (string.IsNullOrEmpty(_readerAdapter.Parameters.Owner))
            {
                var owner = tables[0].SchemaOwner;
                Trace.WriteLine("Using first schema " + owner);
                _readerAdapter.Parameters.Owner = owner;
            }
            var columns          = _readerAdapter.Columns(tableName);
            var identityColumns  = _readerAdapter.IdentityColumns(tableName);
            var checkConstraints = _readerAdapter.CheckConstraints(tableName);
            var pks        = _readerAdapter.PrimaryKeys(tableName);
            var uks        = _readerAdapter.UniqueKeys(tableName);
            var fks        = _readerAdapter.ForeignKeys(tableName);
            var dfs        = _readerAdapter.DefaultConstraints(tableName);
            var triggers   = _readerAdapter.Triggers(tableName);
            var tableDescs = _readerAdapter.TableDescriptions(tableName);
            var colDescs   = _readerAdapter.ColumnDescriptions(tableName);
            var computed   = _readerAdapter.ComputedColumns(tableName);

            var indexes    = MergeIndexColumns(_readerAdapter.Indexes(tableName), _readerAdapter.IndexColumns(tableName));
            var statistics = _readerAdapter.Statistics(tableName);

            if (columns.Count == 0)
            {
                return(null);
            }

            var table = new DatabaseTable
            {
                SchemaOwner = _readerAdapter.Parameters.Owner,
                Name        = tableName
            };

            table.Columns.AddRange(columns);
            UpdateCheckConstraints(table, checkConstraints);
            UpdateIdentities(table.Columns, identityColumns);
            UpdateComputed(table.Columns, computed);
            UpdateConstraints(table, pks, ConstraintType.PrimaryKey);
            UpdateConstraints(table, uks, ConstraintType.UniqueKey);
            UpdateConstraints(table, fks, ConstraintType.ForeignKey);
            UpdateConstraints(table, dfs, ConstraintType.Default);
            UpdateIndexes(table, indexes);
            UpdateStatistics(table, statistics);
            UpdateTriggers(table, triggers);
            UpdateTableDescriptions(table, tableDescs);
            UpdateColumnDescriptions(table, colDescs);
            _readerAdapter.PostProcessing(table);
            return(table);
        }
        /// <summary>
        /// generate the primary key of the database table
        /// </summary>
        /// <param name="table">table</param>
        private void GenerateBusinessObjectPrimaryKey(DatabaseTable table)
        {
            string file      = BusinessLayerRootPath + Path.DirectorySeparatorChar + table.ClassName + "Keys.cs";
            string className = table.ClassName + "Keys";

            using (StreamWriter sw = new StreamWriter(file))
            {
                sw.WriteLine("using System;");
                sw.WriteLine("using System.Collections.Generic;");
                sw.WriteLine("using System.Text;");

                sw.WriteLine("namespace " + TierGeneratorSettings.Instance.ProjectNameSpace + ".BusinessLayer");
                sw.WriteLine("{");
                sw.WriteLine("\tpublic class " + className);
                sw.WriteLine("\t{");

                sw.WriteLine("");
                #region Data Members

                sw.WriteLine("\t\t#region Data Members");
                sw.WriteLine("");

                foreach (DatabaseColumn column in table.Columns)
                {
                    if (column.IsPK)
                    {
                        sw.WriteLine("\t\t" + column.CSharpDataTypeName + " " + column.PrivateVariableName + ";");
                    }
                }

                sw.WriteLine("");
                sw.WriteLine("\t\t#endregion");

                #endregion

                sw.WriteLine("");
                #region Constructor

                string parameters = string.Empty;

                foreach (DatabaseColumn column in table.Columns)
                {
                    if (column.IsPK)
                    {
                        if (parameters.Length > 0)
                        {
                            parameters += ", ";
                        }

                        parameters += column.CSharpDataTypeName + " " + column.publicVariableName;
                    }
                }

                sw.WriteLine("\t\t#region Constructor");
                sw.WriteLine("");

                sw.WriteLine("\t\tpublic " + className + "(" + parameters + ")");
                sw.WriteLine("\t\t{");
                foreach (DatabaseColumn column in table.Columns)
                {
                    if (column.IsPK)
                    {
                        sw.WriteLine("\t\t\t " + column.PrivateVariableName + " = " + column.publicVariableName + "; ");
                    }
                }
                sw.WriteLine("\t\t}");

                sw.WriteLine("");
                sw.WriteLine("\t\t#endregion");

                #endregion

                sw.WriteLine("");
                #region Properties

                sw.WriteLine("\t\t#region Properties");
                sw.WriteLine("");

                foreach (DatabaseColumn column in table.Columns)
                {
                    if (column.IsPK)
                    {
                        sw.WriteLine("\t\tpublic " + column.CSharpDataTypeName + "  " + column.PropertyName);
                        sw.WriteLine("\t\t{");
                        sw.WriteLine("\t\t\t get { return " + column.PrivateVariableName + "; }");
                        sw.WriteLine("\t\t}");
                    }
                }

                sw.WriteLine("");
                sw.WriteLine("\t\t#endregion");

                #endregion

                sw.WriteLine("");
                sw.WriteLine("\t}"); // END OF CLASS
                sw.WriteLine("}");   // END OF NAME SPACE
            }
        }
Ejemplo n.º 11
0
 public AutoIncrementWriter(DatabaseTable table)
 {
     _table = table;
 }
        /// <summary>
        /// Method to generate Business Object
        /// </summary>
        /// <param name="table"></param>
        private void GenerateBusinessObject(DatabaseTable table)
        {
            string file      = BusinessLayerRootPath + Path.DirectorySeparatorChar + table.ClassName + ".cs";
            string className = table.ClassName;

            using (StreamWriter sw = new StreamWriter(file))
            {
                sw.WriteLine("using System;");
                sw.WriteLine("using System.Collections.Generic;");
                sw.WriteLine("using System.Text;");

                sw.WriteLine("namespace " + TierGeneratorSettings.Instance.ProjectNameSpace + ".BusinessLayer");
                sw.WriteLine("{");
                sw.WriteLine("\tpublic class " + className + ": BusinessObjectBase");
                sw.WriteLine("\t{");


                sw.WriteLine("");
                #region Enumeration For Column Name

                sw.WriteLine("\t\t#region InnerClass");
                sw.WriteLine("\t\tpublic enum " + className + "Fields");
                sw.WriteLine("\t\t{");
                for (int i = 0; i < table.Columns.Count; i++)
                {
                    DatabaseColumn column = table.Columns[i];
                    string         end    = ",";
                    if (i == table.Columns.Count - 1)
                    {
                        end = "";
                    }
                    sw.WriteLine("\t\t\t" + column.PropertyName + end);
                }

                sw.WriteLine("\t\t}");

                sw.WriteLine("\t\t#endregion");

                #endregion

                sw.WriteLine("");
                #region Data Members

                sw.WriteLine("\t\t#region Data Members");
                sw.WriteLine("");

                foreach (DatabaseColumn column in table.Columns)
                {
                    sw.WriteLine("\t\t\t" + column.CSharpDataTypeName + " " + column.PrivateVariableName + ";");
                }

                sw.WriteLine("");
                sw.WriteLine("\t\t#endregion");

                #endregion

                sw.WriteLine("");
                #region Properties

                sw.WriteLine("\t\t#region Properties");
                sw.WriteLine("");

                foreach (DatabaseColumn column in table.Columns)
                {
                    sw.WriteLine("\t\tpublic " + column.CSharpDataTypeName + "  " + column.PropertyName);
                    sw.WriteLine("\t\t{");
                    sw.WriteLine("\t\t\t get { return " + column.PrivateVariableName + "; }");
                    sw.WriteLine("\t\t\t set");
                    sw.WriteLine("\t\t\t {");
                    sw.WriteLine("\t\t\t\t if (" + column.PrivateVariableName + " != value)");
                    sw.WriteLine("\t\t\t\t {");
                    sw.WriteLine("\t\t\t\t\t" + column.PrivateVariableName + " = value;");
                    sw.WriteLine("\t\t\t\t\t PropertyHasChanged(\"" + column.PropertyName + "\");");
                    sw.WriteLine("\t\t\t\t }");
                    sw.WriteLine("\t\t\t }");
                    sw.WriteLine("\t\t}");
                    sw.WriteLine("");
                }

                sw.WriteLine("");
                sw.WriteLine("\t\t#endregion");

                #endregion

                sw.WriteLine("");
                #region Validation

                sw.WriteLine("\t\t#region Validation");
                sw.WriteLine("");

                sw.WriteLine("\t\tinternal override void AddValidationRules()");
                sw.WriteLine("\t\t{");

                foreach (DatabaseColumn column in table.Columns)
                {
                    if (!column.IsNull)
                    {
                        sw.WriteLine("\t\t\tValidationRules.AddRules(new Validation.ValidateRuleNotNull(\"" + column.PropertyName + "\", \"" + column.PropertyName + "\"));");
                    }

                    if ((column.CSharpDataTypeName.ToLower() == "string") && column.ColumnSize.HasValue)
                    {
                        sw.WriteLine("\t\t\tValidationRules.AddRules(new Validation.ValidateRuleStringMaxLength(\"" + column.PropertyName + "\", \"" + column.PropertyName + "\"," + column.ColumnSize.Value + "));");
                    }
                }
                sw.WriteLine("\t\t}");

                sw.WriteLine("");
                sw.WriteLine("\t\t#endregion");

                #endregion

                sw.WriteLine("");

                sw.WriteLine("\t}"); // END OF CLASS
                sw.WriteLine("}");   // END OF NAME SPACE
            }
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 更新线别。
        /// </summary>
        /// <param name="dsParams">包含线别数据的数据集对象。</param>
        /// <returns>包含执行结果的数据集对象。</returns>
        public DataSet UpdateLine(DataSet dsParams)
        {
            DataSet       dsReturn = new DataSet();
            DbConnection  dbconn   = null;
            DbTransaction dbtran   = null;
            string        lineCode = "";

            if (null != dsParams && dsParams.Tables.Contains(FMM_PRODUCTION_LINE_FIELDS.DATABASE_TABLE_NAME))
            {
                DataTable dtParams = dsParams.Tables[FMM_PRODUCTION_LINE_FIELDS.DATABASE_TABLE_NAME];
                for (int i = 0; i < dtParams.Rows.Count; i++)
                {
                    if (dtParams.Rows[i][COMMON_FIELDS.FIELD_COMMON_UPDATE_NAME].ToString() == FMM_PRODUCTION_LINE_FIELDS.FIELD_LINE_CODE)
                    {
                        lineCode = Convert.ToString(dtParams.Rows[i][COMMON_FIELDS.FIELD_COMMON_UPDATE_NEW_VALUE]);
                    }
                }
                //如果有修改线别代码,判断新的线别代码是否存在。
                if (!string.IsNullOrEmpty(lineCode))
                {
                    string strSql = @"SELECT COUNT(*) FROM FMM_PRODUCTION_LINE WHERE LINE_CODE='" + lineCode.PreventSQLInjection() + "'";
                    int    count  = Convert.ToInt32(db.ExecuteScalar(CommandType.Text, strSql));
                    if (count > 0)
                    {
                        FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, "${res:FanHai.Hemera.Modules.FMM.LineManageEngine.CodeAlreadyExist}");
                        return(dsReturn);
                    }
                }
                //生成更新SQL
                List <string> sqlCommandList = new List <string>();
                DatabaseTable.BuildUpdateSqlStatements(ref sqlCommandList,
                                                       new FMM_PRODUCTION_LINE_FIELDS(),
                                                       dsParams.Tables[FMM_PRODUCTION_LINE_FIELDS.DATABASE_TABLE_NAME],
                                                       new Dictionary <string, string>()
                {
                    { FMM_PRODUCTION_LINE_FIELDS.FIELD_EDIT_TIME, null },
                },
                                                       new List <string>()
                {
                    FMM_PRODUCTION_LINE_FIELDS.FIELD_PRODUCTION_LINE_KEY
                },
                                                       FMM_PRODUCTION_LINE_FIELDS.FIELD_PRODUCTION_LINE_KEY);
                if (sqlCommandList.Count > 0)
                {
                    dbconn = db.CreateConnection();
                    dbconn.Open();
                    //Create Transaction
                    dbtran = dbconn.BeginTransaction();
                    try
                    {
                        foreach (string sql in sqlCommandList)
                        {
                            db.ExecuteNonQuery(dbtran, CommandType.Text, sql);
                        }
                        dbtran.Commit();
                        FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, string.Empty);
                    }
                    catch (Exception ex)
                    {
                        dbtran.Rollback();
                        FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, ex.Message);
                        LogService.LogError("UpdateLine Error: " + ex.Message);
                    }
                    finally
                    {
                        dbtran = null;
                        //Close Connection
                        dbconn.Close();
                        dbconn = null;
                    }
                }
            }
            return(dsReturn);
        }
 public override string RenameTable(DatabaseTable databaseTable, string originalTableName)
 {
     return(RenameTableTo(databaseTable, originalTableName));
 }
 public override string DropDefault(DatabaseTable databaseTable, DatabaseColumn databaseColumn)
 {
     return("-- drop default on " + databaseColumn.Name);
 }
Ejemplo n.º 16
0
 static string TableKey(DatabaseTable table) => TableKey(table.Name, table.Schema);
Ejemplo n.º 17
0
        /// <summary>
        /// 添加原因代码和类型的关联。
        /// </summary>
        /// <param name="dsParams">包含原因代码和类型关联的数据集对象。</param>
        /// <returns>包含执行结果的数据集对象。</returns>
        public DataSet AddReasonCategory(DataSet dsParams)
        {
            DataSet dsReturn = new DataSet();

            try
            {
                if (dsParams.Tables.Contains(FMM_REASON_R_CATEGORY_FIELDS.DATABASE_TABLE_NAME))
                {
                    DataTable dataTable = dsParams.Tables[FMM_REASON_R_CATEGORY_FIELDS.DATABASE_TABLE_NAME];
                    FMM_REASON_R_CATEGORY_FIELDS categoryTable = new FMM_REASON_R_CATEGORY_FIELDS();

                    using (DbConnection dbConn = db.CreateConnection())
                    {
                        //Open Connection
                        dbConn.Open();
                        //Create Transaction
                        DbTransaction dbTran = dbConn.BeginTransaction();
                        try
                        {
                            foreach (DataRow row in dataTable.Rows)
                            {
                                Hashtable fields = new Hashtable()
                                {
                                    { FMM_REASON_R_CATEGORY_FIELDS.FIELD_CATEGORY_KEY,
                                      row[FMM_REASON_R_CATEGORY_FIELDS.FIELD_CATEGORY_KEY] },
                                    { FMM_REASON_R_CATEGORY_FIELDS.FIELD_REASON_CODE_KEY,
                                      row[FMM_REASON_R_CATEGORY_FIELDS.FIELD_REASON_CODE_KEY] }
                                };
                                string sqlCommand = DatabaseTable.BuildInsertSqlStatement(categoryTable, fields, null);
                                db.ExecuteNonQuery(dbTran, CommandType.Text, sqlCommand);
                            }

                            //Commit Transaction
                            dbTran.Commit();

                            FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, "");
                        }
                        catch (Exception ex)
                        {
                            FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, ex.Message);
                            //Rollback Transaction
                            dbTran.Rollback();
                            LogService.LogError("AddReasonCategory Error: " + ex.Message);
                        }
                        finally
                        {
                            dbTran = null;
                            //Close Connection
                            dbConn.Close();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, ex.Message);
                LogService.LogError("AddReasonCategory Error: " + ex.Message);
            }

            return(dsReturn);
        }
Ejemplo n.º 18
0
 static string ColumnKey(DatabaseTable table, string columnName) => $"{TableKey(table)}.`{columnName}`";
Ejemplo n.º 19
0
 private DatabaseColumn GetColumn(DatabaseTable table, string columnName)
 => FindColumn(table, columnName) ??
 throw new InvalidOperationException($"Could not find column '{columnName}' in table '{table.Name}'.");
        public void Correct_arguments_to_scaffolding_typemapper()
        {
            var principalPkColumn = new DatabaseColumn {
                Name = "PrimaryKey", StoreType = "nvarchar(450)"
            };
            var principalAkColumn = new DatabaseColumn {
                Name = "AlternateKey", StoreType = "nvarchar(450)"
            };
            var principalIndexColumn = new DatabaseColumn {
                Name = "Index", StoreType = "nvarchar(450)"
            };
            var rowversionColumn = new DatabaseColumn
            {
                Name           = "Rowversion",
                StoreType      = "rowversion",
                ValueGenerated = ValueGenerated.OnAddOrUpdate,
                [ScaffoldingAnnotationNames.ConcurrencyToken] = true
            };

            var principalTable = new DatabaseTable
            {
                Name    = "Principal",
                Columns =
                {
                    principalPkColumn,
                    principalAkColumn,
                    principalIndexColumn,
                    rowversionColumn
                },
                PrimaryKey = new DatabasePrimaryKey {
                    Columns = { principalPkColumn }
                },
                UniqueConstraints = { new DatabaseUniqueConstraint {
                                          Columns =                { principalAkColumn}
                                      } },
                Indexes = { new DatabaseIndex {
                                Columns =     { principalIndexColumn}
                            } }
            };

            var dependentIdColumn = new DatabaseColumn {
                Name = "Id", StoreType = "int"
            };
            var dependentFkColumn = new DatabaseColumn {
                Name = "BlogAlternateKey", StoreType = "nvarchar(450)"
            };

            var dependentTable = new DatabaseTable
            {
                Name    = "Dependent",
                Columns =
                {
                    dependentIdColumn,
                    dependentFkColumn
                },
                PrimaryKey = new DatabasePrimaryKey {
                    Columns = { dependentIdColumn }
                },
                Indexes = { new DatabaseIndex {
                                Columns =     { dependentFkColumn}
                            } },
                ForeignKeys =
                {
                    new DatabaseForeignKey
                    {
                        Columns          = { dependentFkColumn },
                        PrincipalTable   = principalTable,
                        PrincipalColumns ={ principalAkColumn                        }
                    }
                }
            };

            var dbModel = new DatabaseModel
            {
                Tables = { principalTable, dependentTable }
            };

            var model = _factory.Create(dbModel);

            Assert.Null(model.FindEntityType("Principal").FindProperty("PrimaryKey").Relational().ColumnType);
            Assert.Null(model.FindEntityType("Principal").FindProperty("AlternateKey").Relational().ColumnType);
            Assert.Null(model.FindEntityType("Principal").FindProperty("Index").Relational().ColumnType);
            Assert.Null(model.FindEntityType("Principal").FindProperty("Rowversion").Relational().ColumnType);
            Assert.Null(model.FindEntityType("Dependent").FindProperty("BlogAlternateKey").Relational().ColumnType);
        }
Ejemplo n.º 21
0
        public void Indexes_and_alternate_keys()
        {
            var c1 = new DatabaseColumn {
                Name = "C1", StoreType = "long"
            };
            var table = new DatabaseTable
            {
                Name    = "T",
                Columns =
                {
                    c1,
                    new DatabaseColumn {
                        Name = "C2",StoreType               = "long"
                    },
                    new DatabaseColumn {
                        Name = "C3",StoreType               = "long"
                    }
                },
                PrimaryKey = new DatabasePrimaryKey
                {
                    Columns = { c1 }
                }
            };

            table.Indexes.Add(
                new DatabaseIndex
            {
                Name     = "IDX_C1",
                Columns  = { table.Columns.ElementAt(0) },
                IsUnique = false
            });
            table.Indexes.Add(
                new DatabaseIndex
            {
                Name     = "UNQ_C2",
                Columns  = { table.Columns.ElementAt(1) },
                IsUnique = true
            });
            table.Indexes.Add(
                new DatabaseIndex
            {
                Name    = "IDX_C2_C1",
                Columns =
                {
                    table.Columns.ElementAt(1),
                    table.Columns.ElementAt(0)
                },
                IsUnique = false
            });
            table.Indexes.Add(
                new DatabaseIndex
            {
                /*Name ="UNQ_C3_C1",*/
                Columns =
                {
                    table.Columns.ElementAt(2),
                    table.Columns.ElementAt(0)
                },
                IsUnique = true
            });

            var info = new DatabaseModel {
                Tables = { table }
            };

            var entityType = (EntityType)_factory.Create(info).GetEntityTypes().Single();

            Assert.Collection(
                entityType.GetIndexes(),
                indexColumn1 =>
            {
                Assert.False(indexColumn1.IsUnique);
                Assert.Equal("IDX_C1", indexColumn1.Relational().Name);
                Assert.Same(entityType.FindProperty("C1"), indexColumn1.Properties.Single());
            },
                uniqueColumn2 =>
            {
                Assert.True(uniqueColumn2.IsUnique);
                Assert.Same(entityType.FindProperty("C2"), uniqueColumn2.Properties.Single());
            },
                indexColumn2Column1 =>
            {
                Assert.False(indexColumn2Column1.IsUnique);
                Assert.Equal(new[] { "C2", "C1" }, indexColumn2Column1.Properties.Select(c => c.Name).ToArray());
            },
                uniqueColumn3Column1 =>
            {
                Assert.True(uniqueColumn3Column1.IsUnique);
                Assert.Equal(new[] { "C3", "C1" }, uniqueColumn3Column1.Properties.Select(c => c.Name).ToArray());
            }
                );

            // unique indexes should not cause alternate keys if not used by foreign keys
            Assert.Equal(0, entityType.GetKeys().Count(k => !k.IsPrimaryKey()));
        }
Ejemplo n.º 22
0
        private string CreateAssertCodeForJava(DatabaseTable model)
        {
            StringBuilder code = new StringBuilder();

            if (model.Fileds != null)
            {
                model.Fileds.ForEach(f =>
                {
                    if (f.Name.Contains("createTime") || f.Name.Contains("updateTime"))
                    {
                        return;
                    }
                    switch (f.CheckRule.RuleType)
                    {
                    case ModelPropeprtyRuleType.NullOrEmpty:
                        switch (f.DataType)
                        {
                        case DatabaseDataType.Char:
                        case DatabaseDataType.LongText_Mariadb:
                        case DatabaseDataType.Nchar_MsSql:
                        case DatabaseDataType.Ntext_MsSql:
                        case DatabaseDataType.NvarChar_MsSql:
                        case DatabaseDataType.Text:
                        case DatabaseDataType.VarChar:
                        default:
                            code.Append(string.Format("AssertHelper.AssertStringNullorEmpty(info.get{0}());\n", ParseBigName(f.Name)));
                            break;
                        }
                        break;

                    case ModelPropeprtyRuleType.Rang:
                        switch (f.DataType)
                        {
                            #region 日期
                        case DatabaseDataType.Year:
                            code.Append(string.Format("AssertHelper.AssertNull(info.get{0}());\n", ParseBigName(f.Name)));
                            break;

                        case DatabaseDataType.Time:
                            code.Append(string.Format("AssertHelper.AssertNull(info.get{0}());\n", ParseBigName(f.Name)));
                            break;

                        case DatabaseDataType.Timestamp:
                            code.Append(string.Format("AssertHelper.AssertNull(info.get{0}());\n", ParseBigName(f.Name)));
                            break;

                        case DatabaseDataType.Date:
                            code.Append(string.Format("AssertHelper.AssertNull(info.get{0}());\n", ParseBigName(f.Name)));
                            break;

                        case DatabaseDataType.Datetime:
                            code.Append(string.Format("AssertHelper.AssertNull(info.get{0}());\n", ParseBigName(f.Name)));
                            break;

                            #endregion
                            #region bigdata
                        case DatabaseDataType.Decimal:
                            // code.Append(string.Format("AssertHelper.AssertRangDecimal(var{0}.{1},{2},{3});\n", model.Name, f.Name, f.CheckRule.getDecimalRang().MinVal, f.CheckRule.getDecimalRang().MaxVal));
                            break;

                        case DatabaseDataType.Money_MsSql:
                            // code.Append(string.Format("AssertHelper.AssertRangDecimal(var{0}.{1},{2},{3});\n", model.Name, f.Name, f.CheckRule.getDecimalRang().MinVal, f.CheckRule.getDecimalRang().MaxVal));
                            break;

                        case DatabaseDataType.Double:
                            code.Append(string.Format("AssertHelper.AssertRangDouble(info.get{0}(),Double.MIN_VALUE,Double.MAX_VALUE);\n", ParseBigName(f.Name)));
                            break;

                        case DatabaseDataType.Float:
                            code.Append(string.Format("AssertHelper.AssertRangFloat(info.get{0}(),Float.MIN_VALUE,Float.MAX_VALUE);\n", ParseBigName(f.Name)));
                            break;

                            #endregion
                            #region 整型
                        case DatabaseDataType.Int:
                            code.Append(string.Format("AssertHelper.AssertRangInt(info.get{0}(),Integer.MIN_VALUE,Integer.MAX_VALUE);\n", ParseBigName(f.Name)));
                            break;

                        case DatabaseDataType.BigInt:
                            code.Append(string.Format("AssertHelper.AssertRangLong(info.get{0}(),Integer.MIN_VALUE,Integer.MAX_VALUE);\n", ParseBigName(f.Name)));
                            break;

                        case DatabaseDataType.TinyInt:
                            // code.Append(string.Format("AssertHelper.AssertRangByte(var{0}.{1},{2},{3});\n", model.Name, f.Name, f.CheckRule.getByteRang().MinVal, f.CheckRule.getByteRang().MaxVal));
                            break;
                            #endregion
                        }
                        break;

                    case ModelPropeprtyRuleType.Regex:
                        // code.Append(string.Format("AssertHelper.AssertRegex(var{0}.{1},{2});\n", model.Name, f.Name, f.CheckRule.RegexRule));
                        break;
                    }
                });
            }
            return(code.ToString());
        }
Ejemplo n.º 23
0
        public void Unique_index_composite_foreign_key()
        {
            var ida = new DatabaseColumn {
                Name = "Id_A", StoreType = "long"
            };
            var idb = new DatabaseColumn {
                Name = "Id_B", StoreType = "long"
            };
            var parentTable = new DatabaseTable
            {
                Name    = "Parent",
                Columns =
                {
                    ida,
                    idb
                },
                PrimaryKey = new DatabasePrimaryKey
                {
                    Columns = { ida, idb }
                }
            };
            var childrenTable = new DatabaseTable
            {
                Name    = "Children",
                Columns =
                {
                    IdColumn,
                    new DatabaseColumn {
                        Name = "ParentId_A",StoreType                 = "long"
                    },
                    new DatabaseColumn {
                        Name = "ParentId_B",StoreType                 = "long"
                    }
                },
                PrimaryKey = IdPrimaryKey
            };

            childrenTable.Indexes.Add(
                new DatabaseIndex
            {
                IsUnique = true,
                Columns  =
                {
                    childrenTable.Columns.ElementAt(1),
                    childrenTable.Columns.ElementAt(2)
                }
            });
            childrenTable.ForeignKeys.Add(
                new DatabaseForeignKey
            {
                Table          = childrenTable,
                PrincipalTable = parentTable,
                Columns        =
                {
                    childrenTable.Columns.ElementAt(1),
                    childrenTable.Columns.ElementAt(2)
                },
                PrincipalColumns =
                {
                    parentTable.Columns.ElementAt(0),
                    parentTable.Columns.ElementAt(1)
                }
            });

            var model = _factory.Create(new DatabaseModel {
                Tables = { parentTable, childrenTable }
            });
            var parent   = model.FindEntityType("Parent");
            var children = model.FindEntityType("Children");

            var fk = Assert.Single(children.GetForeignKeys());

            Assert.True(fk.IsUnique);
            Assert.Equal(parent.FindPrimaryKey(), fk.PrincipalKey);
        }
Ejemplo n.º 24
0
        /// <summary>
        /// 生成代码检查片段
        /// </summary>
        /// <param name="model"></param>
        /// <param name="resultResultCode">需要返回的结果类型对象代码</param>
        /// <returns></returns>
        private string CreateCheckCode(DatabaseTable model, String returnTypeCode)
        {
            StringBuilder code = new StringBuilder();

            if (model.Fileds != null)
            {
                model.Fileds.ForEach(f =>
                {
                    switch (f.CheckRule.RuleType)
                    {
                    case ModelPropeprtyRuleType.NullOrEmpty:
                        switch (f.DataType)
                        {
                        case DatabaseDataType.Char:
                        case DatabaseDataType.LongText_Mariadb:
                        case DatabaseDataType.Nchar_MsSql:
                        case DatabaseDataType.Ntext_MsSql:
                        case DatabaseDataType.NvarChar_MsSql:
                        case DatabaseDataType.Text:
                        case DatabaseDataType.VarChar:
                        default:
                            code.Append(string.Format("if(CheckHelper.IsStringNullorEmpty(var{0}.{1})){{ return {2}; }}\n", model.Name, f.Name, returnTypeCode));
                            break;
                        }
                        break;

                    case ModelPropeprtyRuleType.Rang:
                        switch (f.DataType)
                        {
                            #region 日期
                        case DatabaseDataType.Year:
                            code.Append(string.Format("if(!CheckHelper.IsRangDateTime(var{0}.{1},{2},{3})){{ return {4}; }}\n", model.Name, f.Name, f.CheckRule.getDateTimeRang().MinVal, f.CheckRule.getDateTimeRang().MaxVal, returnTypeCode));
                            break;

                        case DatabaseDataType.Time:
                            code.Append(string.Format("if(!CheckHelper.IsRangDateTime(var{0}.{1},{2},{3})){{ return {4};}}\n", model.Name, f.Name, f.CheckRule.getDateTimeRang().MinVal, f.CheckRule.getDateTimeRang().MaxVal, returnTypeCode));
                            break;

                        case DatabaseDataType.Timestamp:
                            code.Append(string.Format("if(!CheckHelper.IsRangDateTime(var{0}.{1},{2},{3})){{ return {4};}}\n", model.Name, f.Name, f.CheckRule.getDateTimeRang().MinVal, f.CheckRule.getDateTimeRang().MaxVal, returnTypeCode));
                            break;

                        case DatabaseDataType.Date:
                            code.Append(string.Format("if(!CheckHelper.IsRangDateTime(var{0}.{1},{2},{3})){{ return {4};}}\n", model.Name, f.Name, f.CheckRule.getDateTimeRang().MinVal, f.CheckRule.getDateTimeRang().MaxVal, returnTypeCode));
                            break;

                        case DatabaseDataType.Datetime:
                            code.Append(string.Format("if(!CheckHelper.IsRangDateTime(var{0}.{1},{2},{3})){{ return {4};}}\n", model.Name, f.Name, f.CheckRule.getDateTimeRang().MinVal, f.CheckRule.getDateTimeRang().MaxVal, returnTypeCode));
                            break;

                            #endregion
                            #region bigdata
                        case DatabaseDataType.Decimal:
                            code.Append(string.Format("if(!CheckHelper.IsRangDecimal(var{0}.{1},{2},{3})){{ return {4};}}\n", model.Name, f.Name, f.CheckRule.getDecimalRang().MinVal, f.CheckRule.getDecimalRang().MaxVal, returnTypeCode));
                            break;

                        case DatabaseDataType.Money_MsSql:
                            code.Append(string.Format("if(!CheckHelper.IsRangDecimal(var{0}.{1},{2},{3})){{return {4};}}\n", model.Name, f.Name, f.CheckRule.getDecimalRang().MinVal, f.CheckRule.getDecimalRang().MaxVal, returnTypeCode));
                            break;

                        case DatabaseDataType.Double:
                            code.Append(string.Format("if(!CheckHelper.IsRangDouble(var{0}.{1},{2},{3})){{return {4};}}\n", model.Name, f.Name, f.CheckRule.getDoubleRang().MinVal, f.CheckRule.getDoubleRang().MaxVal, returnTypeCode));
                            break;

                        case DatabaseDataType.Float:
                            code.Append(string.Format("if(!CheckHelper.IsRangFloat(var{0}.{1},{2},{3})){{return {4};}}\n", model.Name, f.Name, f.CheckRule.getFloatRang().MinVal, f.CheckRule.getFloatRang().MaxVal, returnTypeCode));
                            break;

                            #endregion
                            #region 整型
                        case DatabaseDataType.Int:
                            code.Append(string.Format("if(!CheckHelper.IsRangInt(var{0}.{1},{2},{3})){{return {4};}}\n", model.Name, f.Name, f.CheckRule.getIntRang().MinVal, f.CheckRule.getIntRang().MaxVal, returnTypeCode));
                            break;

                        case DatabaseDataType.BigInt:
                            code.Append(string.Format("if(!CheckHelper.IsRangLong(var{0}.{1},{2},{3})){{return {4};}}\n", model.Name, f.Name, f.CheckRule.getLongRang().MinVal, f.CheckRule.getLongRang().MaxVal, returnTypeCode));
                            break;

                        case DatabaseDataType.TinyInt:
                            code.Append(string.Format("if(!CheckHelper.IsRangByte(var{0}.{1},{2},{3})){{return {4};}}\n", model.Name, f.Name, f.CheckRule.getByteRang().MinVal, f.CheckRule.getByteRang().MaxVal, returnTypeCode));
                            break;
                            #endregion
                        }
                        break;

                    case ModelPropeprtyRuleType.Regex:
                        code.Append(string.Format("if(!CheckHelper.IsRegex(var{0}.{1},{2})){{return {3};}}\n", model.Name, f.Name, f.CheckRule.RegexRule, returnTypeCode));
                        break;
                    }
                });
            }
            return(code.ToString());
        }
 /// <summary>
 ///     This API supports the Entity Framework Core infrastructure and is not intended to be used
 ///     directly from your code. This API may change or be removed in future releases.
 /// </summary>
 protected virtual string GetEntityTypeName([NotNull] DatabaseTable table)
 => _tableNamer.GetName(Check.NotNull(table, nameof(table)));
Ejemplo n.º 26
0
        /// <summary>
        /// 向工单表中插入工单信息,同时向配料单表中插入配料信息
        /// </summary>
        /// <param name="dsParams">POR_WORK_ORDER和POR_WORK_ORDER_REC数据表和数据</param>
        /// <returns>返回含有操作信息的结果集</returns>
        public DataSet AddMaterialInformation(DataSet dsParams)
        {
            DataSet dsReturn   = new DataSet();
            string  sqlCommand = string.Empty;
            POR_WORK_ORDER_REC_FIELDS MaterialsFields = new POR_WORK_ORDER_REC_FIELDS();

            if (dsParams != null)
            {
                //生成向工单表插入数据的SQL
                List <string> sqlCommandList = new List <string>();
                if (dsParams.Tables.Contains(POR_WORK_ORDER_FIELDS.DATABASE_TABLE_NAME))
                {
                    DatabaseTable.BuildInsertSqlStatements(ref sqlCommandList,
                                                           new POR_WORK_ORDER_FIELDS(),
                                                           dsParams.Tables[POR_WORK_ORDER_FIELDS.DATABASE_TABLE_NAME],
                                                           new Dictionary <string, string>()
                    {
                    },
                                                           new List <string>());
                }

                //生成向配料单表插入数据的SQL
                if (dsParams.Tables.Contains(POR_WORK_ORDER_REC_FIELDS.DATABASE_TABLE_NAME))
                {
                    for (int i = 0; i < dsParams.Tables[POR_WORK_ORDER_REC_FIELDS.DATABASE_TABLE_NAME].Rows.Count; i++)
                    {
                        sqlCommand = DatabaseTable.BuildInsertSqlStatement(MaterialsFields, dsParams.Tables[POR_WORK_ORDER_REC_FIELDS.DATABASE_TABLE_NAME],
                                                                           i, new Dictionary <string, string> {
                        }, new List <string>());
                        sqlCommandList.Add(sqlCommand);
                    }
                }
                if (sqlCommandList.Count > 0)
                {
                    DbConnection dbCon = db.CreateConnection();
                    dbCon.Open();
                    DbTransaction dbTrans = dbCon.BeginTransaction();
                    try
                    {
                        foreach (string sql in sqlCommandList)
                        {
                            db.ExecuteNonQuery(dbTrans, CommandType.Text, sql);
                        }
                        dbTrans.Commit();
                        FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, "");
                    }
                    catch (Exception ex)
                    {
                        dbTrans.Rollback();
                        FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, ex.Message);
                        LogService.LogError("MaterialsInsert Error: " + ex.Message);
                    }
                    finally
                    {
                        dbTrans = null;
                        dbCon.Close();
                        dbCon = null;
                    }
                }
            }
            else
            {
                FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, "No Work Order Tables in input paremter.");
            }

            return(dsReturn);
        }
        /// <summary>
        ///     This API supports the Entity Framework Core infrastructure and is not intended to be used
        ///     directly from your code. This API may change or be removed in future releases.
        /// </summary>
        protected virtual EntityTypeBuilder VisitTable([NotNull] ModelBuilder modelBuilder, [NotNull] DatabaseTable table)
        {
            Check.NotNull(modelBuilder, nameof(modelBuilder));
            Check.NotNull(table, nameof(table));

            var entityTypeName = GetEntityTypeName(table);

            var builder = modelBuilder.Entity(entityTypeName);

            var dbSetName = GetDbSetName(table);

            builder.Metadata.Scaffolding().DbSetName = dbSetName;

            builder.ToTable(table.Name, table.Schema);

            VisitColumns(builder, table.Columns);

            var keyBuilder = VisitPrimaryKey(builder, table);

            if (keyBuilder == null)
            {
                var errorMessage = DesignStrings.UnableToGenerateEntityType(table.DisplayName());
                _reporter.WriteWarning(errorMessage);

                var model = modelBuilder.Model;
                model.RemoveEntityType(entityTypeName);
                model.Scaffolding().EntityTypeErrors.Add(entityTypeName, errorMessage);
                return(null);
            }

            VisitUniqueConstraints(builder, table.UniqueConstraints);
            VisitIndexes(builder, table.Indexes);

            builder.Metadata.AddAnnotations(table.GetAnnotations());

            return(builder);
        }
Ejemplo n.º 28
0
 public TableGenerator(DatabaseTable table)
     : base(table)
 {
     DataTypeWriter = new DataTypeWriter();
 }
 public void InsertListIntoTable(DatabaseTable table, List <BaseAltiumDbEntity> data)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 30
0
        /// <summary>
        /// 更新原因代码类型数据。
        /// </summary>
        /// <param name="dsParams">包含原因代码类型数据的数据集对象。</param>
        /// <returns>包含执行结果的数据集对象。</returns>
        public DataSet ReasonCodeCategoryUpdate(DataSet dsParams)
        {
            DataSet dsReturn = new DataSet();

            try
            {
                if (null != dsParams)
                {
                    List <string> sqlCommandList = new List <string>();
                    if (dsParams.Tables.Contains(FMM_REASON_CODE_CATEGORY_FIELDS.DATABASE_TABLE_NAME))
                    {
                        DatabaseTable.BuildUpdateSqlStatements(ref sqlCommandList,
                                                               new FMM_REASON_CODE_CATEGORY_FIELDS(),
                                                               dsParams.Tables[FMM_REASON_CODE_CATEGORY_FIELDS.DATABASE_TABLE_NAME],
                                                               new Dictionary <string, string>()
                        {
                            { FMM_REASON_CODE_CATEGORY_FIELDS.FIELD_EDIT_TIME, null },
                            { FMM_REASON_CODE_CATEGORY_FIELDS.FIELD_EDIT_TIMEZONE, "CN-ZH" }
                        },
                                                               new List <string>()
                        {
                            FMM_REASON_CODE_CATEGORY_FIELDS.FIELD_REASON_CODE_CATEGORY_KEY
                        },
                                                               FMM_REASON_CODE_CATEGORY_FIELDS.FIELD_REASON_CODE_CATEGORY_KEY);
                    }

                    if (sqlCommandList.Count > 0)
                    {
                        DbConnection dbConn = db.CreateConnection();
                        dbConn.Open();
                        DbTransaction dbTrans = dbConn.BeginTransaction();
                        try
                        {
                            foreach (string sql in sqlCommandList)
                            {
                                db.ExecuteNonQuery(dbTrans, CommandType.Text, sql);
                            }
                            dbTrans.Commit();
                            FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, "");
                        }
                        catch (Exception e)
                        {
                            dbTrans.Rollback();
                            FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, e.Message);
                            LogService.LogError("ReasonCodeCategoryUpdate Error: " + e.Message);
                        }
                        finally
                        {
                            dbConn.Close();
                        }
                    }
                }
                else
                {
                    FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, "${res:Global.ServerMessage.M0007}");
                }
            }
            catch (Exception ex)
            {
                FanHai.Hemera.Share.Common.ReturnMessageUtils.AddServerReturnMessage(dsReturn, ex.Message);
                LogService.LogError("ReasonCodeCategoryUpdate Error: " + ex.Message);
            }
            return(dsReturn);
        }
Ejemplo n.º 31
0
        /// <summary>
        /// Установка соединения с базой данных.
        /// </summary>
        /// <returns>true - соединение установлено, false - не установлено.</returns>
        private bool EstablishDatabaseConnection()
        {
            using (FrmMicrosoftSqlConnectionEditor frmConnectionEditor = new FrmMicrosoftSqlConnectionEditor(DatabaseDefautlName))
            {
                DialogResult dialogResult = frmConnectionEditor.ShowDialog();

                if (dialogResult != DialogResult.OK)
                    return false;

                // если базы данных нету на сервере
                if (!frmConnectionEditor.DatabaseExistsOnServer)
                {
                    dialogResult = MessageBox.Show("База данных \"" + frmConnectionEditor.DatabaseName + "\" не существует на сервере.\nСоздать базу с этим именем?", "Внимание", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);

                    if (dialogResult != DialogResult.Yes)
                        return false;

                    using (FrmDatabaseCreator frmDatabaseCreator = new FrmDatabaseCreator(frmConnectionEditor.SqlConnectionStringWithoutDatabaseName,
                                                                                          frmConnectionEditor.DatabaseName))
                    {
                        frmDatabaseCreator.ShowDialog();
                    }
                }

                string connectionString = frmConnectionEditor.SqlConnectionString;
                _editedTable = new TableTasks(dataGridView, connectionString);
            }

            return true;
        }
 public override string DropConstraint(DatabaseTable databaseTable, DatabaseConstraint constraint)
 {
     return(null); //doesn't support it
 }