Ejemplo n.º 1
0
        public void LogObjectCreated()
        {
            Guid     memberId;
            DateTime checkpoint;

            checkpoint = GetCheckpoint();

            using (var db = new KcsarContext(this.databaseLocation))
            {
                Member m = new Member {
                    FirstName = "NewUser"
                };
                db.Members.Add(m);
                db.SaveChanges();
                memberId = m.Id;
            }

            using (var db = new KcsarContext(this.databaseLocation))
            {
                var member = db.Members.Single(f => f.Id == memberId);
                var logs   = db.GetLog(checkpoint);
                Assert.AreEqual(1, logs.Length, "log entries");
                Assert.AreEqual(member.GetReportHtml(), logs[0].Comment, "log msg: " + logs[0].Comment);
                Assert.AreEqual("Added", logs[0].Action, "action: " + logs[0].Action);
            }
        }
Ejemplo n.º 2
0
        public void LogObjectDeleted()
        {
            Guid   memberId;
            string reportHtml;

            using (var db = new KcsarContext(this.databaseLocation))
            {
                Member m = new Member {
                    FirstName = "RemoveMe"
                };
                db.Members.Add(m);
                db.SaveChanges();
                memberId   = m.Id;
                reportHtml = m.GetReportHtml();
            }

            DateTime checkpoint = GetCheckpoint();

            using (var db = new KcsarContext(this.databaseLocation))
            {
                Member m = db.Members.Single(f => f.Id == memberId);
                db.Members.Remove(m);
                db.SaveChanges();
                var log = db.GetLog(checkpoint);

                Assert.AreEqual(1, log.Length, "log entries");
                Assert.AreEqual("Deleted", log[0].Action, "action: " + log[0].Action);
                Assert.AreEqual(reportHtml, log[0].Comment, "log msg: " + log[0].Comment);
            }
        }
Ejemplo n.º 3
0
        public void LogPropertyChanged()
        {
            Guid memberId;

            using (var db = new KcsarContext(this.databaseLocation))
            {
                Member m = new Member {
                    FirstName = "Log property",
                    Gender    = Gender.Female,
                    BirthDate = new DateTime(2000, 12, 19)
                };
                db.Members.Add(m);
                db.SaveChanges();
                memberId = m.Id;
            }

            DateTime checkpoint = GetCheckpoint();

            using (var db = new KcsarContext(this.databaseLocation))
            {
                Member m = db.Members.Single(f => f.Id == memberId);
                m.FirstName = "Fixed";
                m.BirthDate = new DateTime(1990, 3, 5);
                m.Gender    = Gender.Male;
                db.SaveChanges();
                var log = db.GetLog(checkpoint);

                Assert.AreEqual(1, log.Length, "log entries");
                Console.WriteLine(log[0].Comment);
                Assert.IsTrue(log[0].Comment.Contains("FirstName: Log property => Fixed"), "log msg: " + log[0].Comment);
                Assert.IsTrue(log[0].Comment.Contains("Gender: Female => Male"), "log msg gender: " + log[0].Comment);
                Assert.IsTrue(log[0].Comment.Contains("BirthDate: 12/19/2000 => 3/5/1990"), "log msg date: " + log[0].Comment);
                Assert.AreEqual("Modified", log[0].Action, "action: " + log[0].Action);
            }
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            using (var db = new KcsarContext())
            {
                DateTime cutoff = DateTime.Today.AddYears(1);

                var course = db.TrainingCourses.Single(f => f.DisplayName == "HAM License");

                var hams = db.PersonContact.Where(f => f.Type == "hamcall")
                           .Where(f => !f.Person.ComputedAwards.Any(g => g.Expiry > cutoff && g.Course.Id == course.Id))
                           .Select(f => new { Member = f.Person, Call = f.Value })
                           .OrderBy(f => f.Member.LastName).ThenBy(f => f.Member.FirstName).ToArray();

                foreach (var ham in hams)
                {
                    Console.WriteLine(ham.Call);
                    var lic = GetLicense(ham.Call);

                    if (lic == null)
                    {
                        Console.WriteLine("!! No license found");
                        continue;
                    }

                    if (lic.Name.StartsWith(ham.Member.ReverseName, StringComparison.OrdinalIgnoreCase))
                    {
                        // probably a match
                        Console.WriteLine("Grant HAM to {0}, effective {1:yyyy-MM-dd}, expires {2:yyyy-MM-dd}", ham.Member.FullName, lic.Issued, lic.Expires);
                        TrainingAward ta = new TrainingAward {
                            Completed = lic.Issued, Course = course, Expiry = lic.Expires, Member = ham.Member, metadata = "Via FCC: " + lic.Url, LastChanged = DateTime.Now, ChangedBy = "HamFromFCC"
                        };
                        db.TrainingAward.Add(ta);
                        db.SaveChanges();
                        db.RecalculateTrainingAwards(ham.Member.Id);
                        db.SaveChanges();
                    }
                    else
                    {
                        Console.WriteLine("Can't match names: {0} :: {1}", lic.Name, ham.Member.ReverseName);
                    }
                }
            }
        }
Ejemplo n.º 5
0
        public void LogPrincipalChanged()
        {
            Member        first;
            Member        second;
            PersonAddress address;

            using (var db = new KcsarContext(this.databaseLocation))
            {
                first = new Member {
                    FirstName = "First"
                };
                db.Members.Add(first);
                second = new Member {
                    FirstName = "Second"
                };
                db.Members.Add(second);
                address = new PersonAddress {
                    Person = first, Street = "123", City = "Any", State = "WA", Zip = "98765"
                };
                first.Addresses.Add(address);

                db.SaveChanges();
            }

            var checkpoint = GetCheckpoint();

            using (var db = new KcsarContext(this.databaseLocation))
            {
                address        = db.Members.Where(f => f.Id == first.Id).SelectMany(f => f.Addresses).Single();
                address.Person = db.Members.Single(f => f.Id == second.Id);
                db.SaveChanges();
            }

            using (var db = new KcsarContext(this.databaseLocation))
            {
                var logs = db.GetLog(checkpoint);
                Assert.AreEqual(1, logs.Length, "log count");
                Assert.AreEqual(string.Format("{0}<br/>{1} => {2}",
                                              address, first, second), logs[0].Comment);
                Assert.AreEqual("Modified", logs[0].Action);
            }
        }
Ejemplo n.º 6
0
        static void Main(string[] args)
        {
            DateTime startTime = DateTime.Now;
            Dictionary <Guid, string> memberIds = null;

            using (var context = new KcsarContext())
            {
                memberIds = context.Members.OrderBy(f => f.LastName).ThenBy(f => f.FirstName).ToDictionary(f => f.Id, f => f.LastName + ", " + f.FirstName);
            }

            foreach (var pair in memberIds)
            {
                using (var ctx = new KcsarContext())
                {
                    Console.WriteLine(pair.Value);
                    ctx.RecalculateTrainingAwards(pair.Key, DateTime.Now);
                    ctx.SaveChanges();
                }
            }
            Console.WriteLine("Execution time: {0}", (DateTime.Now - startTime));
        }