protected override void AddTemplateParameters(IDictionary <string, object> templateParameters) { base.AddTemplateParameters(templateParameters); CodeType codeType = base.Model.ModelType.CodeType; ModelMetadata codeModelModelMetadatum = new CodeModelModelMetadata(codeType); if ((int)codeModelModelMetadatum.PrimaryKeys.Length == 0) { throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, "The entity type '{0}' has no key defined. Define a key for this entity type.", codeType.Name)); } templateParameters.Add("ModelMetadata", codeModelModelMetadatum); List <CodeType> codeTypes = new List <CodeType>() { codeType }; templateParameters.Add("RequiredNamespaces", base.GetRequiredNamespaces(codeTypes)); templateParameters.Add("ModelTypeNamespace", (codeType.Namespace != null ? codeType.Namespace.FullName : string.Empty)); templateParameters.Add("ModelTypeName", codeType.Name); templateParameters.Add("UseAsync", base.Model.IsAsyncSelected); IEntityFrameworkService service = base.Context.ServiceProvider.GetService <IEntityFrameworkService>(); string pluralizedWord = service.GetPluralizedWord(codeType.Name, CultureInfo.InvariantCulture); templateParameters.Add("EntitySetName", pluralizedWord); CodeDomProvider codeDomProvider = ValidationUtil.GenerateCodeDomProvider(ProjectExtensions.GetCodeLanguage(base.Model.ActiveProject)); string str = codeDomProvider.CreateEscapedIdentifier(codeType.Name.ToLowerInvariantFirstChar()); string str1 = codeDomProvider.CreateEscapedIdentifier(pluralizedWord.ToLowerInvariantFirstChar()); templateParameters.Add("ModelVariable", str); templateParameters.Add("EntitySetVariable", str1); templateParameters.Add("ODataModificationMessage", "The WebApiConfig class may require additional changes to add a route for this controller. Merge these statements into the Register method of the WebApiConfig class as applicable. Note that OData URLs are case sensitive."); templateParameters.Add("IsLegacyOdataVersion", base.Framework.IsODataLegacy(base.Context)); }
protected override void AddTemplateParameters(IDictionary <string, object> templateParameters) { base.AddTemplateParameters(templateParameters); CodeType codeType = Model.ModelType.CodeType; ModelMetadata metadata = new CodeModelModelMetadata(codeType); if (metadata.PrimaryKeys.Length == 0) { throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, Resources.NoKeyDefinedError, codeType.Name)); } templateParameters.Add("ModelMetadata", metadata); HashSet <string> requiredNamespaces = GetRequiredNamespaces(new List <CodeType>() { codeType }); templateParameters.Add("RequiredNamespaces", requiredNamespaces); string modelTypeNamespace = codeType.Namespace != null ? codeType.Namespace.FullName : String.Empty; templateParameters.Add("ModelTypeNamespace", modelTypeNamespace); templateParameters.Add("ModelTypeName", codeType.Name); templateParameters.Add("UseAsync", Model.IsAsyncSelected); IEntityFrameworkService efService = Context.ServiceProvider.GetService <IEntityFrameworkService>(); string entitySetName = efService.GetPluralizedWord(codeType.Name, CultureInfo.InvariantCulture); templateParameters.Add("EntitySetName", entitySetName); CodeDomProvider provider = ValidationUtil.GenerateCodeDomProvider(Model.ActiveProject.GetCodeLanguage()); string modelVariable = provider.CreateEscapedIdentifier(codeType.Name.ToLowerInvariantFirstChar()); string entitySetVariable = provider.CreateEscapedIdentifier(entitySetName.ToLowerInvariantFirstChar()); templateParameters.Add("ModelVariable", modelVariable); templateParameters.Add("EntitySetVariable", entitySetVariable); templateParameters.Add("ODataModificationMessage", Resources.ScaffoldODataModificationMessage); templateParameters.Add("IsLegacyOdataVersion", Framework.IsODataLegacy(Context)); }
protected virtual void AddTemplateParameters(IDictionary <string, object> templateParameters) { if (templateParameters == null) { throw new ArgumentNullException("templateParameters"); } if (String.IsNullOrEmpty(Model.ControllerName)) { throw new InvalidOperationException(Resources.InvalidControllerName); } templateParameters.Add("ControllerName", Model.ControllerName); templateParameters.Add("ControllerNamespace", Model.ControllerNamespace); templateParameters.Add("AreaName", Model.AreaName ?? String.Empty); templateParameters.Add("ServiceName", Model.ServiceType.ShortTypeName); System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"\b([_\d\w]*)$"); string viewModelShortName = regex.Match(Model.ViewModelTypeName).Result("$1"); templateParameters.Add("ViewModelPropertys", Model.ViewModelPropertys.Where(p => p.Checked).ToList()); CodeType modelCodeType = Context.ServiceProvider.GetService <ICodeTypeService>().GetCodeType(Context.ActiveProject, Model.ModelType.TypeName); CodeModelModelMetadata modelMetadata = new CodeModelModelMetadata(modelCodeType); CodeType modelType = Model.ModelType.CodeType; templateParameters.Add("ModelMetadata", modelMetadata); string modelTypeNamespace = modelType.Namespace != null ? modelType.Namespace.FullName : String.Empty; templateParameters.Add("ModelTypeNamespace", modelTypeNamespace); string viewModelNamespace = Model.ActiveProject.Name + "." + CommonFolderNames.Models; templateParameters.Add("ViewModelNamespace", viewModelNamespace); string validatorNamespace = Model.ActiveProject.Name + "." + CommonFolderNames.Validator; templateParameters.Add("ValidatorNamespace", validatorNamespace); string serviceNamespace = Model.ServiceProject.GetDefaultNamespace(); templateParameters.Add("ServiceNamespace", serviceNamespace); string serviceShortTypeName = Model.ServiceType.ShortTypeName; templateParameters.Add("ServiceShortTypeName", serviceShortTypeName); string viewModelShortTypeName = Model.ViewModelType.ShortTypeName; templateParameters.Add("ViewModelShortTypeName", viewModelShortName); HashSet <string> requiredNamespaces = GetRequiredNamespaces(new List <CodeType>() { modelType }); templateParameters.Add("RequiredNamespaces", requiredNamespaces); string modelTypeName = modelType.Name; templateParameters.Add("ModelTypeName", modelTypeName); templateParameters.Add("UseAsync", Model.IsAsyncSelected); CodeDomProvider provider = ValidationUtil.GenerateCodeDomProvider(Model.ActiveProject.GetCodeLanguage()); string modelVariable = provider.CreateEscapedIdentifier(Model.ModelType.ShortTypeName.ToLowerInvariantFirstChar()); templateParameters.Add("ModelVariable", modelVariable); }