/// <summary> /// Generates the business logic class type. We override this to control the base class and imports /// </summary> /// <param name="codeGenContext">The context to use to generate code.</param> /// <param name="codeNamespace">The namespace into which to generate code.</param> /// <param name="className">The name to use for the class.</param> /// <returns>The new type</returns> protected override CodeTypeDeclaration CreateBusinessLogicClass(ICodeGenContext codeGenContext, CodeNamespace codeNamespace, string className) { // Add an import for our domain service foreach (string import in BusinessLogicClassConstants.LinqToEntitiesDbImports) { codeNamespace.Imports.Add(new CodeNamespaceImport(import)); } // Add an import for the namespace of the DomainContext if (this.ContextType.Namespace != codeNamespace.Name) { codeNamespace.Imports.Add(new CodeNamespaceImport(BusinessLogicClassConstants.DbContextNamespace)); codeNamespace.Imports.Add(new CodeNamespaceImport(this.ContextType.Namespace)); } // Add to the set of known references codeGenContext.AddReference(typeof(EntityState).Assembly.FullName); // We used to add OpenRiaServices.DomainServices.EntityFramework, but due to // vstfdevdiv/DevDiv2 Bug 442272 - Domain Service Wizard failing when an EF DbContext is selected, // we need to avoid doing that. if (DbContextUtilities.DbContextTypeReference != null) { codeGenContext.AddReference(DbContextUtilities.DbContextTypeReference.Assembly.FullName); } CodeTypeDeclaration businessLogicClass = CodeGenUtilities.CreateTypeDeclaration(className, codeNamespace.Name); CodeTypeReference baseClass = new CodeTypeReference(BusinessLogicClassConstants.DbDomainServiceTypeName, new CodeTypeReference(this.ContextType.Name)); businessLogicClass.BaseTypes.Add(baseClass); return(businessLogicClass); }
/// <summary> /// Creates the business logic class. Overridden to add imports, base class, etc. /// </summary> /// <param name="codeGenContext">The code gen context.></param> /// <param name="codeNamespace">The namespace name.</param> /// <param name="className">The class name.</param> /// <returns>the new type</returns> protected override CodeTypeDeclaration CreateBusinessLogicClass(ICodeGenContext codeGenContext, CodeNamespace codeNamespace, string className) { Debug.Assert(LinqToSqlContext.linqToSqlDomainServiceAssemblyPath != null, "Unexpected method call when LinqToSqlDomainService assembly path has not been initialized!"); if (LinqToSqlContext.linqToSqlDomainServiceAssemblyPath == null) { return(null); } // Add an import for our domain service foreach (string import in BusinessLogicClassConstants.LinqToSqlImports) { codeNamespace.Imports.Add(new CodeNamespaceImport(import)); } // Add an import for the namespace of the DomainContext if (this.ContextType.Namespace != codeNamespace.Name) { codeNamespace.Imports.Add(new CodeNamespaceImport(this.ContextType.Namespace)); } // Add to the set of known references codeGenContext.AddReference(typeof(DataContext).Assembly.FullName); codeGenContext.AddReference(LinqToSqlContext.linqToSqlDomainServiceAssemblyPath); CodeTypeDeclaration businessLogicClass = CodeGenUtilities.CreateTypeDeclaration(className, codeNamespace.Name); CodeTypeReference baseClass = new CodeTypeReference(BusinessLogicClassConstants.LinqToSqlDomainServiceTypeName, new CodeTypeReference(this.ContextType.Name)); businessLogicClass.BaseTypes.Add(baseClass); return(businessLogicClass); }
/// <summary> /// Generates the business logic class type. We override this to control the base class and imports /// </summary> /// <param name="codeGenContext">The context to use to generate code.</param> /// <param name="codeNamespace">The namespace into which to generate code.</param> /// <param name="className">The name to use for the class.</param> /// <returns>The new type</returns> protected override CodeTypeDeclaration CreateBusinessLogicClass(ICodeGenContext codeGenContext, CodeNamespace codeNamespace, string className) { // Add an import for our domain service foreach (string import in BusinessLogicClassConstants.LinqToEntitiesImports) { codeNamespace.Imports.Add(new CodeNamespaceImport(import)); } // Add an import for the namespace of the DomainContext if (this.ContextType.Namespace != codeNamespace.Name) { codeNamespace.Imports.Add(new CodeNamespaceImport(this.ContextType.Namespace)); } // Add to the set of known references codeGenContext.AddReference(typeof(ObjectContext).Assembly.FullName); codeGenContext.AddReference(typeof(LinqToEntitiesDomainService<>).Assembly.FullName); CodeTypeDeclaration businessLogicClass = CodeGenUtilities.CreateTypeDeclaration(className, codeNamespace.Name); CodeTypeReference baseClass = new CodeTypeReference(BusinessLogicClassConstants.LinqToEntitiesDomainServiceTypeName, new CodeTypeReference(this.ContextType.Name)); businessLogicClass.BaseTypes.Add(baseClass); return businessLogicClass; }
/// <summary> /// Generates the business logic class type. We override this to control the base class and imports /// </summary> /// <param name="codeGenContext">The context to use to generate code.</param> /// <param name="codeNamespace">The namespace into which to generate code.</param> /// <param name="className">The name to use for the class.</param> /// <returns>The new type</returns> protected override CodeTypeDeclaration CreateBusinessLogicClass(ICodeGenContext codeGenContext, CodeNamespace codeNamespace, string className) { // Add an import for our domain service foreach (string import in BusinessLogicClassConstants.LinqToEntitiesImports) { codeNamespace.Imports.Add(new CodeNamespaceImport(import)); } // Add an import for the namespace of the DomainContext if (this.ContextType.Namespace != codeNamespace.Name) { codeNamespace.Imports.Add(new CodeNamespaceImport(this.ContextType.Namespace)); } // Add to the set of known references codeGenContext.AddReference(typeof(ObjectContext).Assembly.FullName); codeGenContext.AddReference(typeof(LinqToEntitiesDomainService <>).Assembly.FullName); CodeTypeDeclaration businessLogicClass = CodeGenUtilities.CreateTypeDeclaration(className, codeNamespace.Name); CodeTypeReference baseClass = new CodeTypeReference(BusinessLogicClassConstants.LinqToEntitiesDomainServiceTypeName, new CodeTypeReference(this.ContextType.Name)); businessLogicClass.BaseTypes.Add(baseClass); return(businessLogicClass); }
/// <summary> /// Creates the business logic class. Overridden to add imports, base class, etc. /// </summary> /// <param name="codeGenContext">The code gen context.></param> /// <param name="codeNamespace">The namespace name.</param> /// <param name="className">The class name.</param> /// <returns>the new type</returns> protected override CodeTypeDeclaration CreateBusinessLogicClass(ICodeGenContext codeGenContext, CodeNamespace codeNamespace, string className) { Debug.Assert(LinqToSqlContext.linqToSqlDomainServiceAssemblyPath != null, "Unexpected method call when LinqToSqlDomainService assembly path has not been initialized!"); if (LinqToSqlContext.linqToSqlDomainServiceAssemblyPath == null) { return null; } // Add an import for our domain service foreach (string import in BusinessLogicClassConstants.LinqToSqlImports) { codeNamespace.Imports.Add(new CodeNamespaceImport(import)); } // Add an import for the namespace of the DomainContext if (this.ContextType.Namespace != codeNamespace.Name) { codeNamespace.Imports.Add(new CodeNamespaceImport(this.ContextType.Namespace)); } // Add to the set of known references codeGenContext.AddReference(typeof(DataContext).Assembly.FullName); codeGenContext.AddReference(LinqToSqlContext.linqToSqlDomainServiceAssemblyPath); CodeTypeDeclaration businessLogicClass = CodeGenUtilities.CreateTypeDeclaration(className, codeNamespace.Name); CodeTypeReference baseClass = new CodeTypeReference(BusinessLogicClassConstants.LinqToSqlDomainServiceTypeName, new CodeTypeReference(this.ContextType.Name)); businessLogicClass.BaseTypes.Add(baseClass); return businessLogicClass; }
/// <summary> /// Generates the business logic class type. We override this to control the base class and imports /// </summary> /// <param name="codeGenContext">The context to use to generate code.</param> /// <param name="codeNamespace">The namespace into which to generate code.</param> /// <param name="className">The name to use for the class.</param> /// <returns>The new type</returns> protected override CodeTypeDeclaration CreateBusinessLogicClass(ICodeGenContext codeGenContext, CodeNamespace codeNamespace, string className) { // Add an import for our domain service foreach (string import in BusinessLogicClassConstants.LinqToEntitiesDbImports) { codeNamespace.Imports.Add(new CodeNamespaceImport(import)); } // Add an import for the namespace of the DomainContext if (this.ContextType.Namespace != codeNamespace.Name) { codeNamespace.Imports.Add(new CodeNamespaceImport(BusinessLogicClassConstants.DbContextNamespace)); codeNamespace.Imports.Add(new CodeNamespaceImport(this.ContextType.Namespace)); } // Add to the set of known references codeGenContext.AddReference(typeof(EntityState).Assembly.FullName); // We used to add OpenRiaServices.DomainServices.EntityFramework, but due to // vstfdevdiv/DevDiv2 Bug 442272 - Domain Service Wizard failing when an EF DbContext is selected, // we need to avoid doing that. if (DbContextUtilities.DbContextTypeReference != null) { codeGenContext.AddReference(DbContextUtilities.DbContextTypeReference.Assembly.FullName); } CodeTypeDeclaration businessLogicClass = CodeGenUtilities.CreateTypeDeclaration(className, codeNamespace.Name); CodeTypeReference baseClass = new CodeTypeReference(BusinessLogicClassConstants.DbDomainServiceTypeName, new CodeTypeReference(this.ContextType.Name)); businessLogicClass.BaseTypes.Add(baseClass); return businessLogicClass; }