예제 #1
0
 // Присваивает текущей записи свойства другой
 public void CopyPropertiesFrom(Record record)
 {
     foreach (PropertyInfo info in record.GetType().GetProperties())
     {
         if (IsField(info))
         {
             PropertyInfo myInfo = this.GetType().GetProperty(info.Name);
             myInfo.SetValue(this, info.GetValue(record, null), null);
         }
     }
 }
예제 #2
0
 // Выполняет UPDATE-запрос полей, отличных от указанной записи 
 public void Update(Record defaultRecord = null)
 {
     var parameters = GetUniqueParameters(defaultRecord);
     Update(parameters);
 }
예제 #3
0
        // Возвращает поля записи, отличные от заданной записи, в виде списка параметров для запроса 
        public List<Parameter> GetUniqueParameters(Record defaultRecord = null)
        {
            var parameters = new List<Parameter>();
            foreach (PropertyInfo info in this.GetType().GetProperties())
            {
                if (info.Name == "id" || !IsField(info))
                    continue;
                
                var value = info.GetValue(this, null);

                if( defaultRecord != null )
                {
                    var defaultInfo = defaultRecord.GetType().GetProperty(info.Name);
                    var defaultValue = defaultInfo.GetValue(defaultRecord, null);

                    if (Utils.ToString(value) == Utils.ToString(defaultValue))
                    //if( value.Equals(defaultValue) )
                        continue;
                }

                parameters.Add(new Parameter(info.Name, value));
            }
            return parameters;
        }
예제 #4
0
 public void UpdateWithCurrentTime(Record defaultRecord = null)
 {
     var parameters = GetUniqueParameters(defaultRecord);
     SetCurrentTime(parameters);
     this.Update(parameters);
 }