public void Map(ClassMappingBase classMap, Member member)
        {
            if (!(classMap is ClassMapping))
            {
                return;
            }

            var version = new VersionMapping
            {
                ContainingEntityType = classMap.Type,
            };

            version.Set(x => x.Name, Layer.Defaults, member.Name);
            version.Set(x => x.Type, Layer.Defaults, GetDefaultType(member));
            var columnMapping = new ColumnMapping();

            columnMapping.Set(x => x.Name, Layer.Defaults, member.Name);
            version.AddColumn(Layer.Defaults, columnMapping);

            SetDefaultAccess(member, version);

            if (IsSqlTimestamp(member))
            {
                version.Columns.Each(column =>
                {
                    column.Set(x => x.SqlType, Layer.Defaults, "timestamp");
                    column.Set(x => x.NotNull, Layer.Defaults, true);
                });
                version.Set(x => x.UnsavedValue, Layer.Defaults, null);
            }

            ((ClassMapping)classMap).Set(x => x.Version, Layer.Defaults, version);
        }
Exemple #2
0
        public override void Visit(VersionMapping versionMapping)
        {
            var writer = serviceLocator.GetWriter <VersionMapping>();
            var xml    = writer.Write(versionMapping);

            document.ImportAndAppendChild(xml);
        }
Exemple #3
0
        public override void ProcessVersion(VersionMapping mapping)
        {
            var conventions = finder.Find <IVersionConvention>();

            Apply <IVersionInspector, IVersionInstance>(conventions,
                                                        new VersionInstance(mapping));
        }
        public override void Visit(VersionMapping versionMapping)
        {
            var writer = serviceLocator.GetWriter<VersionMapping>();
            var xml = writer.Write(versionMapping);

            document.ImportAndAppendChild(xml);
        }
Exemple #5
0
        public void Map(ClassMappingBase classMap, Member property)
        {
            if (!(classMap is ClassMapping))
            {
                return;
            }

            var version = new VersionMapping
            {
                Name = property.Name,
            };

            version.SetDefaultValue("Type", GetDefaultType(property));
            version.AddDefaultColumn(new ColumnMapping {
                Name = property.Name
            });

            if (IsSqlTimestamp(property))
            {
                version.Columns.Each(x =>
                {
                    x.SqlType = "timestamp";
                    x.NotNull = true;
                });
                version.UnsavedValue = null;
            }

            ((ClassMapping)classMap).Version = version;
        }
Exemple #6
0
        public void Map(ClassMappingBase classMap, Member member)
        {
            if (!(classMap is ClassMapping))
            {
                return;
            }

            var version = new VersionMapping
            {
                Name = member.Name,
                ContainingEntityType = classMap.Type,
            };

            version.SetDefaultValue("Type", GetDefaultType(member));
            version.AddDefaultColumn(new ColumnMapping {
                Name = member.Name
            });

            if (member.IsProperty && !member.CanWrite)
            {
                version.Access = cfg.GetAccessStrategyForReadOnlyProperty(member).ToString();
            }

            if (IsSqlTimestamp(member))
            {
                version.Columns.Each(x =>
                {
                    x.SqlType = "timestamp";
                    x.NotNull = true;
                });
                version.UnsavedValue = null;
            }

            ((ClassMapping)classMap).Version = version;
        }
        public void ShouldWriteColumns()
        {
            var mapping = new VersionMapping();

            mapping.AddColumn(Layer.Defaults, new ColumnMapping("Column1"));

            writer.VerifyXml(mapping)
            .Element("column").Exists();
        }
        public void ShouldWriteColumns()
        {
            var mapping = new VersionMapping();

            mapping.AddColumn(new ColumnMapping {
                Name = "Column1"
            });

            writer.VerifyXml(mapping)
            .Element("column").Exists();
        }
Exemple #9
0
        public DtoVersion GetAllVersionInfo()
        {
            var versionDto = new DtoVersion();
            var dbversions = _uow.VersionRepository.GetById(1);

            versionDto.DatabaseVersion = dbversions.DatabaseVersion;
            var versionMapping = new VersionMapping().Get();

            versionDto.TargetDbVersion = versionMapping[SettingStrings.GlobalVersion];
            return(versionDto);
        }
Exemple #10
0
        public DtoActionResult Update()
        {
            var result = new DtoActionResult();

            var updatesToRun      = new List <int>();
            var currentDbVersion  = new ServiceVersion().Get(1).DatabaseVersion;
            var currentAppVersion = SettingStrings.GlobalVersion;
            var versionMapping    = new VersionMapping().Get();
            var targetDbVersion   = versionMapping[currentAppVersion];

            var trimmedCurrent = currentDbVersion.Remove(currentDbVersion.Length - 1, 1);
            var currentInt     = Convert.ToInt32(trimmedCurrent.Replace(".", ""));

            var trimmedTarget = targetDbVersion.Remove(targetDbVersion.Length - 1, 1);
            var targetInt     = Convert.ToInt32(trimmedTarget.Replace(".", ""));

            if (targetDbVersion != currentDbVersion)
            {
                foreach (var v in versionMapping)
                {
                    var trimmedValue = v.Value.Remove(v.Value.Length - 1, 1);
                    var valueInt     = Convert.ToInt32(trimmedValue.Replace(".", ""));

                    if (valueInt > currentInt && valueInt <= targetInt)
                    {
                        updatesToRun.Add(valueInt);
                    }
                }
            }

            var ordered = updatesToRun.OrderBy(x => x).Distinct().ToList();

            foreach (var version in ordered)
            {
                var type = Type.GetType("Toems_Common.DbUpgrades._" + version + ", Toems-Common");

                try
                {
                    var instance = Activator.CreateInstance(type) as IDbScript;
                    _rawSqlServices.ExecuteQuery(instance.Get());
                    result.Success = true;
                }
                catch (Exception ex)
                {
                    log.Error("Could Not Update Database To Version " + version);
                    log.Error(ex.Message);
                    result.Success      = false;
                    result.ErrorMessage = "Could Not Update Database To Version " + version + "<br>" + ex.Message;
                    return(result);
                }
            }
            return(result);
        }
Exemple #11
0
        public VersionDTO GetAllVersionInfo()
        {
            var versionDto = new VersionDTO();
            var dbversions = _uow.CdVersionRepository.GetById(1);

            versionDto.FirstRunCompleted = Convert.ToBoolean(_uow.CdVersionRepository.GetById(1).FirstRunCompleted);
            versionDto.DatabaseVersion   = dbversions.DatabaseVersion;
            var versionMapping = new VersionMapping().Get();

            versionDto.TargetDbVersion = versionMapping[SettingStrings.Version].ToString();
            return(versionDto);
        }
Exemple #12
0
        void SetDefaultAccess(Member member, VersionMapping mapping)
        {
            var resolvedAccess = MemberAccessResolver.Resolve(member);

            if (resolvedAccess != Access.Property && resolvedAccess != Access.Unset)
            {
                // if it's a property or unset then we'll just let NH deal with it, otherwise
                // set the access to be whatever we determined it might be
                mapping.Set(x => x.Access, Layer.Defaults, resolvedAccess.ToString());
            }

            if (member.IsProperty && !member.CanWrite)
            {
                mapping.Set(x => x.Access, Layer.Defaults, cfg.GetAccessStrategyForReadOnlyProperty(member).ToString());
            }
        }
Exemple #13
0
        public ActionResultDTO Update()
        {
            var result = new ActionResultDTO();

            var updatesToRun      = new List <int>();
            var currentDbVersion  = Convert.ToInt32(new CdVersionServices().Get(1).DatabaseVersion);
            var currentAppVersion = SettingStrings.Version;
            var versionMapping    = new VersionMapping().Get();
            var targetDbVersion   = versionMapping[currentAppVersion];

            if (targetDbVersion != currentDbVersion)
            {
                foreach (var v in versionMapping)
                {
                    if (v.Value > currentDbVersion && v.Value <= targetDbVersion)
                    {
                        updatesToRun.Add(v.Value);
                    }
                }
            }

            var ordered = updatesToRun.OrderBy(x => x).Distinct().ToList();

            foreach (var version in ordered)
            {
                var type = Type.GetType("CloneDeploy_Common.DbUpgrades._" + version + ", CloneDeploy-Common");

                try
                {
                    var instance = Activator.CreateInstance(type) as IDbScript;
                    _rawSqlServices.ExecuteQuery(instance.Get());
                    result.Success = true;
                }
                catch (Exception ex)
                {
                    log.Error("Could Not Update Database To Version " + version);
                    log.Error(ex.Message);
                    result.Success      = false;
                    result.ErrorMessage = "Could Not Update Database To Version " + version + "<br>" + ex.Message;
                    return(result);
                }
            }
            return(result);
        }
        VersionMapping IVersionMappingProvider.GetVersionMapping()
        {
            var mapping = new VersionMapping(attributes.CloneInner());

            mapping.ContainingEntityType = entity;

            mapping.SetDefaultValue("Name", property.Name);
            mapping.SetDefaultValue("Type", property.PropertyType == typeof(DateTime) ? new TypeReference("timestamp") : new TypeReference(property.PropertyType));
            mapping.AddDefaultColumn(new ColumnMapping(columnAttributes.CloneInner())
            {
                Name = property.Name
            });

            columns.ForEach(column => mapping.AddColumn(new ColumnMapping(columnAttributes.CloneInner())
            {
                Name = column
            }));

            return(mapping);
        }
Exemple #15
0
        VersionMapping IVersionMappingProvider.GetVersionMapping()
        {
            var mapping = new VersionMapping(attributes.Clone())
            {
                ContainingEntityType = entity
            };

            mapping.Set(x => x.Name, Layer.Defaults, member.Name);
            mapping.Set(x => x.Type, Layer.Defaults, member.PropertyType == typeof(DateTime) ? new TypeReference("timestamp") : new TypeReference(member.PropertyType));

            var defaultColumnMapping = new ColumnMapping(columnAttributes.Clone());

            defaultColumnMapping.Set(x => x.Name, Layer.Defaults, member.Name);
            mapping.AddColumn(Layer.Defaults, defaultColumnMapping);

            columns.ForEach(column =>
            {
                var columnMapping = new ColumnMapping(columnAttributes.Clone());
                columnMapping.Set(x => x.Name, Layer.Defaults, column);
                mapping.AddColumn(Layer.UserSupplied, columnMapping);
            });

            return(mapping);
        }
 public VersionInspector(VersionMapping mapping)
     : base(mapping.Columns)
 {
     this.mapping = mapping;
     propertyMappings.Map(x => x.Nullable, "NotNull");
 }
 public override void Visit(VersionMapping versionMapping)
 {
     versionMapping.AcceptVisitor(this);
 }
 public virtual void ProcessVersion(VersionMapping mapping)
 {
 }
 public virtual void Visit(VersionMapping versionMapping)
 {
 }
 public void CreateDsl()
 {
     mapping   = new VersionMapping();
     inspector = new VersionInspector(mapping);
 }
 public VersionInstance(VersionMapping mapping)
     : base(mapping)
 {
     this.mapping = mapping;
 }