Example #1
0
        public void InitializeWebService(HttpListenerContext _Context, string _MatchedPrefix, IBTracingServiceInterface _TracingService = null)
        {
            if (bInitialized)
            {
                return;
            }
            bInitialized = true;

            TracingService = _TracingService;

            var SplittedRawUrl        = _Context.Request.RawUrl.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
            var SplittedMatchedPrefix = _MatchedPrefix.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);

            if (SplittedRawUrl != null && SplittedMatchedPrefix != null && SplittedRawUrl.Length >= SplittedMatchedPrefix.Length)
            {
                for (int i = 1; i < SplittedMatchedPrefix.Length; i++)
                {
                    if (SplittedMatchedPrefix[i] == "*")
                    {
                        RestfulUrlParameters[SplittedRawUrl[i - 1]] = SplittedRawUrl[i];
                    }
                }
            }

            var Params = BWebUtilities.AnalyzeURLParametersFromRawURL(_Context.Request.RawUrl);

            if (Params != null)
            {
                foreach (var Param in Params)
                {
                    UrlParameters[Param.Item1] = Param.Item2;
                }
            }
        }
Example #2
0
        public bool WithTracingService()
        {
            /*
             * Tracing service initialization
             */
            TracingService = new BTracingServiceGC(RequiredEnvironmentVariables["GOOGLE_CLOUD_PROJECT_ID"], ProgramID,
                                                   (string Message) =>
            {
                LoggingService.WriteLogs(BLoggingServiceMessageUtility.Single(EBLoggingServiceLogType.Critical, Message), ProgramID, "Initialization");
            });

            if (TracingService == null || !TracingService.HasInitializationSucceed())
            {
                LoggingService.WriteLogs(BLoggingServiceMessageUtility.Single(EBLoggingServiceLogType.Critical, "Tracing service initialization has failed."), ProgramID, "Initialization");
                return(false);
            }

            return(true);
        }
Example #3
0
        public bool WithTracingService()
        {
            /*
             * Tracing service initialization
             */
            if (!RequiredEnvironmentVariables.ContainsKey("ZIPKIN_SERVER_IP") ||
                !RequiredEnvironmentVariables.ContainsKey("ZIPKIN_SERVER_PORT"))
            {
                LoggingService.WriteLogs(BLoggingServiceMessageUtility.Single(EBLoggingServiceLogType.Critical, "ZIPKIN_SERVER_IP, ZIPKIN_SERVER_PORT parameters must be provided and valid."), ProgramID, "Initialization");
                return(false);
            }

            var LoggingServiceLogger = new BLoggingServiceLoggerZipkin(
                LoggingService,
                PreLoggingServiceLogger,
                ProgramID);

            if (!int.TryParse(RequiredEnvironmentVariables["ZIPKIN_SERVER_PORT"], out int ZipkinServerPort))
            {
                LoggingService.WriteLogs(BLoggingServiceMessageUtility.Single(EBLoggingServiceLogType.Critical, "Given zipkin server port is invalid."), ProgramID, "Initialization");
                return(false);
            }

            TracingService = new BTracingServiceZipkin(
                LoggingServiceLogger,
                ProgramID,
                RequiredEnvironmentVariables["ZIPKIN_SERVER_IP"],
                ZipkinServerPort,
                (string Message) =>
            {
                LoggingService.WriteLogs(BLoggingServiceMessageUtility.Single(EBLoggingServiceLogType.Critical, Message), ProgramID, "Initialization");
            });

            if (TracingService == null || !TracingService.HasInitializationSucceed())
            {
                LoggingService.WriteLogs(BLoggingServiceMessageUtility.Single(EBLoggingServiceLogType.Critical, "Tracing service initialization has failed."), ProgramID, "Initialization");
                return(false);
            }

            return(true);
        }
Example #4
0
        public BWebService(BWebPrefixStructure[] _PrefixesToListen, int _ServerPort = 8080, IBTracingServiceInterface _TracingService = null, string _OverrideServerNames = null)
        {
            if (_PrefixesToListen == null || _PrefixesToListen.Length == 0)
            {
                throw new ArgumentException("PrefixesToListen");
            }

            if (_OverrideServerNames == null)
            {
                _OverrideServerNames = "http://*";
            }

            ServerPort = _ServerPort;

            TracingService = _TracingService;

            if (_OverrideServerNames != null && _OverrideServerNames.Length > 0)
            {
                string[] _OverrideServerNameArray = _OverrideServerNames.Split(';');
                if (_OverrideServerNameArray != null && _OverrideServerNameArray.Length > 0)
                {
                    ServerNames.Clear();
                    foreach (var _OverrideServerName in _OverrideServerNameArray)
                    {
                        ServerNames.Add(_OverrideServerName);
                    }
                }
            }

            foreach (string ServerName in ServerNames)
            {
                Listener.Prefixes.Add(ServerName + ":" + ServerPort + "/");
            }

            if (Listener.Prefixes.Count == 0)
            {
                throw new ArgumentException("Invalid prefixes (Count 0)");
            }

            PrefixesToListen = _PrefixesToListen;
        }