/// <summary> /// Initializes a new instance of the <see cref="BeyovaPortalController" /> class. /// </summary> /// <param name="moduleName">Name of the module.</param> /// <param name="apiTracking">The API tracking.</param> /// <param name="returnExceptionAsFriendly">if set to <c>true</c> [return exception as friendly].</param> protected BeyovaPortalController(string moduleName, IApiTracking apiTracking = null, bool returnExceptionAsFriendly = false) : base(apiTracking, returnExceptionAsFriendly) { this.ModuleName = moduleName.SafeToString(this.GetDefaultModuleName()); }
/// <summary> /// Initializes the by custom assembly attributes. /// </summary> private static void InitializeByCustomAssemblyAttributes() { string currentAssemblyName = null; //Api track type need to stay on top and out of this. It is set in loop and be used after loop, to ensure required parameter from configuration is initialized. List <Type> apiTrackTypes = new List <Type>(); try { foreach (var assembly in EnvironmentCore.DescendingAssemblyDependencyChain) { BeyovaComponentInfo componentInfo = null; var assemblyName = assembly.GetName(); currentAssemblyName = assemblyName.Name; if (!assemblyName.IsSystemAssembly()) { #region BeyovaComponentAttribute var componentAttribute = assembly.GetCustomAttribute <BeyovaComponentAttribute>(); if (componentAttribute != null) { componentInfo = componentAttribute.UnderlyingObject; // APITRACKING if (ApiTracking == null) { apiTrackTypes.Add(componentInfo?.ApiTrackingType); } } #endregion BeyovaComponentAttribute #region DataSecurityAttribute var dataSecurty = assembly.GetCustomAttribute <DataSecurityAttribute>(); if (dataSecurty != null) { if (DataSecurityProvider == null) { DataSecurityProvider = dataSecurty.DataSecurityProvider; } } #endregion DataSecurityAttribute #region BeyovaConfigurationLoaderAttribute var configurationLoaders = assembly.GetCustomAttributes <BeyovaConfigurationLoaderAttribute>(); if (configurationLoaders.HasItem()) { foreach (var one in configurationLoaders) { ConfigurationHub.RegisterConfigurationReader(one?.Loader?.GetReader(currentAssemblyName, componentInfo?.Version)); } } else { // To be obsoleted //var configurationAttribute = assembly.GetCustomAttribute<BeyovaConfigurationAttribute>(); //if (configurationAttribute != null) //{ // ConfigurationHub.RegisterConfigurationReader(new JsonConfigurationReader(currentAssemblyName, componentInfo?.Version, nameof(JsonConfigurationReader), configurationAttribute.Options)); //} } #endregion BeyovaConfigurationLoaderAttribute #region BeyovaCultureResourceAttribute var cultureResourceAttribute = assembly.GetCustomAttribute <BeyovaCultureResourceAttribute>(); if (cultureResourceAttribute != null) { if (!string.IsNullOrWhiteSpace(cultureResourceAttribute.UnderlyingObject.DefaultCultureCode)) { _resourceHub.DefaultCultureInfo = cultureResourceAttribute.UnderlyingObject.DefaultCultureCode.AsCultureInfo(); } cultureResourceAttribute?.UnderlyingObject.FillResources(_resourceHub._cultureBasedResources); } #endregion BeyovaCultureResourceAttribute } } if (ApiTracking == null && apiTrackTypes.HasItem()) { foreach (var one in apiTrackTypes) { var instance = one.CreateInstance() as IApiTracking; if (instance != null) { ApiTracking = instance; break; } } } // To check and ensure if (DataSecurityProvider == null) { DataSecurityProvider = DefaultDataSecurityProvider.Instance; } } catch (Exception ex) { throw ex.Handle(new { currentAssemblyName }); } }
/// <summary> /// Initializes a new instance of the <see cref="BeyovaBaseController" /> class. /// </summary> /// <param name="apiTracking">The API tracking.</param> /// <param name="returnExceptionAsFriendly">if set to <c>true</c> [return exception as friendly].</param> protected BeyovaBaseController(IApiTracking apiTracking = null, bool returnExceptionAsFriendly = false) { this.apiTracking = apiTracking ?? Framework.ApiTracking; this.returnExceptionAsFriendly = returnExceptionAsFriendly; }
/// <summary> /// Initializes a new instance of the <see cref="T:Beyova.Web.BeyovaBaseController" /> class. /// </summary> /// <param name="apiTracking">The API tracking.</param> /// <param name="returnExceptionAsFriendly">if set to <c>true</c> [return exception as friendly].</param> public ErrorController(IApiTracking apiTracking, bool returnExceptionAsFriendly = false) : base("Error", apiTracking, returnExceptionAsFriendly) { }