Example #1
0
        public void UpdateCommitments()
        {
            var commitments = (from m in Meetings()
                               where m.iscommitted
                               select m.MeetingDate).ToList();

            if (Commit == null)
            {
                Commit = new DateTime[] { };
            }

            var decommits = from currcommit in commitments
                            join newcommit in Commit on currcommit equals newcommit into j
                            from newcommit in j.DefaultIfEmpty(DateTime.MinValue)
                            where newcommit == DateTime.MinValue
                            select currcommit;

            var commits = from newcommit in Commit
                          join currcommit in commitments on newcommit equals currcommit into j
                          from currcommit in j.DefaultIfEmpty(DateTime.MinValue)
                          where currcommit == DateTime.MinValue
                          select newcommit;

            int?mid = null;

            foreach (var currcommit in decommits)
            {
                mid = Attend.MarkRegistered(DbUtil.Db, OrgId, PeopleId, currcommit, AttendCommitmentCode.Regrets);
            }

            foreach (var newcommit in commits)
            {
                mid = Attend.MarkRegistered(DbUtil.Db, OrgId, PeopleId, newcommit, AttendCommitmentCode.Attending);
            }

            if (mid.HasValue)
            {
                var slots = FetchSlots();
                Meeting.AddEditExtraData(DbUtil.Db, mid.Value, "Description", slots.First().Description);
            }
            var om = DbUtil.Db.OrganizationMembers.SingleOrDefault(mm => mm.PeopleId == PeopleId && mm.OrganizationId == OrgId);

            if (om == null)
            {
                OrganizationMember.InsertOrgMembers(DbUtil.Db,
                                                    OrgId, PeopleId, MemberTypeCode.Member, DateTime.Now, null, false);
            }
        }