public void Init()
        {
            SetupMockServices();

            var appSettingsConfig = new AppSettingsConfig()
            {
                LogEndpointOverride = false
            };

            var logValidationRulesConfig = new LogValidationRulesConfig()
            {
                SeverityRegex        = "^(ERROR|INFO|WARNING)$",
                PositiveNumbersRegex = "^[0-9]\\d*$",
                BuildVersionRegex    = "^[1-9]{1}[0-9]*([.][0-9]*){1,2}?$",
                OperationSystemRegex = "^(IOS|Android-Google|Android-Huawei|Unknown)$",
                DeviceOSVersionRegex = "[1-9]{1}[0-9]{0,2}([.][0-9]{1,3}){1,2}?$",
                MaxTextFieldLength   = 500,
            };

            _controller = new LoggingController(_logMessageValidator.Object, _logger.Object, logValidationRulesConfig, appSettingsConfig)
            {
                ControllerContext = new ControllerContext()
                {
                    HttpContext = MakeFakeContext(true).Object
                }
            };
        }
        private IDictionary <string, string> InitializePatternDictionary(LogValidationRulesConfig configuration)
        {
            var logMobilePatternsDictionary = new Dictionary <string, string>();

            logMobilePatternsDictionary.Add("severityRegex", configuration.SeverityRegex);
            logMobilePatternsDictionary.Add("positiveNumbersRegex", configuration.PositiveNumbersRegex);
            logMobilePatternsDictionary.Add("buildVersionRegex", configuration.BuildVersionRegex);
            logMobilePatternsDictionary.Add("operationSystemRegex", configuration.OperationSystemRegex);
            logMobilePatternsDictionary.Add("deviceOSVersionRegex", configuration.DeviceOSVersionRegex);
            return(logMobilePatternsDictionary);
        }
        public LoggingController(
            ILogMessageValidator logMessageValidator,
            ILogger <LoggingController> logger,
            LogValidationRulesConfig logValidationRulesConfig,
            AppSettingsConfig appSettingsConfig)
        {
            _logMessageValidator = logMessageValidator;

            _logger = logger;
            _logMobilePatternsDictionary = InitializePatternDictionary(logValidationRulesConfig);
            _loggerMobile        = MobileLoggerFactory.GetLogger();
            _maxTextFieldLength  = logValidationRulesConfig.MaxTextFieldLength;
            _logEndpointOverride = appSettingsConfig.LogEndpointOverride;
        }