コード例 #1
0
ファイル: Program.cs プロジェクト: mattkur/KCSARA-Database
        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));
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: mattkur/KCSARA-Database
        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);
              }
            }
              }
        }