예제 #1
0
 public DatabaseEventStore()
     : base()
 {
     this.logger         = new XmlLogger();
     this.DaoDbType      = DaoDbType.SQLite;
     this.logger.LogName = "EventStoreLog";
 }
예제 #2
0
        private XmlLogger CreateXmlLogger(DateTimeProvider dtProvider)
        {
            XmlLogger logger = new XmlLogger();

            logger.OutputWriter = new StringWriter();
            return(logger);
        }
예제 #3
0
        public void XmlLoggerMalformedXmlTest()
        {
            var path       = @"x:\deployments\1234\log.xml";
            var fileSystem = new Mock <IFileSystem>();
            var file       = new Mock <FileBase>();
            var analytics  = new Mock <IAnalytics>();
            var bytes      = Encoding.UTF8.GetBytes("<invalid xml");
            var mem        = new MemoryStream();

            mem.Write(bytes, 0, bytes.Length);

            // Setup
            fileSystem.SetupGet(f => f.File)
            .Returns(file.Object);
            file.Setup(f => f.Exists(path))
            .Returns(true);
            file.Setup(f => f.OpenRead(path))
            .Returns(() => { mem.Position = 0; return(mem); });
            FileSystemHelpers.Instance = fileSystem.Object;

            // Test
            var logger  = new XmlLogger(path, analytics.Object);
            var entries = logger.GetLogEntries();

            // Assert
            Assert.Equal(0, entries.Count());
            analytics.Verify(a => a.UnexpectedException(It.IsAny <Exception>(), false), Times.Once);
        }
예제 #4
0
 public DatabaseEventStore()
     : base()
 {
     this.logger = new XmlLogger();
     this.DaoDbType = DaoDbType.SQLite;
     this.logger.LogName = "EventStoreLog";
 }
예제 #5
0
        public static ILogger Create(string loggerType)
        {
            ILogger logger = null;

            switch (loggerType)
            {
            case "event":
                logger = new EventLogger();
                break;

            case "file":
                logger = new FileLogger();
                break;

            case "email":
                logger = new EmailLogger();
                break;

            case "xml":
                logger = new XmlLogger();
                break;
            }

            return(logger);
        }
예제 #6
0
        static void Main(string[] args)
        {
            ILogger        logger         = new XmlLogger();
            TaxCalculation taxCalculation = new TaxCalculation(logger);

            Console.WriteLine(taxCalculation.Calculation(10, 0));
        }
예제 #7
0
        public void TargetStartedAndTargetFinished()
        {
            string expected = @"<target name=""foo""><duration>123</duration></target>";

            _log = CreateXmlLogger(CreateDateTimeProvider(123));

            TargetBuildEventArgs args = CreateBuildEventArgsWithTarget("foo");

            _log.TargetStarted(this, args);
            _log.TargetFinished(this, args);
            Assert.AreEqual(expected, _log.ToString());
        }
예제 #8
0
        public void BuildStartedAndBuildFinished()
        {
            string expected = "<buildresults project=\"testproject\"><duration>123</duration></buildresults>";

            _log = CreateXmlLogger(CreateDateTimeProvider(123));

            BuildEventArgs args = new BuildEventArgs(CreateProject());

            _log.BuildStarted(this, args);
            _log.BuildFinished(this, args);
            Assert.AreEqual(expected, _log.ToString());
        }
예제 #9
0
        public void TaskStartedAndTaskFinished()
        {
            string expected = @"<task name=""testtask""><duration>321</duration></task>";

            _log = CreateXmlLogger(CreateDateTimeProvider(321));

            TaskBuildEventArgs args = new TaskBuildEventArgs(new TestTask(), Stopwatch.StartNew());

            _log.TaskStarted(this, args);
            _log.TaskFinished(this, args);
            Assert.AreEqual(expected, _log.ToString());
        }
예제 #10
0
        public ActionResult Bridge()
        {
            ILogger       textLog  = new TextLogger();
            IDataImporter importer = new BasicDataImporter();

            importer.Logger = textLog;
            importer.Import();

            textLog         = new XmlLogger();
            importer        = new AdvanceDataImporter();
            importer.Logger = textLog;
            importer.Import();

            return(View());
        }
예제 #11
0
        public void XmlLoggerFileNotExistTest()
        {
            var path       = @"x:\deployments\1234\log.xml";
            var fileSystem = new Mock <IFileSystem>();

            // Setup
            fileSystem.SetupGet(f => f.File)
            .Returns(Mock.Of <FileBase>());
            FileSystemHelpers.Instance = fileSystem.Object;

            // Test
            var logger  = new XmlLogger(path, Mock.Of <IAnalytics>());
            var entries = logger.GetLogEntries();

            // Assert
            Assert.Equal(0, entries.Count());
        }
예제 #12
0
        public void TestThatReadActionsAndWriteActionsNeverInterfere()
        {
            ILogger logger = new XmlLogger();
            var     system = NewExamSystem(logger);

            var firstRange  = new StudentDataRange(0, 100, 0, 10);
            var secondRange = new StudentDataRange(100, 200, 0, 10);

            var firstAdder  = AddStudents(system, firstRange);
            var secondAdder = AddStudents(system, secondRange);

            var remover = RemoveStudents(system, firstRange);

            var firstQuerier  = QueryStudents(system, firstRange);
            var secondQuerier = QueryStudents(system, secondRange);
            var thirdQuerier  = QueryStudents(system, firstRange);
            var fourthQuerier = QueryStudents(system, secondRange);
            var fifthQuerier  = QueryStudents(system, firstRange);
            var sixthQuerier  = QueryStudents(system, secondRange);

            firstAdder.Wait();
            secondAdder.Wait();
            remover.Wait();
            firstQuerier.Wait();
            secondQuerier.Wait();
            thirdQuerier.Wait();
            fourthQuerier.Wait();
            fifthQuerier.Wait();
            sixthQuerier.Wait();

            try
            {
                // If resulting xml document is valid,
                // the algorithm is very likely to be correct
                // ReSharper disable once ReturnValueOfPureMethodIsNotUsed
                XElement.Parse(logger.Log);
            }
            catch (Exception)
            {
                throw new FalseException("Could not parse log as xml", false);
            }
        }
예제 #13
0
 public int Calculate(int amount, int rate)
 {
     try
     {
         int r = amount / rate;
         return(r);
     }
     catch (Exception ex)
     {
         if (this.GetLog == LogType.TXT)
         {
             TxtLogger txf = new TxtLogger();
             txf.Log(ex.Message);
             return(-1);
         }
         XmlLogger xm = new XmlLogger();
         xm.Log(ex.Message);
         return(-1);
     }
 }
예제 #14
0
        async public Task Execute(IJobExecutionContext context)
        {
            DbContextOptionsBuilder <ApplicationDbContext> optionbuilder = new DbContextOptionsBuilder <ApplicationDbContext>();

            optionbuilder.UseSqlServer("Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=SmsServiceAppDB;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");
            ApplicationDbContext db = new ApplicationDbContext(optionbuilder.Options);

            var senderManager = new SenderManager(db);
            var messageLogger = new XmlLogger("XmlLog.xml");
            var smsSender     = new ConsoleSmsSender();

            var messages = await senderManager.GetMessagesToSend();

            foreach (var message in messages)
            {
                await smsSender.Send(message.Sender, message.Reciever, message.Text, "");

                messageLogger.Log(message.Sender, message.Reciever, message.Text, DateTime.UtcNow);
            }
            var Ids = from i in messages
                      select i.TimeId;
            await senderManager.SetTimesAsSent(Ids);
        }
예제 #15
0
        public void XmlLoggerBasicTest()
        {
            var path       = @"x:\deployments\1234\log.xml";
            var fileSystem = new Mock <IFileSystem>();
            var file       = new Mock <FileBase>();
            var id         = Guid.NewGuid().ToString();
            var message    = Guid.NewGuid().ToString();
            var doc        = new XDocument(new XElement("entries",
                                                        new XElement("entry",
                                                                     new XAttribute("time", "2013-12-08T01:58:24.0247841Z"),
                                                                     new XAttribute("id", id),
                                                                     new XAttribute("type", "0"),
                                                                     new XElement("message", message)
                                                                     )
                                                        ));
            var mem = new MemoryStream();

            doc.Save(mem);

            // Setup
            fileSystem.SetupGet(f => f.File)
            .Returns(file.Object);
            file.Setup(f => f.Exists(path))
            .Returns(true);
            file.Setup(f => f.OpenRead(path))
            .Returns(() => { mem.Position = 0; return(mem); });
            FileSystemHelpers.Instance = fileSystem.Object;

            // Test
            var logger  = new XmlLogger(path, Mock.Of <IAnalytics>());
            var entries = logger.GetLogEntries();

            // Assert
            Assert.Equal(1, entries.Count());
            Assert.Equal(id, entries.First().Id);
            Assert.Equal(message, entries.First().Message);
        }
예제 #16
0
        public void Write()
        {
            string baseMessage      = "this is a typical message.";
            string formattedMessage = "[foo] " + baseMessage;

            BuildEventArgs args = CreateBuildEventArgs(formattedMessage, Level.Info);

            _log.MessageLogged(this, args);

            string expected = string.Format(CultureInfo.InvariantCulture, "<message level=\"Info\"><![CDATA[{0}]]></message>", baseMessage);

            Assert.AreEqual(expected, _log.ToString());

            string unformattedMessage = "message:";

            _log = CreateXmlLogger();

            args.Message = unformattedMessage;
            _log.MessageLogged(this, args);
            expected = string.Format(CultureInfo.InvariantCulture, "<message level=\"Info\"><![CDATA[{0}]]></message>", unformattedMessage);
            Assert.AreEqual(expected, _log.ToString());

            unformattedMessage = "message with no tag in front.";
            _log         = CreateXmlLogger();
            args.Message = unformattedMessage;
            _log.MessageLogged(this, args);
            expected = string.Format(CultureInfo.InvariantCulture, "<message level=\"Info\"><![CDATA[{0}]]></message>", unformattedMessage);
            Assert.AreEqual(expected, _log.ToString());

            unformattedMessage = "BUILD SUCCESSFUL";
            _log         = CreateXmlLogger();
            args.Message = unformattedMessage;
            _log.MessageLogged(this, args);
            expected = string.Format(CultureInfo.InvariantCulture, "<message level=\"Info\"><![CDATA[{0}]]></message>", unformattedMessage);
            Assert.AreEqual(expected, _log.ToString());
        }
예제 #17
0
        protected override void OnStartup(StartupEventArgs e)
        {
            FrameworkElement.LanguageProperty.OverrideMetadata(
                typeof(FrameworkElement),
                new FrameworkPropertyMetadata(
                    XmlLanguage.GetLanguage(
                        CultureInfo.CurrentCulture.IetfLanguageTag)));

            base.OnStartup(e);
            Database.SetInitializer(new XMPPContextInitializer());
            var account = DB.Accounts.ToList().First();

            _conn   = new XmppClient(new JID(account.JID), account.Password);
            _logger = new XmlLogger(_conn, DB);
            _conn.ConnectionFailed += (sender, args) =>
            {
                Trace.WriteLine("Disconnected: " + args.Message);
            };
            _conn.Element += (sender, el) =>
            {
                Trace.WriteLine(el.Stanza.ToString());
            };
            _conn.Message += (conn, message) =>
            {
                if (message.Text == null)
                {
                    return;
                }
                if (string.IsNullOrEmpty(message.ID))
                {
                    message.ID = Guid.NewGuid().ToString();
                }
                Application.Current.Dispatcher.BeginInvoke(new Action(() =>
                {
                    var exist = DB.Messages.FirstOrDefault(m => m.MessageID == message.ID);
                    if (exist == null)
                    {
                        var user = DB.Users.FirstOrDefault(u => u.JID == message.From.BareJid);
                        if (user == null)
                        {
                            user = new User {
                                JID = message.From.BareJid, Name = message.From.FullJid
                            };
                            DB.Entry(user).State = EntityState.Added;
                        }
                        var conversation = DB.Conversations.FirstOrDefault(c => c.JID == user.JID);
                        if (conversation == null)
                        {
                            conversation = new Conversation {
                                JID = user.JID, Name = user.Name
                            };
                            DB.Entry(conversation).State = EntityState.Added;
                            conversation.Users.Add(user);
                        }
                        conversation.Messages.Add(
                            new Message
                        {
                            From      = message.From.FullJid,
                            MessageID = message.ID,
                            To        = message.To.FullJid,
                            Text      = message.Text
                        });
                        DB.SaveChanges();
                    }
                }));
            };
            _conn.BookmarkManager.BookmarksSynced += (conn) =>
            {
                Application.Current.Dispatcher.BeginInvoke(new Action(() =>
                {
                    foreach (var room in _conn.BookmarkManager.Rooms)
                    {
                        var exist = DB.Conversations.FirstOrDefault(r => r.JID == room.JID.FullJid);
                        if (exist == null)
                        {
                            DB.Conversations.Add(new Conversation
                            {
                                JID  = room.JID.FullJid,
                                Name = room.Name
                            });
                        }
                    }
                    DB.SaveChanges();
                }));
            };
            DateTime lastUpdateTime = DateTime.Now;

            _conn.RosterManager.RosterUpdated += (conn) =>
            {
                Application.Current.Dispatcher.BeginInvoke(new Action(() =>
                {
                    foreach (var user in _conn.RosterManager.Roster)
                    {
                        var exist = DB.Users.FirstOrDefault(u => u.JID == user.JID);
                        if (exist == null)
                        {
                            DB.Users.Add(new User
                            {
                                JID  = user.JID,
                                Name = user.Name
                            });
                        }
                    }
                    if ((lastUpdateTime - DateTime.Now).TotalMilliseconds > 500)
                    {
                        DB.SaveChanges();
                        lastUpdateTime = DateTime.Now;
                    }
                }));
            };
            _conn.ConnectAsync();
            // ThreadPool.QueueUserWorkItem((o) => _conn.Connect());
            //Trace.Listeners.Add(new ConsoleTraceListener());
        }
예제 #18
0
 protected void SetUp()
 {
     _log     = CreateXmlLogger();
     _tempDir = TempDir.Create("NAnt.Tests.XmlLoggerTest");
 }