コード例 #1
0
        public void Test01_Load_Existing_Resource_By_Specifying_Short_Name()
        {
            var content =
                ResourceReader.GetResourceContents("DbContext.template");

            Assert.False(string.IsNullOrEmpty(content));
        }
コード例 #2
0
        public void Test02_Load_Existing_Resource_By_Specifying_Full_Name()
        {
            var content =
                ResourceReader.GetResourceContents("SSW.DataOnion.CodeGenerator.templates.DbContext.template");

            Assert.False(string.IsNullOrEmpty(content));
        }
コード例 #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="dbContextName">Name of the DbContext class</param>
        /// <param name="entitiesNamespaces">Namespace used for entities</param>
        /// <param name="dataProjectNamespace">Namespace used for project where DbContext resides</param>
        /// <param name="entitiesDllPath">Path to entities dll</param>
        /// <param name="baseEntityClassName">Optional base class used by all entities</param>
        public void Generate(
            string dbContextName,
            string entitiesNamespaces,
            string dataProjectNamespace,
            string entitiesDllPath,
            string baseEntityClassName = null)
        {
            Guard.AgainstNullOrEmptyString(dbContextName, nameof(dbContextName));
            Guard.AgainstNullOrEmptyString(entitiesNamespaces, nameof(entitiesNamespaces));
            Guard.AgainstNullOrEmptyString(dataProjectNamespace, nameof(dataProjectNamespace));
            Guard.AgainstNullOrEmptyString(entitiesDllPath, nameof(entitiesDllPath));

            var entityTypes = AssemblyHelper.GetDomainTypes(entitiesNamespaces, entitiesDllPath, baseEntityClassName);
            var template    = ResourceReader.GetResourceContents("DbContext.template");

            var dbSets = GetDbSets(entityTypes);

            // replace all tokens
            template =
                template.Replace(TokenNames.DataProject, dataProjectNamespace)
                .Replace(TokenNames.DbContextName, dbContextName)
                .Replace(TokenNames.EntitiesProject,
                         string.Join(Environment.NewLine + "\t\t", entitiesNamespaces.Split(',').Select(v => $"using {v};")))
                .Replace(TokenNames.DbSets,
                         string.Join(Environment.NewLine, dbSets));
            // create file
            File.WriteAllText($"{dbContextName}.gen.cs", template);
        }
コード例 #4
0
 public void Test03_Try_To_Load_Resource_That_Doesnt_Exist()
 {
     Assert.Null(ResourceReader.GetResourceContents("invalid resource"));
 }