Ejemplo n.º 1
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.º 2
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.º 3
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));
        }
Ejemplo n.º 4
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.º 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
        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.º 7
0
        /// <summary>
        /// Internal method to create the user
        /// </summary>
        /// <param name="user">Membershipuser created in the controller</param>
        /// <param name="context">Instance of Db Context</param>
        /// <param name="log">Instance of the logManager</param>
        /// <returns>true if the user creation succeeds, false otherwise. Deletes the created user on failure</returns>
        internal bool CreateUser(MembershipUser user, KcsarContext context, ILog log)
        {
            try
            {
                user.IsApproved = false;
                System.Web.Security.Membership.UpdateUser(user);

                System.Web.Security.FormsAuthenticationTicket ticket = new System.Web.Security.FormsAuthenticationTicket(this.Username, false, 5);
                Thread.CurrentPrincipal = new System.Web.Security.RolePrincipal(new System.Web.Security.FormsIdentity(ticket));

                Member newMember = new Member
                        {
                            FirstName = this.Firstname,
                            LastName = this.Lastname,
                            Status = MemberStatus.Applicant,
                            Username = this.Email
                        };

                context.Members.Add(newMember);

                var email = new PersonContact
                {
                    Person = newMember,
                    Type = "email",
                    Value = this.Email,
                    Priority = 0
                };

                context.PersonContact.Add(email);

                if (this.Units != null)
                {
                    foreach (Guid unitId in this.Units)
                    {
                        UnitsController.RegisterApplication(context, unitId, newMember);
                    }
                }

                var profile = ProfileBase.Create(this.Username) as KcsarUserProfile;
                if (profile != null)
                {
                    profile.FirstName = this.Firstname;
                    profile.LastName = this.Lastname;
                    profile.LinkKey = newMember.Id.ToString();
                    profile.Save();
                }

                if (!System.Web.Security.Roles.RoleExists(APPLICANT_ROLE))
                {
                    System.Web.Security.Roles.CreateRole(APPLICANT_ROLE);
                }
                System.Web.Security.Roles.AddUserToRole(this.Username, APPLICANT_ROLE);

                context.SaveChanges();
            }
            catch(Exception ex)
            {
                log.Error(ex.ToString());
                var existingUser = Membership.GetUser(this.Username);
                if (existingUser != null)
                {
                    Membership.DeleteUser(existingUser.UserName);
                }

                return false;
            }

            return true;
        }