public bool GenerateOption( OptionMetadata option , ICodeGenerationServiceProvider iCodeGenerationServiceProvider ) { return(true); }
public bool GenerateSdkMessagePair( CodeGenerationSdkMessagePair messagePair , ICodeGenerationServiceProvider iCodeGenerationServiceProvider ) { return(true); }
public string GetNameForEntitySet( EntityMetadata entityMetadata , ICodeGenerationServiceProvider iCodeGenerationServiceProvider ) { return(iCodeGenerationServiceProvider.NamingService.GetNameForEntity(entityMetadata, iCodeGenerationServiceProvider) + "Set"); }
private CodeTypeReference BuildCodeTypeReferenceForOptionSet( string attributeName , EntityMetadata entityMetadata , AttributeMetadata attributeMetadata , OptionSetMetadata attributeOptionSet , ICodeGenerationServiceProvider iCodeGenerationServiceProvider ) { if (iCodeGenerationServiceProvider.CodeWriterFilterService.GenerateOptionSet(attributeOptionSet, attributeMetadata, iCodeGenerationServiceProvider)) { string nameForOptionSet = iCodeGenerationServiceProvider.NamingService.GetNameForOptionSet(entityMetadata, attributeOptionSet, iCodeGenerationServiceProvider); CodeGenerationType typeForOptionSet = iCodeGenerationServiceProvider.CodeGenerationService.GetTypeForOptionSet(entityMetadata, attributeOptionSet, iCodeGenerationServiceProvider); switch (typeForOptionSet) { case CodeGenerationType.Class: return(this.TypeRef(nameForOptionSet)); case CodeGenerationType.Enum: case CodeGenerationType.Struct: return(TypeMappingService.TypeRef(typeof(Nullable <>), this.TypeRef(nameForOptionSet))); } } return(TypeMappingService.TypeRef(typeof(object))); }
public string GetNameForRelationship( EntityMetadata entityMetadata , RelationshipMetadataBase relationshipMetadata , EntityRole?reflexiveRole , ICodeGenerationServiceProvider iCodeGenerationServiceProvider ) { string str = reflexiveRole.HasValue ? reflexiveRole.Value.ToString() : string.Empty; string keyRelationship = entityMetadata.MetadataId.Value.ToString() + relationshipMetadata.MetadataId.Value + str; if (this._knowNames.ContainsKey(keyRelationship)) { return(this._knowNames[keyRelationship]); } string validName = NamingService.CreateValidName(relationshipMetadata.SchemaName + (!reflexiveRole.HasValue ? string.Empty : reflexiveRole.Value == EntityRole.Referenced ? "_Referenced" : "_Referencing")); Dictionary <string, string> knownNamesForEntityMetadata = this._knowNames.Where(d => d.Key.StartsWith(entityMetadata.MetadataId.Value.ToString())).ToDictionary(d => d.Key, d => d.Value); validName = ResolveConflictName(validName, s => this._reservedAttributeNames.Contains(s) || knownNamesForEntityMetadata.ContainsValue(s) || string.Equals(s, _typeName, StringComparison.InvariantCultureIgnoreCase)); this._knowNames.Add(keyRelationship, validName); return(validName); }
public bool GenerateOptionSet( OptionSetMetadata optionSetMetadata , AttributeMetadata attributeMetadata , ICodeGenerationServiceProvider iCodeGenerationServiceProvider ) { if (IgnoreOptionSet(optionSetMetadata, attributeMetadata, iCodeGenerationServiceProvider)) { return(false); } if (optionSetMetadata.OptionSetType == OptionSetType.State || optionSetMetadata.OptionSetType == OptionSetType.Status ) { return(_config.GenerateStatus); } if (optionSetMetadata.IsGlobal.GetValueOrDefault()) { return(_config.GenerateGlobalOptionSet); } else { return(_config.GenerateLocalOptionSet); } }
public CodeTypeReference GetTypeForRelationship( RelationshipMetadataBase relationshipMetadata , EntityMetadata otherEntityMetadata , ICodeGenerationServiceProvider iCodeGenerationServiceProvider ) { return(this.TypeRef(iCodeGenerationServiceProvider.NamingService.GetNameForEntity(otherEntityMetadata, iCodeGenerationServiceProvider))); }
public CodeTypeReference GetTypeForAttributeType( EntityMetadata entityMetadata , AttributeMetadata attributeMetadata , ICodeGenerationServiceProvider iCodeGenerationServiceProvider ) { Type type = typeof(object); if (attributeMetadata.AttributeType.HasValue) { AttributeTypeCode key = attributeMetadata.AttributeType.Value; if (key == AttributeTypeCode.PartyList) { return(this.BuildCodeTypeReferenceForPartyList(iCodeGenerationServiceProvider)); } if (_attributeTypeMapping.ContainsKey(key)) { type = _attributeTypeMapping[key]; } else if (attributeMetadata is ImageAttributeMetadata) { type = typeof(byte[]); } else if (attributeMetadata is MultiSelectPicklistAttributeMetadata) { type = typeof(OptionSetValueCollection); } //else //{ // OptionSetMetadataBase attributeOptionSet = TypeMappingService.GetAttributeOptionSet(attributeMetadata); // if (attributeOptionSet != null) // { // CodeTypeReference codeTypeReference = this.BuildCodeTypeReferenceForOptionSet(attributeMetadata.LogicalName, entityMetadata, attributeMetadata, attributeOptionSet, iCodeGenerationServiceProvider); // if (!codeTypeReference.BaseType.Equals("System.Object")) // { // return codeTypeReference; // } // if (key.Equals(AttributeTypeCode.Picklist) || key.Equals(AttributeTypeCode.Status)) // { // type = typeof(OptionSetValue); // } // } //} } if (type.IsValueType) { type = typeof(Nullable <>).MakeGenericType(type); } return(TypeMappingService.TypeRef(type)); }
public string GetNameForResponseField( CodeGenerationSdkMessageResponse response , Entities.SdkMessageResponseField responseField , ICodeGenerationServiceProvider iCodeGenerationServiceProvider ) { if (this._knowNames.ContainsKey(response.Id.ToString() + responseField.Position.GetValueOrDefault().ToString(CultureInfo.InvariantCulture))) { return(this._knowNames[response.Id.ToString() + responseField.Position.GetValueOrDefault().ToString(CultureInfo.InvariantCulture)]); } string validName = NamingService.CreateValidName(responseField.Name); this._knowNames.Add(response.Id.ToString() + responseField.Position.GetValueOrDefault().ToString(CultureInfo.InvariantCulture), validName); return(validName); }
public string GetNameForMessagePair( CodeGenerationSdkMessagePair messagePair , ICodeGenerationServiceProvider iCodeGenerationServiceProvider ) { if (this._knowNames.ContainsKey(messagePair.Id.ToString())) { return(this._knowNames[messagePair.Id.ToString()]); } string validTypeName = this.CreateValidTypeName(messagePair.Request.Name); this._knowNames.Add(messagePair.Id.ToString(), validTypeName); return(validTypeName); }
public string GetNameForAttribute( EntityMetadata entityMetadata , AttributeMetadata attributeMetadata , ICodeGenerationServiceProvider iCodeGenerationServiceProvider) { string validName = NamingService.CreateValidName(StaticNamingService.GetNameForAttribute(attributeMetadata) ?? attributeMetadata.SchemaName); CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp"); if (!provider.IsValidIdentifier(validName)) { validName = "@" + validName; } return(validName); }
public string GetNameForEntity( EntityMetadata entityMetadata , ICodeGenerationServiceProvider iCodeGenerationServiceProvider ) { if (this._knowNames.ContainsKey(entityMetadata.MetadataId.Value.ToString())) { return(this._knowNames[entityMetadata.MetadataId.Value.ToString()]); } string validTypeName = this.CreateValidTypeName(string.IsNullOrEmpty(StaticNamingService.GetNameForEntity(entityMetadata)) ? entityMetadata.SchemaName : StaticNamingService.GetNameForEntity(entityMetadata)); this._knowNames.Add(entityMetadata.MetadataId.Value.ToString(), validTypeName); return(validTypeName); }
public bool GenerateRelationship( RelationshipMetadataBase relationshipMetadata , EntityMetadata otherEntityMetadata , CodeGenerationRelationshipType relationshipType , ICodeGenerationServiceProvider iCodeGenerationServiceProvider ) { if (otherEntityMetadata == null) { return(false); } if (relationshipType == CodeGenerationRelationshipType.ManyToManyRelationship) { if (!_config.GenerateManyToMany) { return(false); } } else if (relationshipType == CodeGenerationRelationshipType.OneToManyRelationship) { if (!_config.GenerateOneToMany) { return(false); } } else if (relationshipType == CodeGenerationRelationshipType.ManyToOneRelationship) { if (!_config.GenerateManyToOne) { return(false); } } else { return(false); } var generateEntity = GenerateEntity(otherEntityMetadata, iCodeGenerationServiceProvider); if (!generateEntity) { return(false); } return(true); }
private string GetNameForOptionSetInternal( EntityMetadata entityMetadata , OptionSetMetadata optionSetMetadata , ICodeGenerationServiceProvider iCodeGenerationServiceProvider ) { if (optionSetMetadata.OptionSetType == OptionSetType.State) { return(entityMetadata.SchemaName + "_StateCode"); } if (optionSetMetadata.OptionSetType == OptionSetType.Status) { return(entityMetadata.SchemaName + "_StatusCode"); } return(optionSetMetadata.Name); }
public bool GenerateAttribute( AttributeMetadata attributeMetadata , ICodeGenerationServiceProvider iCodeGenerationServiceProvider ) { if (!_config.GenerateAttributes) { return(false); } return(!this.IsNotExposedChildAttribute(attributeMetadata) && ( attributeMetadata.IsValidForCreate.GetValueOrDefault() || attributeMetadata.IsValidForRead.GetValueOrDefault() || attributeMetadata.IsValidForUpdate.GetValueOrDefault() )); }
public string GetNameForAttributeAsEntityProperty( EntityMetadata entityMetadata , AttributeMetadata attributeMetadata , ICodeGenerationServiceProvider iCodeGenerationServiceProvider ) { if (this._knowNames.ContainsKey(entityMetadata.MetadataId.Value.ToString() + attributeMetadata.MetadataId.Value)) { return(this._knowNames[entityMetadata.MetadataId.Value.ToString() + attributeMetadata.MetadataId.Value]); } var validName = GetNameForAttribute(entityMetadata, attributeMetadata, iCodeGenerationServiceProvider); validName = ResolveConflictName(validName, s => this._reservedAttributeNames.Contains(s) || string.Equals(s, _typeName, StringComparison.InvariantCultureIgnoreCase)); this._knowNames.Add(entityMetadata.MetadataId.Value.ToString() + attributeMetadata.MetadataId.Value, validName); return(validName); }
public string GetNameForOptionSet( EntityMetadata entityMetadata , OptionSetMetadata optionSetMetadata , ICodeGenerationServiceProvider iCodeGenerationServiceProvider ) { if (this._knowNames.ContainsKey(optionSetMetadata.MetadataId.Value.ToString())) { return(this._knowNames[optionSetMetadata.MetadataId.Value.ToString()]); } string name = GetNameForOptionSetInternal(entityMetadata, optionSetMetadata, iCodeGenerationServiceProvider); name = this.CreateValidTypeName(name); this._knowNames.Add(optionSetMetadata.MetadataId.Value.ToString(), name); return(name); }
private CodeTypeReference BuildCodeTypeReferenceForPartyList(ICodeGenerationServiceProvider iCodeGenerationServiceProvider) { EntityMetadata entityMetadata = iCodeGenerationServiceProvider.MetadataProviderService.GetEntityMetadata("activityparty"); if (entityMetadata != null) { if (!iCodeGenerationServiceProvider.CodeWriterFilterService.GenerateEntity(entityMetadata, iCodeGenerationServiceProvider)) { entityMetadata = null; } } if (entityMetadata == null) { return(TypeMappingService.TypeRef(typeof(IEnumerable <>), TypeMappingService.TypeRef(typeof(Entity)))); } return(TypeMappingService.TypeRef(typeof(IEnumerable <>), this.TypeRef(iCodeGenerationServiceProvider.NamingService.GetNameForEntity(entityMetadata, iCodeGenerationServiceProvider)))); }
public string GetNameForOption( OptionSetMetadata optionSetMetadata , OptionMetadata optionMetadata , ICodeGenerationServiceProvider iCodeGenerationServiceProvider ) { if (this._knowNames.ContainsKey(optionSetMetadata.MetadataId.Value.ToString() + optionMetadata.Value.Value.ToString(CultureInfo.InvariantCulture))) { return(this._knowNames[optionSetMetadata.MetadataId.Value.ToString() + optionMetadata.Value.Value.ToString(CultureInfo.InvariantCulture)]); } string name = string.Empty; StateOptionMetadata stateOptionMetadata = optionMetadata as StateOptionMetadata; if (stateOptionMetadata != null) { name = stateOptionMetadata.InvariantName; } else { foreach (LocalizedLabel localizedLabel in optionMetadata.Label.LocalizedLabels) { if (localizedLabel.LanguageCode == 1033) { name = localizedLabel.Label; } } } if (string.IsNullOrEmpty(name)) { name = string.Format(CultureInfo.InvariantCulture, "UnknownLabel{0}", (object)optionMetadata.Value.Value); } string validName = NamingService.CreateValidName(name); this._knowNames.Add(optionSetMetadata.MetadataId.Value.ToString() + optionMetadata.Value.Value.ToString(CultureInfo.InvariantCulture), validName); return(validName); }
public bool IgnoreOptionSet( OptionSetMetadata optionSetMetadata , AttributeMetadata attributeMetadata , ICodeGenerationServiceProvider iCodeGenerationServiceProvider ) { if (optionSetMetadata.Options == null || !optionSetMetadata.Options.Any(o => o.Value.HasValue) ) { return(true); } if (attributeMetadata != null && CreateFileHandler.IgnoreAttribute(attributeMetadata.EntityLogicalName, attributeMetadata.LogicalName) ) { return(true); } return(false); }
public bool GenerateEntity( EntityMetadata entityMetadata , ICodeGenerationServiceProvider iCodeGenerationServiceProvider ) { if (entityMetadata == null) { return(false); } return(true); //if (entityMetadata.IsIntersect.GetValueOrDefault() // || string.Equals(entityMetadata.LogicalName, "activityparty", StringComparison.InvariantCultureIgnoreCase) // //|| string.Equals(entityMetadata.LogicalName, "calendarrule", StringComparison.InvariantCultureIgnoreCase) //) //{ // return true; //} //IMetadataProviderService service = (IMetadataProviderService)services.GetService(typeof(IMetadataProviderService)); //foreach (SdkMessage sdkMessage in (!(service is IMetadataProviderService2) ? service.LoadMetadata() : ((IMetadataProviderService2)service).LoadMetadata(services)).Messages.MessageCollection.Values) //{ // if (!sdkMessage.IsPrivate) // { // foreach (SdkMessageFilter sdkMessageFilter in sdkMessage.SdkMessageFilters.Values) // { // if (entityMetadata.ObjectTypeCode.HasValue && sdkMessageFilter.PrimaryObjectTypeCode == entityMetadata.ObjectTypeCode.Value // || entityMetadata.ObjectTypeCode.HasValue && sdkMessageFilter.SecondaryObjectTypeCode == entityMetadata.ObjectTypeCode.Value // ) // { // return true; // } // } // } //} }
public IEnumerable <string> GetCommentsForOption(OptionSetMetadata optionSetMetadata, OptionMetadata optionMetadata, ICodeGenerationServiceProvider iCodeGenerationServiceProvider) { return(Enumerable.Empty <string>()); }
public CodeTypeReference GetTypeForOptionSet(EntityMetadata entityMetadata, OptionSetMetadata optionSetMetadata, ICodeGenerationServiceProvider iCodeGenerationServiceProvider) { return(this.TypeRef(iCodeGenerationServiceProvider.NamingService.GetNameForOptionSet(entityMetadata, optionSetMetadata, iCodeGenerationServiceProvider))); }
public CodeTypeReference GetTypeForResponseField(Entities.SdkMessageResponseField responseField, ICodeGenerationServiceProvider iCodeGenerationServiceProvider) { return(this.GetTypeForField(responseField.ClrFormatter, false)); }
public CodeTypeReference GetTypeForRequestField(CodeGenerationSdkMessageRequest request, Entities.SdkMessageRequestField requestField, ICodeGenerationServiceProvider iCodeGenerationServiceProvider) { var isGeneric = request.MessagePair.Message.IsGeneric(requestField); return(this.GetTypeForField(requestField.ClrParser, isGeneric)); }
public IEnumerable <string> GetCommentsForEntitySet(EntityMetadata entityMetadata, ICodeGenerationServiceProvider iCodeGenerationServiceProvider) { CodeTypeReference typeForEntity = iCodeGenerationServiceProvider.TypeMappingService.GetTypeForEntity(entityMetadata, iCodeGenerationServiceProvider); return(new[] { string.Format(CultureInfo.InvariantCulture, "Gets a binding to the set of all <see cref=\"{0}\"/> entities.", typeForEntity.BaseType) }); }
public IEnumerable <string> GetCommentsForServiceContextConstructor(ICodeGenerationServiceProvider iCodeGenerationServiceProvider) { return(new[] { "Constructor" }); }
public IEnumerable <string> GetCommentsForMessagePair(CodeGenerationSdkMessagePair messagePair, ICodeGenerationServiceProvider iCodeGenerationServiceProvider) { return(Enumerable.Empty <string>()); }
public bool GenerateServiceContext(ICodeGenerationServiceProvider iCodeGenerationServiceProvider) { return(this._config.GenerateServiceContext); }
public IEnumerable <string> GetCommentsForResponseField(CodeGenerationSdkMessageResponse response, Entities.SdkMessageResponseField responseField, ICodeGenerationServiceProvider iCodeGenerationServiceProvider) { return(Enumerable.Empty <string>()); }