private void UpdateDate(string fieldName)
        {
            if (Builder.State == BuilderState.Error) return;

             typeof(Building).GetProperty(fieldName).SetValue(Building, DateTime.Now, null);
             var dbBuilding = new DbBuilding(Settings.Current.Building.BuilderConnectionString);
             dbBuilding.SetFieldToNowDate(Building.Id.Value, fieldName);
        }
        private void UpdateDate(string fieldName, DateTime? time)
        {
            if (time.HasValue && time.Value.Year == DateTime.MaxValue.Year)
             {
            var currentValue = typeof (Building).GetProperty(fieldName).GetValue(Building, null);
            if (currentValue is DateTime)
            {
               if (((DateTime)currentValue).Year == DateTime.MaxValue.Year)
               {
                  time = null;
               }
            }
             }

             typeof(Building).GetProperty(fieldName).SetValue(Building, time, null);
             var dbBuilding = new DbBuilding(Settings.Current.Building.BuilderConnectionString);
             dbBuilding.SetFieldTo(Building.Id.Value, fieldName, time);
        }
        private void Load()
        {
            var dbBuilding = new DbBuilding(Settings.Current.Building.BuilderConnectionString);
             foreach (var dataReader in dbBuilding.Load(Settings.Current.Building.Id.Value))
             {
            Building.SetFrom(dataReader);
             }

             if (!Building.Id.HasValue)
             {
            Building.Id = Settings.Current.Building.Id.Value;
            dbBuilding.Create(Settings.Current.Building.Id.Value);
             }
        }