Example #1
0
        private static HttpClient GetCloudControlClient(SampleAppSettings appSettings)
        {
            string serviceUri = CLOUDCONTROLSERVICE_EUREKA_NAME;

            if (appSettings.CloudControlServiceAddr.Assigned())
            {
                serviceUri = appSettings.CloudControlServiceAddr;
            }

            Uri requestUri = new Uri(((serviceUri.StartsWith("http://") || serviceUri.StartsWith("https://")) ? "": "http://") + serviceUri);
            //
            var client = requestUri.NewClient();

            if (!client.DefaultRequestHeaders.Contains("client_id"))
            {
                client.DefaultRequestHeaders.Add("client_id", NAFInitializationInfo.Current.AppSecurityID.ToString());
            }

            if (!client.DefaultRequestHeaders.Contains("client_secret"))
            {
                client.DefaultRequestHeaders.Add("client_secret", Startup.GetSecuritySecret().ToString());
            }

            return(client);
        }
Example #2
0
        public static Guid GetCurrentTenantId(SampleAppSettings appSettings)
        {
            return(new Guid("96db0bb9-0fa8-4210-ba7e-4d2d0fd8eb94"));

            // Uncoment to fetch tenantid from 'ctxid' http header
            //return HttpContextExtensions.GetCurrentContextId();
        }
Example #3
0
        protected override void InitializeApp(IServiceCollection services)
        {
            _sampleAppSettings = NAFSettings.Current.ReadAppSettings <SampleAppSettings>(throwIfNotFound: false) ?? new SampleAppSettings(true);

            // If you have a singleton backend class, inject it as in below
            services.AddSingleton <ISampleDIService>(new SampleDIService(_sampleAppSettings));

            // Add repository classes
            services.Scan(scan => scan.FromAssembliesOf(typeof(Repository <,>)).AddClasses(classes => classes.AssignableTo(typeof(Repository <,>))));

            // Add EF related DI services
            services.AddScoped <DbContext, SampleAppBaseContext>(provider =>
            {
                return(ResolveDbContext(provider));
            });

            // Add current settings
            services.AddSingleton(_sampleAppSettings);

            //Add kafka client
            //InternalMessagingClientExtensions.AddInternalMessagingClient(NAFSettings.Current, new NAFCore.InternalMessaging.Client.Settings.InternalMessagingClientInstanceInfo()
            //{
            //    OnReceiveMessage = (message) =>
            //    {
            //        NLogger.Instance().Info("New message:" + message.Payload);
            //    },
            //    OwnTopicsInfo = InternalMessagingHelper.Instance().GetOwnTopicsInfo(),
            //    SubscriptionTopicIds = new System.Collections.Generic.List<string>() { "kafkadiagnose" },
            //    ClientType = NAFCore.InternalMessaging.Client.Settings.MessagingClientType.ProducerConsumer,
            //});
        }
Example #4
0
        private static async Task Inner_RegisterToMenuService(SampleAppSettings appSettings, MenuRegistrationRequest newRequest)
        {
            var apiPath = MENUSERVICE_BASE_API_PATH + "/api/Menus/PostApplicationMenus?appId={0}";

            apiPath = string.Format(apiPath, NAFInitializationInfo.Current.AppSecurityID.ToString());
            //
            var client = GetMenuClient(appSettings);

            var content = new StringContent(NSerializer.JSONSimple.Serialize(new MenuRegistrationRequest[] { newRequest }), Encoding.UTF8, "application/json");

            content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

            var result = await client.PostAsync(apiPath, content).ConfigureAwait(false);

            if (!result.IsSuccessStatusCode)
            {
                var responseContent = await result.Content.ReadAsStringAsync().ConfigureAwait(false);

                NLogger.Instance().Error($"Menu registration error: {responseContent}");
            }
            else
            {
                NLogger.Instance().Info($"Menu registration completed");
            }
        }
Example #5
0
        private static async Task <JArray> Inner_GetTenantAppSettings(SampleAppSettings appSettings, Guid tenantId)
        {
            var apiPath = CLOUDCONTROLSERVICE_BASE_API_PATH + "api/tenants/{0}/applicationSegments/{1}/settings";

            apiPath = string.Format(apiPath, tenantId, NAFInitializationInfo.Current.AppSecurityID.ToString());
            //
            var client = GetCloudControlClient(appSettings);
            var result = await client.GetAsync(apiPath).ConfigureAwait(false);

            var responseContent = await result.Content.ReadAsStringAsync().ConfigureAwait(false);

            return(NSerializer.JSONSimple.Deserialize <JArray>(responseContent));
        }
Example #6
0
        public static object GetTenantAppSettingsList(SampleAppSettings appSettings, Guid tenantId)
        {
            if (tenantId != Guid.Empty && tenantId != DefaultValueExtensions.LOGO_TenantGuid())
            {
                object cachedSettings = null;
                if (!_tenantAppSettings.TryGetValue(tenantId, out cachedSettings))
                {
                    var result = Inner_GetTenantAppSettings(appSettings, tenantId).GetAwaiter().GetResult();

                    _tenantAppSettings.TryAdd(tenantId, result);
                    return(result);
                }

                return(cachedSettings);
            }
            return(null);
        }
Example #7
0
        // GenerateSampleConfig() and supporting methods
        private static void GenerateSampleConfig()
        {
            var jsonHelper      = _serviceProvider.GetRequiredService <IJsonHelper>();
            var encryptionUtils = _serviceProvider.GetRequiredService <IEncryptionUtils>();
            var environment     = _serviceProvider.GetRequiredService <IEnvironmentAbstraction>();
            var directory       = _serviceProvider.GetRequiredService <IDirectoryAbstraction>();
            var file            = _serviceProvider.GetRequiredService <IFileAbstraction>();

            // Generate sample configuration
            var config = new SampleAppSettings();

            config.RnCore.Encryption.Enabled                   = true;
            config.RnCore.Encryption.Key                       = RandomBytesString(encryptionUtils, 8);
            config.RnCore.Encryption.IV                        = RandomBytesString(encryptionUtils, 128);
            config.TimeTracker.Authentication.Secret           = RandomBytesString(encryptionUtils, 32);
            config.TimeTracker.Authentication.SessionLengthMin = 10080;
            var jsonConfig = jsonHelper.SerializeObject(config, true);

            // Ensure that the output directory exists
            var rootDir               = environment.CurrentDirectory.AppendIfMissing("\\");
            var generatedDir          = $"{rootDir}generated\\";
            var sampleAppSettingsFile = $"{generatedDir}appsettings.json";

            if (!directory.Exists(generatedDir))
            {
                directory.CreateDirectory(generatedDir);
            }

            // Dump generated "appsettings.json" file
            if (file.Exists(sampleAppSettingsFile))
            {
                file.Delete(sampleAppSettingsFile);
            }
            file.WriteAllText(sampleAppSettingsFile, jsonConfig);

            // Log that we are done
            Console.WriteLine("=======================================");
            Console.WriteLine("= Sample configuration file generated =");
            Console.WriteLine("=======================================");
            Console.WriteLine("A sample appsettings.json file was saved to:");
            Console.WriteLine();
            Console.WriteLine($"  {sampleAppSettingsFile}");
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="setting">IDMSettings</param>
        internal GenericDiagnosisService(SampleAppSettings setting)
        {
            _setting  = setting;
            Diagnoses = new List <Diagnosis>();

            List <NAFGuid> serviceKeyList = new List <NAFGuid>();
            List <NAFGuid> mustList       = new List <NAFGuid>();

            mustList.Add(ServiceList.Values.IDM);
            mustList.Add(ServiceList.Values.CloudControl);
            mustList.Add(ServiceList.Values.Menu);

            serviceKeyList.Add(ServiceList.Values.Settings);
            serviceKeyList.Add(ServiceList.Values.IDM);
            serviceKeyList.Add(ServiceList.Values.Menu);
            serviceKeyList.Add(ServiceList.Values.CloudControl);

            Diagnoses.AddRange(new ServiceDependencyChecker(serviceKeyList, mustList).Diagnoses);
        }
 public SampleDIService(SampleAppSettings settings)
 {
     Settings = settings;
 }
Example #10
0
 public static void RegisterToMenuService(SampleAppSettings appSettings, MenuRegistrationRequest newRequest)
 {
     Inner_RegisterToMenuService(appSettings, newRequest).GetAwaiter().GetResult();
 }