示例#1
0
 private static void CreateIndex(ICodeSearcherLogic logic)
 {
     logic.CreateNewIndex(() =>
     {
         ShowCreateNewIndexHeader();
     },
                          (name) =>
     {
         AsyncLogger.WriteLine(name);
     },
                          (fileCount, timeSpan) =>
     {
         Console.ForegroundColor = ConsoleColor.DarkGreen;
         Console.WriteLine();
         Console.WriteLine(">> building search index finished!");
         Console.WriteLine("{0} files indexed", fileCount);
         Console.WriteLine(">> action take : {0:00}:{1:00}:{2:00}.{3:000}",
                           timeSpan.Hours,
                           timeSpan.Minutes,
                           timeSpan.Seconds,
                           timeSpan.Milliseconds);
         Console.WriteLine();
         Console.ForegroundColor = ConsoleColor.White;
     });
 }
        public void AddPackageImages(PackageImages objPackageImages)
        {
            try
            {
                _logger.addMessage.Add("AddPackageImages", "AddPackageImages Method is going to Execute");
                Dictionary <string, object> objparamlist = new Dictionary <string, object>();
                _logger.addMessage.Add("CompanyID", objPackageImages.CompanyID);
                objparamlist.Add("CompanyID", objPackageImages.CompanyID);

                _logger.addMessage.Add("PackageCode", objPackageImages.PackageCode);
                objparamlist.Add("PackageCode", objPackageImages.PackageCode);

                _logger.addMessage.Add("PackageImageName", objPackageImages.PackageImageName);
                objparamlist.Add("PackageImageName", objPackageImages.PackageImageName);

                _logger.addMessage.Add("PackageImageTitle", objPackageImages.PackageImageTitle);
                objparamlist.Add("PackageImageTitle", objPackageImages.PackageImageTitle);

                IConnector objConnector = new Connector();
                bool       status       = objConnector.ExecuteNonQuery("PackageModule", "InsertPackageImages", objparamlist);
                _logger.addMessage.Add("AddPackageImages", "Package Images Saved Successfully");
            }
            catch (Exception ex)
            {
                AsyncLogger.LogEventVwr("UpdatePackageHotelCosting", ex.ToString(), ex.StackTrace);
                _logger.addMessage.Add("AddPackageImages", "Error during Add Package Images Method Execution:" + ex.ToString());
            }
            finally
            {
                AsyncLogger.LogMessage(_logger);
            }
        }
示例#3
0
        public async Task ThreeClientsTwoLobbysTest()
        {
            var lg     = new AsyncLogger();
            var server = new Server();

            server.Start(stdPort);

            var player1 = new Player(PlayerType.PLAYER);
            var player2 = new Player(PlayerType.PLAYER);
            var player3 = new Player(PlayerType.PLAYER);

            var game1 = new GameController(player1);
            var game2 = new GameController(player2);
            var game3 = new GameController(player3);

            game1.StartOnline();
            game2.StartOnline();
            game3.StartOnline();

            game1.Client.ClientSender.CreateLobby("111", true);
            game2.Client.ClientSender.CreateLobby("222", true);
            game3.Client.ClientSender.JoinLobby("111");

            //Assert.Null(await Record.ExceptionAsync(() => lg.WaitForLobbys(server, 1)));
            Assert.Null(await Record.ExceptionAsync(() => lg.WaitForClientsInLobbys(server, new Dictionary <int, int> {
                { 0, 2 }, { 1, 1 }
            })));
            Assert.Equal("111", server.Lobbys[0].Password);
            Assert.Equal("222", server.Lobbys[1].Password);

            server.Stop();
        }
示例#4
0
        public InsightOpsSink(InsightOpsSinkSettings config,
                              IFormatProvider formatProvider = null)
        {
            if (config is null)
            {
                throw new ArgumentNullException(nameof(config));
            }

            _formatProvider = formatProvider; // Optional.


            ValidateToken(config.Token);

            _asyncLogger = new AsyncLogger();
            _asyncLogger.setToken(config.Token);
            _asyncLogger.setRegion(config.Region);
            _asyncLogger.setUseSsl(config.UseSsl);

            // These options are more or less, not used.
            _asyncLogger.setDebug(config.Debug);
            _asyncLogger.setIsUsingDataHub(config.IsUsingDataHub);
            _asyncLogger.setDataHubAddr(config.DataHubAddress);
            _asyncLogger.setDataHubPort(config.DataHubPort);
            _asyncLogger.setUseHostName(config.LogHostname);
            _asyncLogger.setHostName(config.HostName);
            _asyncLogger.setLogID(config.LogID);
        }
        public async Task StopWithoutFlush_Rejects_NotSavedLogs(int logsCount)
        {
            // arrange
            var logsPath = Path.Combine(Path.GetTempPath(), $"IntegrationTests-{Guid.NewGuid()}");

            using (var cut = new AsyncLogger(new List <ILogWriter> {
                new ToFileWriter(logsPath, "testLog")
            },
                                             new LoggerDateProvider()))
            {
                var logTasks = Enumerable.Range(1, logsCount)
                               .Select(i => Task.Run(() => { cut.Write($"LogMessage number {i}"); }));
                await Task.WhenAll(logTasks);

                // act
                cut.StopWithoutFlush();
            }
            await Task.Delay(100);

            // assert (Two things can happen - file did not make it to emerge yet or it did but without writing all logs.
            if (File.Exists(Path.Combine(logsPath, $"testLog_{DateTime.Today:yyyyMMdd}.log")))
            {
                Assert.NotEqual(logsCount, File.ReadAllLines(Directory.GetFiles(logsPath)[0]).Length);
            }
            Directory.Delete(logsPath, true);
        }
示例#6
0
        public void DoesOutperformDefaultUnityLogQueueing(UnityEngine.LogType unityLogType, string message, int itterations)
        {
            // Arrange
            var coreLogType = LogTypeMappings[unityLogType];

            var stopWatch = Stopwatch.StartNew();

            for (var i = 0; i < itterations; i++)
            {
                UnityEngine.Debug.unityLogger.Log(unityLogType, message);
            }
            stopWatch.Stop();
            var defaultDuration = stopWatch.ElapsedMilliseconds;

            long threadedDuration;

            using (var threadedLogger = new AsyncLogger())
            {
                // Act
                stopWatch.Restart();
                for (var i = 0; i < itterations; i++)
                {
                    threadedLogger.Log(coreLogType, message);
                }

                stopWatch.Stop();
                threadedDuration = stopWatch.ElapsedMilliseconds;
            }

            // Assert
            Assert.Less(threadedDuration, defaultDuration);
            UnityEngine.Debug.Log($"Threaded: {threadedDuration}, Default: {defaultDuration}.");
        }
        public void DoesLogInOrder(int count)
        {
            // Arrange
            var writer    = new LogQueueWriter();
            var formatter = new MessageOnlyFormatter();

            using (var logger = new AsyncLogger(writer, formatter))
            {
                // Act
                for (var i = 0; i < count; i++)
                {
                    logger.Info(i.ToString());
                }

                while (!writer.Lines.Any())
                {
                }

                logger.Flush();
            }

            // Assert
            Assert.Equal(count, writer.Lines.Count);

            var logLines = writer.Lines.Select(int.Parse).ToList();

            for (var i = 0; i < logLines.Count - 1; i++)
            {
                Assert.Equal(logLines[i], logLines[i + 1] - 1);
            }
        }
        public async Task AsyncLogger_UsesSameLogFile_JustBeforeMidnight()
        {
            // arrange
            var logsPath = Path.Combine(Path.GetTempPath(), $"IntegrationTests-{Guid.NewGuid()}");

            using (var beforeMidnightCut = new AsyncLogger(new List <ILogWriter> {
                new ToFileWriter(logsPath, "testLog")
            },
                                                           new LoggerDateProvider()))
            {
                beforeMidnightCut.Write("BeforeMidnight");
                await beforeMidnightCut.StopWithFlush();
            }
            var loggerDate = Mock.Of <ILoggerDateProvider>(m => m.Now == DateTime.Now.Date.AddSeconds(-1).AddDays(1).Date);

            using (var afterMidnightCut =
                       new AsyncLogger(new List <ILogWriter> {
                new ToFileWriter(logsPath, "testLog")
            }, loggerDate))
            {
                // act
                afterMidnightCut.Write("AfterMidnight");
                await afterMidnightCut.StopWithFlush();
            }
            await Task.Delay(100);

            // assert
            Assert.Single(Directory.GetFiles(logsPath));
            Directory.Delete(logsPath, true);
        }
        public async Task StopWithoutFlush_When_Logs_Are_AlreadySaved_SimplyDoesNothing(int logsCount)
        {
            // arrange
            var logsPath = Path.Combine(Path.GetTempPath(), $"IntegrationTests-{Guid.NewGuid()}");

            using (var cut = new AsyncLogger(new List <ILogWriter> {
                new ToFileWriter(logsPath, "testLog")
            },
                                             new LoggerDateProvider()))
            {
                var logTasks = Enumerable.Range(1, logsCount)
                               .Select(i => Task.Run(() => { cut.Write($"LogMessage number {i}"); }));
                await Task.WhenAll(logTasks);

                await Task.Delay(2000); // Give some time so we are sure all logs will be written;

                // act
                cut.StopWithoutFlush();
            }
            await Task.Delay(100);

            // assert
            Assert.Equal(logsCount, File.ReadAllLines(Directory.GetFiles(logsPath)[0]).Length);
            Directory.Delete(logsPath, true);
        }
示例#10
0
        public async Task ConnectTwoPlayersTest()
        {
            var lg     = new AsyncLogger();
            var server = new Server();

            server.Start(stdPort);

            var player1 = new Player(PlayerType.PLAYER);
            var player2 = new Player(PlayerType.PLAYER);

            var game1 = new GameController(player1);
            var game2 = new GameController(player2);

            game1.StartOnline();
            game2.StartOnline();

            Assert.Null(await Record.ExceptionAsync(() => lg.WaitForConnectionsServer(server, 2)));

            var player1Copy = server.Clients[0].Player;
            var player2Copy = server.Clients[1].Player;

            var e1 = player1.Name;
            var e2 = player2.Name;

            var a1 = server.Clients[0].Player.Name;
            var a2 = server.Clients[1].Player.Name;

            Assert.Equal(e1, a1);
            Assert.Equal(e2, a2);

            server.Stop();
        }
示例#11
0
 public FileAccessLogger(uint redmineID)
 {
     logFilePath_   = Path.GetFullPath(Path.GetTempFileName());
     fflCreate      = new AsyncLogger(new FileLogger(logFilePath_));
     fileLogSender_ = new FileAccessLogSender(logFilePath_);
     WriteLine("RedmineID={0}", redmineID);
 }
        public void DoesFormat(LogType logType, string message)
        {
            // Arrange
            var writer    = new LogQueueWriter();
            var formatter = new TypeMessageFormatter();

            using (var logger = new AsyncLogger(writer, formatter))
            {
                // Act
                logger.Log(logType, message);

                while (!writer.Lines.Any())
                {
                }

                logger.Flush();
            }

            // Assert
            var originalLog    = writer.Lines.Single();
            var duplicateEntry = new LogEntry
            {
                LogType = logType,
                Message = message
            };
            var duplicateLog = formatter.Format(duplicateEntry);

            Assert.Equal(originalLog, duplicateLog);
        }
        public void InsertPackageCancellationPolicy(PackageDetails objPackageCancellationPolicy)
        {
            try
            {
                _logger.addMessage.Add("InsertPackageCancellationPolicy", "InsertPackageCancellationPolicy Method is going to Execute");
                Dictionary <string, object> objparamlist = new Dictionary <string, object>();

                _logger.addMessage.Add("CompanyID", objPackageCancellationPolicy.CompanyID);
                objparamlist.Add("CompanyID", objPackageCancellationPolicy.CompanyID);

                _logger.addMessage.Add("PackageCode", objPackageCancellationPolicy.BasicPackageDetails.PackageCode.ToString());
                objparamlist.Add("PackageCode", objPackageCancellationPolicy.BasicPackageDetails.PackageCode);

                _logger.addMessage.Add("PackageViewFormat", objPackageCancellationPolicy.PackageCancellationPolicy.ViewFormat.ToString());
                objparamlist.Add("ViewFormat", objPackageCancellationPolicy.PackageCancellationPolicy.ViewFormat);

                _logger.addMessage.Add("CancellationPolicyText", objPackageCancellationPolicy.PackageCancellationPolicy.CancellationPolicyText.ToString());
                objparamlist.Add("CancellationPolicyText", objPackageCancellationPolicy.PackageCancellationPolicy.CancellationPolicyText);
                IConnector objConnector = new Connector();
                bool       status       = objConnector.ExecuteNonQuery("PackageModule", "FSP_InsertCancellationPolicy", objparamlist);
                _logger.addMessage.Add("InsertPackageCancellationPolicy", "Cancellation policy inserted or updated successfully");
            }
            catch (Exception ex)
            {
                _logger.addMessage.Add("InsertPackageCancellationPolicy", "Error during Insert Package Cancellation Policy Method Execution:" + ex.ToString());
            }
            finally
            {
                AsyncLogger.LogMessage(_logger);
            }
        }
示例#14
0
        public async Task SlapOnlineTest()
        {
            var rnd    = new Random();
            var lg     = new AsyncLogger();
            var server = new Server();

            server.Start(stdPort);

            var player1 = new Player(PlayerType.PLAYER);
            var player2 = new Player(PlayerType.PLAYER);

            var game1 = new GameController(player1);
            var game2 = new GameController(player2);

            game1.StartOnline();
            game2.StartOnline();

            game1.Client.ClientSender.CreateLobby(stdPwd, true);
            game2.Client.ClientSender.JoinLobby(stdPwd);

            Assert.Null(await Record.ExceptionAsync(() => lg.WaitForLobbys(server, 1)));
            Assert.Null(await Record.ExceptionAsync(() => lg.WaitForClientsInLobbys(server, new Dictionary <int, int> {
                { 0, 2 }
            })));
            Assert.Null(await Record.ExceptionAsync(() => lg.WaitForClientValues(server)));

            var attacker = game2.Players[0].Units[0];
            var defender = game1.Players[0].Units[0];

            game2.CombatController.CombatCalcRedirect(attacker, defender, attacker.Abilities[0]);
        }
示例#15
0
        public async Task <ActionResult> AddArticleSale([FromBody] Article article)
        {
            AsyncLogger.Log(LogLevel.Info, $"Operation: {nameof(AddArticleSale)}. Input: {article}");
            await _dataStore.AddSoldArticle(article);

            return(Ok());
        }
示例#16
0
        public async Task AsyncLogger_AfterDispose_CannotCall_StopWithFlush()
        {
            var logsPath = Path.Combine(Path.GetTempPath(), $"IntegrationTests-{Guid.NewGuid()}");
            var cut      = new AsyncLogger(new[] { new ToFileWriter(logsPath, "testLog") }, new LoggerDateProvider());

            cut.Dispose();
            await Assert.ThrowsAsync <ObjectDisposedException>(async() => await cut.StopWithFlush());
        }
示例#17
0
        public void AsyncLogger_AfterDispose_Cannot_WriteLogs()
        {
            var logsPath = Path.Combine(Path.GetTempPath(), $"IntegrationTests-{Guid.NewGuid()}");
            var cut      = new AsyncLogger(new[] { new ToFileWriter(logsPath, "testLog") }, new LoggerDateProvider());

            cut.Dispose();
            Assert.Throws <ObjectDisposedException>(() => cut.Write("I like kittens"));
        }
        /// <summary>
        /// Get Hotel Saved Costing info for package pecific
        /// </summary>
        /// <param name="objHotelCosting"></param>
        /// <returns></returns>
        public List <HotelCosting> GetPackageHotelCosting(HotelCostingRequest objHotelCostingRequest)
        {
            List <HotelCosting> objlstHotelCosting = null;

            try
            {
                _logger.addMessage.Add("UpdatePackageHotelCosting", "Package Hotel costing updated successfully");

                Dictionary <string, object> objparamlist = new Dictionary <string, object>();
                _logger.addMessage.Add("CompanyID", objHotelCostingRequest.CompanyID);
                objparamlist.Add("CompanyID", objHotelCostingRequest.CompanyID);

                _logger.addMessage.Add("PackageCode", objHotelCostingRequest.PackageCode);
                objparamlist.Add("PackageCode", objHotelCostingRequest.PackageCode);

                _logger.addMessage.Add("PackageLanguage", objHotelCostingRequest.PackageLanguage);
                objparamlist.Add("PackageLanguage", objHotelCostingRequest.PackageLanguage);
                IConnector objConnector          = new Connector();
                DataTable  dtPackageHotelCosting = objConnector.ExecuteDataTable("PackageModule", "FSP_GetPkgHotelCosting", objparamlist);
                _logger.addMessage.Add("GetHotelCosting", "Package costing fetch Successfully");
                if (dtPackageHotelCosting.Rows.Count > 0)
                {
                    objlstHotelCosting = new List <HotelCosting>();

                    for (int i = 0; i < dtPackageHotelCosting.Rows.Count; i++)
                    {
                        HotelCosting objHotelCosting = new HotelCosting();
                        objHotelCosting.CompanyID       = objHotelCostingRequest.CompanyID;
                        objHotelCosting.PackageCode     = objHotelCostingRequest.PackageCode;
                        objHotelCosting.Currency        = dtPackageHotelCosting.Rows[i]["Currency"].ToString();
                        objHotelCosting.AdultCost       = Convert.ToDouble(dtPackageHotelCosting.Rows[i]["AdultCost"]);
                        objHotelCosting.ChildCost       = Convert.ToDouble(dtPackageHotelCosting.Rows[i]["ChildCost"]);
                        objHotelCosting.HotelCityName   = dtPackageHotelCosting.Rows[i]["HotelCityName"].ToString();
                        objHotelCosting.HotelName       = dtPackageHotelCosting.Rows[i]["HotelName"].ToString();
                        objHotelCosting.RoomType        = dtPackageHotelCosting.Rows[i]["RoomType"].ToString();
                        objHotelCosting.PackageLanguage = dtPackageHotelCosting.Rows[i]["PackageLanguage"].ToString();
                        objHotelCosting.id = Convert.ToInt16(dtPackageHotelCosting.Rows[i]["id"]);
                        objlstHotelCosting.Add(item: objHotelCosting);
                    }
                    _logger.addMessage.Add("GetHotelCosting", "GetHotelCosting Method result" + JsonConvert.SerializeObject(objlstHotelCosting));
                }
                else
                {
                    _logger.addMessage.Add("GetHotelCosting", "No Package Hotel Costing find for Package Code=" + objHotelCostingRequest.PackageCode);
                }
            }
            catch (Exception ex)
            {
                AsyncLogger.LogEventVwr("UpdatePackageHotelCosting", ex.ToString(), ex.StackTrace);
                _logger.ExceptionError = true;
                _logger.addMessage.Add("GetHotelCosting", "Error during get Package hotel costing Method Execution:" + ex.ToString());
            }
            finally
            {
                AsyncLogger.LogMessage(_logger);
            }
            return(objlstHotelCosting);
        }
示例#19
0
        public async Task MultipleServerTest_Fail()
        {
            var lg = new AsyncLogger();

            var t1 = Task.Run(() => new Server().Start(44444));
            var t2 = Task.Run(() => new Server().Start(44444));

            Assert.NotNull(await Record.ExceptionAsync(() => lg.WaitForAsyncExceptions(3000)));
        }
示例#20
0
 protected void Application_Start()
 {
     FileLog.Initialize("OMInsurance");
     AsyncLogger.Initialize("OMInsurance");
     AreaRegistration.RegisterAllAreas();
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     ModelMapper.Configure();
 }
示例#21
0
 public LogentriesTarget()
 {
     logentriesAsync = new AsyncLogger()
     {
         LogInternalDebug = InternalLogger.Debug,
         LogInternalInfo  = InternalLogger.Info,
         LogInternalWarn  = InternalLogger.Warn,
         LogInternalError = InternalLogger.Error
     };
 }
示例#22
0
 protected void Application_Start()
 {
     FileLog.Initialize("RegApplPortal");
     AsyncLogger.Initialize("RegApplPortal");
     AreaRegistration.RegisterAllAreas();
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     BundleConfig.RegisterBundles(BundleTable.Bundles);
     AutoMapperConfig.RegisterMappings();
     //ModelMapper.Configure();
 }
示例#23
0
        public async Task StartServerTest()
        {
            var lg     = new AsyncLogger();
            var server = new Server();

            server.Start(00000);

            Assert.Null(await Record.ExceptionAsync(() => lg.WaitForAsyncExceptions()));

            server.Stop();
        }
示例#24
0
        public async Task AsyncLogger_Silently_Swallows_Exception_AndConitnous_When_LogWriterThrowsException()
        {
            // arrange
            var logWriterMock = new Mock <ILogWriter>();

            logWriterMock.Setup(mock => mock.WriteLog(It.IsAny <LogLine>())).Throws(new Exception("I am a random Error! Say Hi :)"));
            var cut = new AsyncLogger(new[] { logWriterMock.Object }, new LoggerDateProvider());

            // act & assert
            cut.Write("Nothing happens...");
            await cut.StopWithFlush();
        }
示例#25
0
        // TODO: How to clear the cache after a time? Can't hold on to this forever.
        // TODO Do not store messages at all if features is disabled.

        public MessageCache(DiscordSocketClient client, AsyncLogger logger, Func <ulong, GuildState> getConfFunc)
        {
            _dClient      = client;
            _outLog       = logger;
            _outGetConfig = getConfFunc;

            CreateCacheTables();

            client.MessageReceived += Client_MessageReceived;
            client.MessageUpdated  += Client_MessageUpdated;
            client.MessageDeleted  += Client_MessageDeleted;
        }
示例#26
0
        /*private void SetServerUrl(HttpContext context = null)
         * {
         *  if (!_IsInitialised)
         *  {
         *      lock (_initLocker)
         *      {
         *          //Not redunant - this check is more efficient for a 1-time set.
         *          //If it's set, we exit without locking. We want to avoid locking as much as possible, so only do it once (at startup)
         *          if (!_IsInitialised)
         *          {
         *              //First, try to read from the config
         *              var config = ObjectFactory.GetInstance<IConfigRepository>();
         *              var serverProtocol = config.Get("ServerProtocol", String.Empty);
         *              var domainName = config.Get("ServerDomainName", String.Empty);
         *              var domainPort = config.Get<int?>("ServerPort", null);
         *
         *              if (!String.IsNullOrWhiteSpace(domainName) && !String.IsNullOrWhiteSpace(serverProtocol) && domainPort.HasValue)
         *              {
         *                  Fr8.Infrastructure.Utilities.Server.ServerUrl = String.Format("{0}{1}{2}/", serverProtocol, domainName,
         *                      domainPort.Value == 80 ? String.Empty : (":" + domainPort.Value));
         *
         *                  Fr8.Infrastructure.Utilities.Server.ServerHostName = domainName;
         *              }
         *              else
         *              {
         *                  if (context == null)
         *                      return;
         *
         *                  //If the config is not set, then we setup our server URL based on the first request
         *                  string port = context.Request.ServerVariables["SERVER_PORT"];
         *                  if (port == null || port == "80" || port == "443")
         *                      port = "";
         *                  else
         *                      port = ":" + port;
         *
         *                  string protocol = context.Request.ServerVariables["SERVER_PORT_SECURE"];
         *                  if (protocol == null || protocol == "0")
         *                      protocol = "http://";
         *                  else
         *                      protocol = "https://";
         *
         *                  // *** Figure out the base Url which points at the application's root
         *                  Fr8.Infrastructure.Utilities.Server.ServerHostName = context.Request.ServerVariables["SERVER_NAME"];
         *                  string url = protocol + context.Request.ServerVariables["SERVER_NAME"] + port + context.Request.ApplicationPath;
         *                  Fr8.Infrastructure.Utilities.Server.ServerUrl = url;
         *              }
         *              _IsInitialised = true;
         *          }
         *      }
         *  }
         * }*/

        public void Application_End()
        {
            //Logger.GetLogger().Info("fr8 web shutting down...");
            Logger.GetLogger().Warn("fr8 web shutting down...");

            // This will give LE background thread some time to finish sending messages to Logentries.
            var numWaits = 3;

            while (!AsyncLogger.AreAllQueuesEmpty(TimeSpan.FromSeconds(5)) && numWaits > 0)
            {
                numWaits--;
            }
        }
示例#27
0
        public async Task <ActionResult <DailyRevenue> > GetRevenue(DateTime targetDay)
        {
            AsyncLogger.Log(LogLevel.Info, $"Operation: {nameof(GetRevenue)}. Input: {targetDay:s}");
            DailyRevenue result = (await _dataStore.GetRevenues(targetDay.Date, targetDay.Date)).SingleOrDefault();

            if (result == null)
            {
                AsyncLogger.Log(LogLevel.Warning, $"{nameof(GetRevenue)} returned no values");
                return(NoContent());
            }

            return(Ok(result));
        }
示例#28
0
        public async Task <ActionResult <IEnumerable <DailyArticleRevenue> > > GetRevenueByArticle()
        {
            AsyncLogger.Log(LogLevel.Info, $"Operation: {nameof(GetRevenueByArticle)}");
            IEnumerable <DailyArticleRevenue> result = await _dataStore.GetRevenuesByArticle(DateTime.MinValue, DateTime.Today);

            if (!result.Any())
            {
                AsyncLogger.Log(LogLevel.Warning, $"{nameof(GetRevenueByArticle)} returned no values");
                return(NoContent());
            }

            return(Ok(result));
        }
示例#29
0
        public async Task Async_Log_SingleThread()
        {
            // Arrange
            var logger   = new AsyncLogger(_path);
            var expected = true;

            // Act
            var actual = await logger.LogAsync(string.Format(_logMessage, "[Async]"));

            // Assert
            Assert.AreEqual(expected, actual);
            Assert.IsTrue(File.Exists(_logFile));
        }
示例#30
0
        public async Task MultipleServerTest_Pass()
        {
            var lg = new AsyncLogger();

            var s1 = new Server();
            var s2 = new Server();
            var s3 = new Server();

            s1.Start(11111);
            s1.Start(22222);
            s1.Start(33333);

            Assert.Null(await Record.ExceptionAsync(() => lg.WaitForAsyncExceptions()));
        }