Exemple #1
0
        public static async Task <int> InsertUserFilterRuleJobAsync(UserFilterRuleJob job)
        {
            string sql = @"INSERT INTO Configuration..tbl_UserFilterRuleJob
        ( JobName ,
          CreateUser ,
          ModifyUser ,
          IsPreview ,
          IsSubmit ,
          JobStatus ,
          PreviewStatus ,
          ResultCount ,
          CreateDateTime ,
          LastUpdateDateTime ,
          LastRunDateTime ,
          Description
        )
VALUES  ( @JobName , -- JobName - nvarchar(100)
          @CreateUser , -- CreateUser - nvarchar(100)
          @ModifyUser , -- ModifyUser - nvarchar(100)
          @IsPreview , -- IsPreview - bit
          @IsSubmit , -- IsSubmit - bit
          @JobStatus , -- JobStatus - nvarchar(100)
          @PreviewStatus , -- PreviewStatus - nvarchar(100)
          @ResultCount , -- ResultCount - int
          GETDATE() , -- CreateDateTime - datetime
          GETDATE() , -- LastUpdateDateTime - datetime
          GETDATE() , -- LastRunDateTime - datetime
          @Description  -- Description - nvarchar(500)
        );SELECT  @@IDENTITY; ";

            using (var dbhelper = DbHelper.CreateDbHelper(false))
            {
                using (var cmd = new SqlCommand(sql))
                {
                    cmd.CommandType = CommandType.Text;
                    var props = job.GetType().GetProperties();
                    foreach (PropertyInfo prop in props)
                    {
                        object value = prop.GetValue(job);

                        if (prop.Name.Equals("PKID", StringComparison.OrdinalIgnoreCase) ||
                            prop.PropertyType == typeof(DateTime))
                        {
                            continue;
                        }
                        if (prop.PropertyType.IsEnum)
                        {
                            cmd.Parameters.Add(new SqlParameter(string.Concat("@", prop.Name), value.ToString()));
                        }
                        else
                        {
                            cmd.Parameters.Add(new SqlParameter(string.Concat("@", prop.Name), value));
                        }
                    }
                    var result = await dbhelper.ExecuteScalarAsync(cmd);

                    return(Convert.IsDBNull(result) ? 0 : Convert.ToInt32(result));
                }
            }
        }