Пример #1
0
        /// <summary>
        /// 取得仅更新的SQL语句
        /// </summary>
        protected virtual string GetModifiedSqlCode(TData data)
        {
            if (/*!UpdateByMidified ||*/ data.__status.IsReadOnly)
            {
                return(UpdateSqlCode);
            }
            if (!data.__status.IsModified)
            {
                return(null);
            }
            StringBuilder sql   = new StringBuilder();
            bool          first = true;

            foreach (var pro in data.__Struct.Properties)
            {
                if (data.__status.Status.ModifiedProperties[pro.Key] <= 0 || !FieldMap.ContainsKey(pro.Value.Name))
                {
                    continue;
                }
                if (first)
                {
                    first = false;
                }
                else
                {
                    sql.Append(',');
                }
                sql.AppendLine($"       [{pro.Value.ColumnName}] = @{pro.Value.Name}");
            }
            return(first ? null : sql.ToString());
        }
        public Presenter(Result result)
        {
            IsSuccess = result.IsSuccess;

            if (result.IsFailure)
            {
                Error = result.Error;

                if (Error.IsType <ValidationError>())
                {
                    Errors = new Dictionary <string, List <string> >();

                    var error = (ValidationError)result.Error;
                    foreach (var item in error.Errors)
                    {
                        if (FieldMap.ContainsKey(item.Key))
                        {
                            Errors.Add(FieldMap[item.Key], item.Value);
                        }
                        else
                        {
                            Errors.Add(item.Key, item.Value);
                        }
                    }
                }
            }
        }
Пример #3
0
 /// <summary>
 /// 设置插入数据的命令
 /// </summary>
 /// <param name="data">实体对象</param>
 /// <param name="cmd">命令</param>
 /// <returns>返回真说明要取主键</returns>
 protected virtual void SetParameterValue(TData data, SqliteCommand cmd)
 {
     foreach (var pro in data.__Struct.Properties)
     {
         if (!FieldMap.ContainsKey(pro.Value.Name))
         {
             continue;
         }
         cmd.Parameters[pro.Value.PropertyName].Value = data.GetValue(pro.Value.PropertyName);
     }
 }
Пример #4
0
        public LogEvent Parse(string line, FieldMap fieldMap)
        {
            var returnValue     = new LogEvent();
            var fieldValueIndex = 0;

            foreach (var fieldValue in line.Split(' '))
            {
                if (fieldMap.ContainsKey(fieldValueIndex))
                {
                    var fieldInfo = fieldMap[fieldValueIndex];
                    fieldInfo.FieldInfo.SetValue(returnValue, fieldInfo.Convertor.Convert(fieldValue));
                }
                fieldValueIndex += 1;
            }

            return(returnValue);
        }
Пример #5
0
        /// <summary>
        /// 取得仅更新的SQL语句
        /// </summary>
        protected virtual string GetSqlCode(TData data)
        {
            StringBuilder sql   = new StringBuilder();
            bool          first = true;

            foreach (var pro in data.__Struct.Properties.Where(p => p.Value.Featrue.HasFlag(PropertyFeatrue.Property)))
            {
                if (!FieldMap.ContainsKey(pro.Value.Name))
                {
                    continue;
                }
                if (first)
                {
                    first = false;
                }
                else
                {
                    sql.Append(',');
                }
                sql.AppendLine($"       `{pro.Value.ColumnName}` = ?{pro.Value.Name}");
            }
            return(first ? null : sql.ToString());
        }