private void Write(IAppInfo appInfo, ISessionInfo sessionInfo, DateTime instant, int duration, string screen, string msisdn,
                           string screenType, string accessMode, string executedBy, int viewstateBytes, int sessionBytes, int sessionRequests)
        {
            Instant         = instant;
            Duration        = duration;
            Screen          = screen;
            SessionId       = sessionInfo.SessionID;
            EspaceId        = appInfo.eSpaceId;
            TenantId        = appInfo.TenantId;
            UserId          = sessionInfo.UserId;
            Msisdn          = msisdn;
            ScreenType      = screenType;
            AccessMode      = ScreenLogDefinition.NotNullAccessMode(accessMode);
            ExecutedBy      = executedBy;
            ViewstateBytes  = viewstateBytes;
            SessionBytes    = sessionBytes;
            SessionRequests = sessionRequests;

            RequestTracer reqTracer = RuntimePlatformUtils.GetRequestTracer();

            if (reqTracer != null)
            {
                RequestKey = reqTracer.RequestKey;
                ActionName = reqTracer.EntryActionName;
            }

            ClientIP        = RuntimePlatformUtils.GetRequestSourceForLogging()?.Left(MAX_CLIENT_IP_SIZE);
            EspaceName      = appInfo.eSpaceName;
            ApplicationName = appInfo.ApplicationName;
            ApplicationKey  = appInfo.ApplicationUIDAsKey;
            Username        = sessionInfo.UserName;

            log.Write();
        }
        public static void Log(ScreenLogDefinition screenLog)
        {
            try {
                if (!ApplicationMonitoringEnabled)
                {
                    return;
                }

                switch (screenLog.ScreenType)
                {
                case "WEB":

                    break;

                case "SMS":
                    break;

                default:
                    break;
                }
                LoggerInstance.Log(screenLog);
            } catch (Exception e) {
                logthrottle.WriteErrorWithThrottle(EventLogger.WriteError, "Error sending log: " + e.ToString());
            }
        }
        public ScreenLog(ScreenLog obj)
        {
            log = new ScreenLogDefinition();

            Instant         = obj.Instant;
            Duration        = obj.Duration;
            Screen          = obj.Screen;
            SessionId       = obj.SessionId;
            EspaceId        = obj.EspaceId;
            TenantId        = obj.TenantId;
            UserId          = obj.UserId;
            Msisdn          = obj.Msisdn;
            ScreenType      = obj.ScreenType;
            AccessMode      = obj.AccessMode;
            ExecutedBy      = obj.ExecutedBy;
            SessionBytes    = obj.SessionBytes;
            ViewstateBytes  = obj.ViewstateBytes;
            SessionRequests = obj.SessionRequests;
            RequestKey      = obj.RequestKey;
            ActionName      = obj.ActionName;
            ClientIP        = obj.ClientIP;
            EspaceName      = obj.EspaceName;
            ApplicationName = obj.ApplicationName;
            ApplicationKey  = obj.ApplicationKey;
            Username        = obj.Username;
        }
 public override void Log(ScreenLogDefinition log)
 {
 }
 public abstract void Log(ScreenLogDefinition log);
 public ScreenLog()
 {
     log = new ScreenLogDefinition();
 }
 public override void Log(ScreenLogDefinition log)
 {
     Log(log, LogType.Screen);
 }