Example #1
0
        public async Task InvokeAsync(HttpContext context,
                                      IServicePack servicePack,
                                      Common2DBContext common2DBContext,
                                      PersonalDBShardManager.PersonalShard001 personalShard001,
                                      PersonalDBShardManager.PersonalShard002 personalShard002,
                                      PersonalDBShardManager.PersonalShard003 personalShard003,
                                      PersonalDBShardManager.PersonalShard004 personalShard004,
                                      PersonalDBShardManager.PersonalShard005 personalShard005,
                                      PersonalDBShardManager.PersonalShard006 personalShard006,
                                      PersonalDBShardManager.PersonalShard007 personalShard007,
                                      PersonalDBShardManager.PersonalShard008 personalShard008,
                                      ILogObj logObj)
        {
            servicePack.Common2DBContext       = common2DBContext;
            servicePack.PersonalDBShardManager = new PersonalDBShardManager(
                personalShard001,
                personalShard002,
                personalShard003,
                personalShard004,
                personalShard005,
                personalShard006,
                personalShard007,
                personalShard008
                );

            //log
            servicePack.Log = logObj;

            await _next(context);

            Logger.Logging(logObj);
        }
Example #2
0
        public async Task InvokeAsync(HttpContext context,
                                      IServicePack servicePack,
                                      Common1DBContext common1DBContext,
                                      Common2DBContext common2DBContext,
                                      Common3DBContext common3DBContext,
                                      PersonalDBShardManager.PersonalShard001 personalShard001,
                                      PersonalDBShardManager.PersonalShard002 personalShard002,
                                      PersonalDBShardManager.PersonalShard003 personalShard003,
                                      PersonalDBShardManager.PersonalShard004 personalShard004,
                                      PersonalDBShardManager.PersonalShard005 personalShard005,
                                      PersonalDBShardManager.PersonalShard006 personalShard006,
                                      PersonalDBShardManager.PersonalShard007 personalShard007,
                                      PersonalDBShardManager.PersonalShard008 personalShard008,
                                      ILogObj logObj)
        {
            //masterdata
            servicePack.MasterData = MasterDataLoader.LatestMasterData;

            //db context
            servicePack.Common1DBContext       = common1DBContext;
            servicePack.Common2DBContext       = common2DBContext;
            servicePack.Common3DBContext       = common3DBContext;
            servicePack.PersonalDBShardManager = new PersonalDBShardManager(
                personalShard001,
                personalShard002,
                personalShard003,
                personalShard004,
                personalShard005,
                personalShard006,
                personalShard007,
                personalShard008
                );

            //log
            servicePack.Log = logObj;


            var path = context.Request.Path.ToString();

            if (path.StartsWith("/api/"))
            {
                path = path.Substring("/api/".Length);
                path = path.Replace('/', '_').ToLower();

                ProtocolModels.ProtocolCode protocolcode;
                if (!Enum.TryParse(path, out protocolcode))
                {
                    context.Response.StatusCode = (int)HttpStatusCode.Gone;
                    return;
                }

                servicePack.ProtocolCode = protocolcode;
            }

            await _next(context);

            Logger.Logging(logObj);
        }
Example #3
0
        public async Task InvokeAsync(HttpContext context
                                      , ILogObj logObj
                                      )
        {
            var log = new LogModels.HttpRequest
            {
                RequestDate = DateTime.UtcNow,
                Url         = context.Request.Path,
                TraceId     = context.TraceIdentifier,
                RemoteIp    = context.Connection.RemoteIpAddress.ToString(),
            };

            logObj.AddChild(log);


            var sw = new System.Diagnostics.Stopwatch();

            sw.Start();

            var responseBodyOrg = context.Response.Body;
            var responseBody    = new System.IO.MemoryStream();

            context.Response.Body = responseBody;

            ////////////////////////////
            //
            await _next(context);

            //
            ////////////////////////////

            var bytes = new byte[responseBody.Length];

            responseBody.Position = 0;
            await responseBody.ReadAsync(bytes, 0, (int)responseBody.Length);

            //var response = System.Text.Encoding.UTF8.GetString(bytes);
            var response = (1000000 < responseBody.Length)
                                ?"Interim measure for error."
                                :System.Text.Encoding.UTF8.GetString(bytes);

            responseBody.Position = 0;
            await responseBody.CopyToAsync(responseBodyOrg);

            sw.Stop();

            log.Response     = response;
            log.StatusCode   = context.Response.StatusCode;
            log.ElapsedTime  = sw.ElapsedMilliseconds;
            log.ResponseDate = DateTime.UtcNow;
        }
Example #4
0
        public async Task InvokeAsync(HttpContext context,
                                      IServicePack servicePack,
                                      Common1DBContext common1DBContext,
                                      PersonalDBShardManager.PersonalShard001 personalShard001,
                                      PersonalDBShardManager.PersonalShard002 personalShard002,
                                      PersonalDBShardManager.PersonalShard003 personalShard003,
                                      PersonalDBShardManager.PersonalShard004 personalShard004,
                                      PersonalDBShardManager.PersonalShard005 personalShard005,
                                      PersonalDBShardManager.PersonalShard006 personalShard006,
                                      PersonalDBShardManager.PersonalShard007 personalShard007,
                                      PersonalDBShardManager.PersonalShard008 personalShard008,
                                      ILogObj logObj)
        {
            servicePack.Common1DBContext       = common1DBContext;
            servicePack.PersonalDBShardManager = new PersonalDBShardManager(
                personalShard001,
                personalShard002,
                personalShard003,
                personalShard004,
                personalShard005,
                personalShard006,
                personalShard007,
                personalShard008
                );

            //log
            servicePack.Log = logObj;

            if (Settings.MatchingArea == evolib.MatchingArea.Unknown &&
                context.Request.Path != "/api/Setup/Set" &&
                context.Request.Path != "/HealthCheck"
                )
            {
                context.Response.StatusCode = (int)HttpStatusCode.ServiceUnavailable;
                Logger.Logging(new LogObj().AddChild(new LogModels.ErrorReport
                {
                    Msg = "Setup is not complte!",
                }));
                return;
            }

            await _next(context);

            Logger.Logging(logObj);
        }
Example #5
0
        public static void Logging(ILogObj logObj, LogLevel level = LogLevel.Info)
        {
            lock (LockObj)
            {
                LoggerAll.SetProperty("Tag", $"App.{logObj.Tag()}");

                var log = RootLog.Insert(RootLog.LastIndexOf('}'), $",{logObj.Serialize()}");

                Exception ex = null;
                switch (level)
                {
                case LogLevel.Trace:
                    LoggerAll.Trace(ex, log);
                    break;

                case LogLevel.Debug:
                    LoggerAll.Debug(ex, log);
                    break;

                case LogLevel.Info:
                    LoggerAll.Info(ex, log);
                    break;

                case LogLevel.Warn:
                    LoggerAll.Warn(ex, log);
                    break;

                case LogLevel.Error:
                    LoggerAll.Error(ex, log);
                    break;

                case LogLevel.Fatal:
                    LoggerAll.Fatal(ex, log);
                    break;

                default:
                    break;
                }
            }
        }