Пример #1
0
        public static OrganizationMember AddOrgMember(CMSDataContext db, int organizationId, int peopleId, int memberTypeId, DateTime enrollmentDate, string name)
        {
            var om = new OrganizationMember
            {
                OrganizationId = organizationId,
                PeopleId       = peopleId,
                MemberTypeId   = memberTypeId,
                EnrollmentDate = enrollmentDate,
                CreatedDate    = Util.Now,
                SkipInsertTriggerProcessing = true
            };

            var et = new EnrollmentTransaction
            {
                OrganizationId    = om.OrganizationId,
                PeopleId          = om.PeopleId,
                MemberTypeId      = om.MemberTypeId,
                OrganizationName  = name,
                TransactionDate   = enrollmentDate,
                EnrollmentDate    = enrollmentDate,
                TransactionTypeId = 1,
                // join
                CreatedBy                   = db.UserId1,
                CreatedDate                 = Util.Now,
                AttendancePercentage        = om.AttendPct,
                SkipInsertTriggerProcessing = true
            };

            db.OrganizationMembers.InsertOnSubmit(om);
            db.EnrollmentTransactions.InsertOnSubmit(et);

            db.SubmitChanges();
            return(om);
        }
Пример #2
0
        public static OrganizationMember AddOrgMember(CMSDataContext db, int organizationId, int peopleId, int memberTypeId, DateTime enrollmentDate, string name)
        {
            var om = new OrganizationMember
            {
                OrganizationId = organizationId,
                PeopleId = peopleId,
                MemberTypeId = memberTypeId,
                EnrollmentDate = enrollmentDate,
                CreatedDate = Util.Now,
                SkipInsertTriggerProcessing = true
            };

            var et = new EnrollmentTransaction
            {
                OrganizationId = om.OrganizationId,
                PeopleId = om.PeopleId,
                MemberTypeId = om.MemberTypeId,
                OrganizationName = name,
                TransactionDate = enrollmentDate,
                EnrollmentDate = enrollmentDate,
                TransactionTypeId = 1,
                // join
                CreatedBy = Util.UserId1,
                CreatedDate = Util.Now,
                AttendancePercentage = om.AttendPct,
                SkipInsertTriggerProcessing = true
            };

            db.OrganizationMembers.InsertOnSubmit(om);
            db.EnrollmentTransactions.InsertOnSubmit(et);

            db.SubmitChanges();
            return om;
        }
Пример #3
0
        public void FastDrop(CMSDataContext db, DateTime dropdate, string orgname)
        {
            if (!EnrollmentDate.HasValue)
            {
                EnrollmentDate = CreatedDate;
            }

            var droptrans = new EnrollmentTransaction
            {
                OrganizationId       = OrganizationId,
                PeopleId             = PeopleId,
                MemberTypeId         = MemberTypeId,
                OrganizationName     = orgname,
                TransactionDate      = dropdate,
                TransactionTypeId    = 5, // drop
                CreatedBy            = db.UserId1,
                CreatedDate          = Util.Now,
                Pending              = Pending,
                AttendancePercentage = AttendPct,
                InactiveDate         = InactiveDate,
                UserData             = UserData,
                Request              = Request,
                ShirtSize            = ShirtSize,
                Grade         = Grade,
                Tickets       = Tickets,
                RegisterEmail = RegisterEmail,
                Score         = Score,
            };

            db.EnrollmentTransactions.InsertOnSubmit(droptrans);
            db.OrgMemMemTags.DeleteAllOnSubmit(this.OrgMemMemTags);
            db.OrgMemberExtras.DeleteAllOnSubmit(this.OrgMemberExtras);
            db.OrganizationMembers.DeleteOnSubmit(this);
            db.SubmitChanges();
        }
Пример #4
0
        public EnrollmentTransaction Drop(CMSDataContext Db, bool addToHistory)
        {
            Db.SubmitChanges();
            int ntries = 2;

            while (true)
            {
                try
                {
                    var q = from o in Db.Organizations
                            where o.OrganizationId == OrganizationId
                            let count = Db.Attends.Count(a => a.PeopleId == PeopleId &&
                                                         a.OrganizationId == OrganizationId &&
                                                         (a.MeetingDate < DateTime.Today || a.AttendanceFlag == true))
                                        select new { count, Organization.DaysToIgnoreHistory };
                    var i = q.Single();
                    if (!EnrollmentDate.HasValue)
                    {
                        EnrollmentDate = CreatedDate;
                    }
                    var droptrans = new EnrollmentTransaction
                    {
                        OrganizationId    = OrganizationId,
                        PeopleId          = PeopleId,
                        MemberTypeId      = MemberTypeId,
                        OrganizationName  = Organization.OrganizationName,
                        TransactionDate   = Util.Now,
                        TransactionTypeId = 5,
                        // drop
                        CreatedBy            = Util.UserId1,
                        CreatedDate          = Util.Now,
                        Pending              = Pending,
                        AttendancePercentage = AttendPct,
                    };
                    Db.EnrollmentTransactions.InsertOnSubmit(droptrans);
                    Db.OrgMemMemTags.DeleteAllOnSubmit(this.OrgMemMemTags);
                    Db.OrganizationMembers.DeleteOnSubmit(this);
                    Db.ExecuteCommand("DELETE FROM dbo.SubRequest WHERE EXISTS(SELECT NULL FROM Attend a WHERE a.AttendId = AttendId AND a.OrganizationId = {0} AND a.MeetingDate > {1} AND a.PeopleId = {2})", OrganizationId, Util.Now, PeopleId);
                    Db.ExecuteCommand("DELETE dbo.Attend WHERE OrganizationId = {0} AND MeetingDate > {1} AND PeopleId = {2} AND ISNULL(Commitment, 1) = 1", OrganizationId, Util.Now, PeopleId);
                    return(droptrans);
                }
                catch (SqlException ex)
                {
                    if (ex.Number == 1205)
                    {
                        if (--ntries > 0)
                        {
                            Db.Dispose();
                            System.Threading.Thread.Sleep(500);
                            continue;
                        }
                    }
                    throw;
                }
            }
        }
Пример #5
0
        public EnrollmentTransaction Drop(CMSDataContext db, DateTime dropdate, string orgname)
        {
            db.SubmitChanges();
            while (true)
            {
                if (!EnrollmentDate.HasValue)
                {
                    EnrollmentDate = CreatedDate;
                }
                var sglist = (from mt in db.OrgMemMemTags
                              where mt.PeopleId == PeopleId
                              where mt.OrgId == OrganizationId
                              select mt.MemberTag.Name
                              ).ToList();
                var droptrans = new EnrollmentTransaction
                {
                    OrganizationId       = OrganizationId,
                    PeopleId             = PeopleId,
                    MemberTypeId         = MemberTypeId,
                    OrganizationName     = orgname,
                    TransactionDate      = dropdate,
                    TransactionTypeId    = 5, // drop
                    CreatedBy            = Util.UserId1,
                    CreatedDate          = Util.Now,
                    Pending              = Pending,
                    AttendancePercentage = AttendPct,
                    InactiveDate         = InactiveDate,
                    UserData             = UserData,
                    Request              = Request,
                    ShirtSize            = ShirtSize,
                    Grade         = Grade,
                    Tickets       = Tickets,
                    RegisterEmail = RegisterEmail,
                    Score         = Score,
                    SmallGroups   = string.Join("\n", sglist)
                };

                db.EnrollmentTransactions.InsertOnSubmit(droptrans);
                db.OrgMemMemTags.DeleteAllOnSubmit(this.OrgMemMemTags);
                db.OrganizationMembers.DeleteOnSubmit(this);
                db.ExecuteCommand(@"
DELETE dbo.SubRequest
FROM dbo.SubRequest sr
JOIN dbo.Attend a ON a.AttendId = sr.AttendId
WHERE a.OrganizationId = {0}
AND a.MeetingDate > {1}
AND a.PeopleId = {2}
", OrganizationId, Util.Now, PeopleId);
                db.ExecuteCommand("DELETE dbo.Attend WHERE OrganizationId = {0} AND MeetingDate > {1} AND PeopleId = {2} AND ISNULL(Commitment, 1) = 1", OrganizationId, Util.Now, PeopleId);
                db.ExecuteCommand("DELETE dbo.Attend WHERE OrganizationId = {0} AND DATEADD(DAY, DATEDIFF(DAY, 0, MeetingDate), 0) = DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0) AND PeopleId = {1} AND AttendanceFlag = 0", OrganizationId, PeopleId);
                db.ExecuteCommand("UPDATE dbo.GoerSenderAmounts SET InActive = 1 WHERE OrgId = {0} AND (GoerId = {1} OR SupporterId = {1})", OrganizationId, PeopleId);
                return(droptrans);
            }
        }
Пример #6
0
        public EnrollmentTransaction Drop(CMSDataContext db, DateTime dropdate, string orgname)
        {
            db.SubmitChanges();
            while (true)
            {
                if (!EnrollmentDate.HasValue)
                    EnrollmentDate = CreatedDate;
                var sglist = (from mt in db.OrgMemMemTags
                              where mt.PeopleId == PeopleId
                              where mt.OrgId == OrganizationId
                              select mt.MemberTag.Name
                    ).ToList();
                var droptrans = new EnrollmentTransaction
                {
                    OrganizationId = OrganizationId,
                    PeopleId = PeopleId,
                    MemberTypeId = MemberTypeId,
                    OrganizationName = orgname,
                    TransactionDate = dropdate,
                    TransactionTypeId = 5, // drop
                    CreatedBy = Util.UserId1,
                    CreatedDate = Util.Now,
                    Pending = Pending,
                    AttendancePercentage = AttendPct,
                    InactiveDate = InactiveDate,
                    UserData = UserData,
                    Request = Request,
                    ShirtSize = ShirtSize,
                    Grade = Grade,
                    Tickets = Tickets,
                    RegisterEmail = RegisterEmail,
                    Score = Score,
                    SmallGroups = string.Join("\n", sglist)
                };

                db.EnrollmentTransactions.InsertOnSubmit(droptrans);
                db.OrgMemMemTags.DeleteAllOnSubmit(this.OrgMemMemTags);
                db.OrganizationMembers.DeleteOnSubmit(this);
                db.ExecuteCommand(@"
DELETE dbo.SubRequest
FROM dbo.SubRequest sr
JOIN dbo.Attend a ON a.AttendId = sr.AttendId
WHERE a.OrganizationId = {0}
AND a.MeetingDate > {1}
AND a.PeopleId = {2}
", OrganizationId, Util.Now, PeopleId);
                db.ExecuteCommand("DELETE dbo.Attend WHERE OrganizationId = {0} AND MeetingDate > {1} AND PeopleId = {2} AND ISNULL(Commitment, 1) = 1", OrganizationId, Util.Now, PeopleId);
                db.ExecuteCommand("DELETE dbo.Attend WHERE OrganizationId = {0} AND DATEADD(DAY, DATEDIFF(DAY, 0, MeetingDate), 0) = DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0) AND PeopleId = {1} AND AttendanceFlag = 0", OrganizationId, PeopleId);
                db.ExecuteCommand("UPDATE dbo.GoerSenderAmounts SET InActive = 1 WHERE OrgId = {0} AND (GoerId = {1} OR SupporterId = {1})", OrganizationId, PeopleId);
                return droptrans;
            }
        }
Пример #7
0
        public void FastDrop(CMSDataContext db, DateTime dropdate, string orgname)
        {
            if (!EnrollmentDate.HasValue)
                EnrollmentDate = CreatedDate;
            var droptrans = new EnrollmentTransaction
            {
                OrganizationId = OrganizationId,
                PeopleId = PeopleId,
                MemberTypeId = MemberTypeId,
                OrganizationName = orgname,
                TransactionDate = dropdate,
                TransactionTypeId = 5, // drop
                CreatedBy = Util.UserId1,
                CreatedDate = Util.Now,
                Pending = Pending,
                AttendancePercentage = AttendPct,
                InactiveDate = InactiveDate,
                UserData = UserData,
                Request = Request,
                ShirtSize = ShirtSize,
                Grade = Grade,
                Tickets = Tickets,
                RegisterEmail = RegisterEmail,
                Score = Score,
            };

            db.EnrollmentTransactions.InsertOnSubmit(droptrans);
            db.OrgMemMemTags.DeleteAllOnSubmit(this.OrgMemMemTags);
            db.OrgMemberExtras.DeleteAllOnSubmit(this.OrgMemberExtras);
            db.OrganizationMembers.DeleteOnSubmit(this);
            db.SubmitChanges();
        }
Пример #8
0
        public static OrganizationMember InsertOrgMembers(CMSDataContext Db,
			 int OrganizationId,
			 int PeopleId,
			 int MemberTypeId,
			 DateTime EnrollmentDate,
			 DateTime? InactiveDate, bool pending
			)
        {
            Db.SubmitChanges();
            int ntries = 2;
            while (true)
            {
                try
                {
                    var m = Db.OrganizationMembers.SingleOrDefault(m2 => m2.PeopleId == PeopleId && m2.OrganizationId == OrganizationId);
                    if (m != null)
                    {
                        m.MemberTypeId = MemberTypeId;
                        Db.SubmitChanges();
                        return m;
                    }
                    var org = Db.Organizations.SingleOrDefault(oo => oo.OrganizationId == OrganizationId);
                    if (org == null)
                        return null;
                    var name = org.OrganizationName;

                    var om = new OrganizationMember
                             {
                                 OrganizationId = OrganizationId,
                                 PeopleId = PeopleId,
                                 MemberTypeId = MemberTypeId,
                                 EnrollmentDate = EnrollmentDate,
                                 InactiveDate = InactiveDate,
                                 CreatedDate = Util.Now,
                                 Pending = pending,
                             };

                    var et = new EnrollmentTransaction
                             {
                                 OrganizationId = om.OrganizationId,
                                 PeopleId = om.PeopleId,
                                 MemberTypeId = om.MemberTypeId,
                                 OrganizationName = name,
                                 TransactionDate = EnrollmentDate,
                                 EnrollmentDate = EnrollmentDate,
                                 TransactionTypeId = 1,
                                 // join
                                 CreatedBy = Util.UserId1,
                                 CreatedDate = Util.Now,
                                 Pending = pending,
                                 AttendancePercentage = om.AttendPct
                             };
                    Db.OrganizationMembers.InsertOnSubmit(om);
                    Db.EnrollmentTransactions.InsertOnSubmit(et);

                    Db.SubmitChanges();
                    return om;
                }
                catch (SqlException ex)
                {
                    if (ex.Number == 1205)
                        if (--ntries > 0)
                        {
                            System.Threading.Thread.Sleep(500);
                            continue;
                        }
                    throw;
                }
            }
        }
Пример #9
0
        public EnrollmentTransaction Drop(CMSDataContext db, DateTime dropdate, bool addToHistory)
        {
            db.SubmitChanges();
            //            int ntries = 2;
            while (true)
            {
                //                try
                //                {
                var q = from o in db.Organizations
                        where o.OrganizationId == OrganizationId
                        let count = db.Attends.Count(a => a.PeopleId == PeopleId &&
                                                     a.OrganizationId == OrganizationId &&
                                                     (a.MeetingDate < DateTime.Today || a.AttendanceFlag == true))
                                    select new { count, Organization.DaysToIgnoreHistory };
                var i = q.Single();
                if (!EnrollmentDate.HasValue)
                {
                    EnrollmentDate = CreatedDate;
                }
                var sglist = (from mt in db.OrgMemMemTags
                              where mt.PeopleId == PeopleId
                              where mt.OrgId == OrganizationId
                              select mt.MemberTag.Name
                              ).ToList();
                var droptrans = new EnrollmentTransaction
                {
                    OrganizationId    = OrganizationId,
                    PeopleId          = PeopleId,
                    MemberTypeId      = MemberTypeId,
                    OrganizationName  = Organization.OrganizationName,
                    TransactionDate   = dropdate,
                    TransactionTypeId = 5,
                    // drop
                    CreatedBy            = Util.UserId1,
                    CreatedDate          = Util.Now,
                    Pending              = Pending,
                    AttendancePercentage = AttendPct,
                    InactiveDate         = InactiveDate,
                    UserData             = UserData,
                    Request              = Request,
                    ShirtSize            = ShirtSize,
                    Grade         = Grade,
                    Tickets       = Tickets,
                    RegisterEmail = RegisterEmail,
                    Score         = Score,
                    SmallGroups   = string.Join("\n", sglist)
                };

                db.EnrollmentTransactions.InsertOnSubmit(droptrans);
                db.OrgMemMemTags.DeleteAllOnSubmit(this.OrgMemMemTags);
                db.OrganizationMembers.DeleteOnSubmit(this);
                db.ExecuteCommand("DELETE FROM dbo.SubRequest WHERE EXISTS(SELECT NULL FROM Attend a WHERE a.AttendId = AttendId AND a.OrganizationId = {0} AND a.MeetingDate > {1} AND a.PeopleId = {2})", OrganizationId, Util.Now, PeopleId);
                db.ExecuteCommand("DELETE dbo.Attend WHERE OrganizationId = {0} AND MeetingDate > {1} AND PeopleId = {2} AND ISNULL(Commitment, 1) = 1", OrganizationId, Util.Now, PeopleId);
                db.ExecuteCommand("UPDATE dbo.GoerSenderAmounts SET InActive = 1 WHERE OrgId = {0} AND (GoerId = {1} OR SupporterId = {1})", OrganizationId, PeopleId);
                return(droptrans);
                //                }
                //                catch (SqlException ex)
                //                {
                //                    if (ex.Number == 1205)
                //                        if (--ntries > 0)
                //                        {
                //                            Db.Dispose();
                //                            System.Threading.Thread.Sleep(500);
                //                            continue;
                //                        }
                //                    throw;
                //                }
            }
        }
Пример #10
0
        public static OrganizationMember InsertOrgMembers
            (CMSDataContext Db,
            int OrganizationId,
            int PeopleId,
            int MemberTypeId,
            DateTime EnrollmentDate,
            DateTime?InactiveDate, bool pending
            )
        {
            Db.SubmitChanges();
            int ntries = 2;

            while (true)
            {
                try
                {
                    var m = Db.OrganizationMembers.SingleOrDefault(m2 => m2.PeopleId == PeopleId && m2.OrganizationId == OrganizationId);
                    if (m != null)
                    {
                        m.MemberTypeId = MemberTypeId;
                        Db.SubmitChanges();
                        return(m);
                    }
                    var org = Db.Organizations.SingleOrDefault(oo => oo.OrganizationId == OrganizationId);
                    if (org == null)
                    {
                        return(null);
                    }
                    var name = org.OrganizationName;

                    var om = new OrganizationMember
                    {
                        OrganizationId = OrganizationId,
                        PeopleId       = PeopleId,
                        MemberTypeId   = MemberTypeId,
                        EnrollmentDate = EnrollmentDate,
                        InactiveDate   = InactiveDate,
                        CreatedDate    = Util.Now,
                        Pending        = pending,
                    };

                    var et = new EnrollmentTransaction
                    {
                        OrganizationId    = om.OrganizationId,
                        PeopleId          = om.PeopleId,
                        MemberTypeId      = om.MemberTypeId,
                        OrganizationName  = name,
                        TransactionDate   = EnrollmentDate,
                        EnrollmentDate    = EnrollmentDate,
                        TransactionTypeId = 1,
                        // join
                        CreatedBy            = Util.UserId1,
                        CreatedDate          = Util.Now,
                        Pending              = pending,
                        AttendancePercentage = om.AttendPct
                    };
                    Db.OrganizationMembers.InsertOnSubmit(om);
                    Db.EnrollmentTransactions.InsertOnSubmit(et);

                    Db.SubmitChanges();
                    return(om);
                }
                catch (SqlException ex)
                {
                    if (ex.Number == 1205)
                    {
                        if (--ntries > 0)
                        {
                            System.Threading.Thread.Sleep(500);
                            continue;
                        }
                    }
                    throw;
                }
            }
        }
Пример #11
0
        private void Populate()
        {
            if (dopopulate)
            {
                dopopulate = false;
                if (!OrgId.HasValue || !PeopleId.HasValue)
                    return;
            }
            var i = (from et in DbUtil.Db.EnrollmentTransactions
                where et.OrganizationId == OrgId && et.PeopleId == PeopleId
                where et.TransactionTypeId == 5
                orderby et.TransactionDate descending
                select new
                {
                    et,
                    et.Person.Name,
                    et.Organization.OrganizationName,
                    et.Organization,
                    et.SmallGroups,
                    ts = DbUtil.Db.ViewTransactionSummaries.SingleOrDefault(
                        ts => ts.RegId == et.TranId && ts.PeopleId == PeopleId && ts.OrganizationId == OrgId)
                }
            ).FirstOrDefault();

            if (i == null)
                throw new Exception($"missing PrevOrgMember at oid={OrgId}, pid={PeopleId}");
            PrevMember = i.et;
            TransactionSummary = i.ts;
            this.CopyPropertiesFrom(PrevMember);
            Name = i.Name;

            AmtFee = i.ts?.IndPaid + i.ts?.IndDue;
            AmtDonation = i.ts?.IndAmt - AmtFee;
            AmtCoupon = i.ts?.TotCoupon;

            OrgName = i.OrganizationName;
            Organization = i.Organization;
            OrgMemMemTags = i.SmallGroups.SplitStr("\n").ToList();
            Setting = DbUtil.Db.CreateRegistrationSettings(OrgId ?? 0);
        }
Пример #12
0
 private void detach_EnrollmentTransactions(EnrollmentTransaction entity)
 {
     this.SendPropertyChanging();
     entity.MemberType = null;
 }
Пример #13
0
        public static OrganizationMember InsertOrgMembers(CMSDataContext db, int organizationId, int peopleId, int memberTypeId, DateTime enrollmentDate, DateTime?inactiveDate, bool pending, string name, bool skipTriggerProcessing = false)
        {
            db.SubmitChanges();
            var ntries = 2;

            while (true)
            {
                try
                {
                    var m = db.OrganizationMembers.SingleOrDefault(m2 => m2.PeopleId == peopleId && m2.OrganizationId == organizationId);
                    if (m != null)
                    {
                        m.Pending = pending;
                        if (m.MemberTypeId == MemberTypeCode.Member || m.MemberTypeId == 0 || m.MemberTypeId == MemberTypeCode.Prospect)
                        {
                            m.MemberTypeId = memberTypeId;
                        }
                        db.SubmitChanges();
                        return(m);
                    }
                    var om = new OrganizationMember
                    {
                        OrganizationId = organizationId,
                        PeopleId       = peopleId,
                        MemberTypeId   = memberTypeId,
                        EnrollmentDate = enrollmentDate,
                        InactiveDate   = inactiveDate,
                        CreatedDate    = Util.Now,
                        Pending        = pending,
                        SkipInsertTriggerProcessing = skipTriggerProcessing
                    };

                    var et = new EnrollmentTransaction
                    {
                        OrganizationId    = om.OrganizationId,
                        PeopleId          = om.PeopleId,
                        MemberTypeId      = om.MemberTypeId,
                        OrganizationName  = name,
                        TransactionDate   = enrollmentDate,
                        EnrollmentDate    = enrollmentDate,
                        TransactionTypeId = 1,
                        // join
                        CreatedBy                   = db.UserId1,
                        CreatedDate                 = Util.Now,
                        Pending                     = pending,
                        AttendancePercentage        = om.AttendPct,
                        SkipInsertTriggerProcessing = skipTriggerProcessing
                    };

                    db.OrganizationMembers.InsertOnSubmit(om);
                    db.EnrollmentTransactions.InsertOnSubmit(et);

                    db.SubmitChanges();
                    return(om);
                }
                catch (SqlException ex)
                {
                    if (ex.Number == 1205)
                    {
                        if (--ntries > 0)
                        {
                            System.Threading.Thread.Sleep(500);
                            continue;
                        }
                    }

                    throw;
                }
            }
        }
Пример #14
0
 public EnrollmentTransaction Drop(CMSDataContext Db, DateTime dropdate, bool addToHistory)
 {
     Db.SubmitChanges();
     int ntries = 2;
     while (true)
     {
         try
         {
             var q = from o in Db.Organizations
                     where o.OrganizationId == OrganizationId
                     let count = Db.Attends.Count(a => a.PeopleId == PeopleId
                                                       && a.OrganizationId == OrganizationId
                                                       && (a.MeetingDate < DateTime.Today || a.AttendanceFlag == true))
                     select new { count, Organization.DaysToIgnoreHistory };
             var i = q.Single();
             if (!EnrollmentDate.HasValue)
                 EnrollmentDate = CreatedDate;
             var droptrans = new EnrollmentTransaction
                             {
                                 OrganizationId = OrganizationId,
                                 PeopleId = PeopleId,
                                 MemberTypeId = MemberTypeId,
                                 OrganizationName = Organization.OrganizationName,
                                 TransactionDate = dropdate,
                                 TransactionTypeId = 5,
                                 // drop
                                 CreatedBy = Util.UserId1,
                                 CreatedDate = Util.Now,
                                 Pending = Pending,
                                 AttendancePercentage = AttendPct,
                             };
             Db.EnrollmentTransactions.InsertOnSubmit(droptrans);
             Db.OrgMemMemTags.DeleteAllOnSubmit(this.OrgMemMemTags);
             Db.OrganizationMembers.DeleteOnSubmit(this);
             Db.ExecuteCommand("DELETE FROM dbo.SubRequest WHERE EXISTS(SELECT NULL FROM Attend a WHERE a.AttendId = AttendId AND a.OrganizationId = {0} AND a.MeetingDate > {1} AND a.PeopleId = {2})", OrganizationId, Util.Now, PeopleId);
             Db.ExecuteCommand("DELETE dbo.Attend WHERE OrganizationId = {0} AND MeetingDate > {1} AND PeopleId = {2} AND ISNULL(Commitment, 1) = 1", OrganizationId, Util.Now, PeopleId);
             return droptrans;
         }
         catch (SqlException ex)
         {
             if (ex.Number == 1205)
                 if (--ntries > 0)
                 {
                     Db.Dispose();
                     System.Threading.Thread.Sleep(500);
                     continue;
                 }
             throw;
         }
     }
 }
Пример #15
0
        public static OrganizationMember InsertOrgMembers(CMSDataContext db, int organizationId, int peopleId, int memberTypeId, DateTime enrollmentDate, DateTime? inactiveDate, bool pending, string name, bool skipTriggerProcessing = false)
        {
            db.SubmitChanges();
            var ntries = 2;
            while (true)
            {
                try
                {
                    var m = db.OrganizationMembers.SingleOrDefault(m2 => m2.PeopleId == peopleId && m2.OrganizationId == organizationId);
                    if (m != null)
                    {
                        m.Pending = pending;
                        m.MemberTypeId = memberTypeId;
                        db.SubmitChanges();
                        return m;
                    }
                    var om = new OrganizationMember
                    {
                        OrganizationId = organizationId,
                        PeopleId = peopleId,
                        MemberTypeId = memberTypeId,
                        EnrollmentDate = enrollmentDate,
                        InactiveDate = inactiveDate,
                        CreatedDate = Util.Now,
                        Pending = pending,
                        SkipInsertTriggerProcessing = skipTriggerProcessing
                    };

                    var et = new EnrollmentTransaction
                    {
                        OrganizationId = om.OrganizationId,
                        PeopleId = om.PeopleId,
                        MemberTypeId = om.MemberTypeId,
                        OrganizationName = name,
                        TransactionDate = enrollmentDate,
                        EnrollmentDate = enrollmentDate,
                        TransactionTypeId = 1,
                        // join
                        CreatedBy = Util.UserId1,
                        CreatedDate = Util.Now,
                        Pending = pending,
                        AttendancePercentage = om.AttendPct,
                        SkipInsertTriggerProcessing = skipTriggerProcessing
                    };

                    db.OrganizationMembers.InsertOnSubmit(om);
                    db.EnrollmentTransactions.InsertOnSubmit(et);

                    db.SubmitChanges();
                    return om;
                }
                catch (SqlException ex)
                {
                    if (ex.Number == 1205)
                        if (--ntries > 0)
                        {
                            System.Threading.Thread.Sleep(500);
                            continue;
                        }
                    throw;
                }
            }
        }
Пример #16
0
		private void attach_EnrollmentTransactions(EnrollmentTransaction entity)
		{
			this.SendPropertyChanging();
			entity.Person = this;
		}
Пример #17
0
 private void detach_EnrollmentTransactions(EnrollmentTransaction entity)
 {
     this.SendPropertyChanging();
     entity.Organization = null;
 }
Пример #18
0
 private void detach_EnrollmentTransactions(EnrollmentTransaction entity)
 {
     this.SendPropertyChanging();
     entity.MemberType = null;
 }
Пример #19
0
		private void detach_DescTransactions(EnrollmentTransaction entity)
		{
			this.SendPropertyChanging();
			entity.FirstTransaction = null;
		}
Пример #20
0
 private void detach_DescTransactions(EnrollmentTransaction entity)
 {
     this.SendPropertyChanging();
     entity.FirstTransaction = null;
 }
Пример #21
0
        public EnrollmentTransaction Drop(CMSDataContext db, CMSImageDataContext idb, DateTime dropdate, string orgname, bool skipTriggerProcessing = false)
        {
            db.SubmitChanges();
            while (true)
            {
                if (!EnrollmentDate.HasValue)
                {
                    EnrollmentDate = CreatedDate;
                }

                var sglist = (from mt in db.OrgMemMemTags
                              where mt.PeopleId == PeopleId
                              where mt.OrgId == OrganizationId
                              select mt.MemberTag.Name
                              ).ToList();
                var droptrans = new EnrollmentTransaction
                {
                    OrganizationId       = OrganizationId,
                    PeopleId             = PeopleId,
                    MemberTypeId         = MemberTypeId,
                    OrganizationName     = orgname,
                    EnrollmentDate       = EnrollmentDate, //Adding Enrollment Date to show on the system after droppíng member.
                    TransactionDate      = dropdate,
                    TransactionTypeId    = 5,              // drop
                    CreatedBy            = db.UserId1,
                    CreatedDate          = Util.Now,
                    Pending              = Pending,
                    AttendancePercentage = AttendPct,
                    InactiveDate         = InactiveDate,
                    UserData             = UserData,
                    Request              = Request,
                    ShirtSize            = ShirtSize,
                    Grade         = Grade,
                    Tickets       = Tickets,
                    RegisterEmail = RegisterEmail,
                    Score         = Score,
                    SmallGroups   = string.Join("\n", sglist),
                    SkipInsertTriggerProcessing = skipTriggerProcessing
                };

                db.EnrollmentTransactions.InsertOnSubmit(droptrans);
                db.OrgMemberExtras.DeleteAllOnSubmit(this.OrgMemberExtras);
                db.OrgMemMemTags.DeleteAllOnSubmit(this.OrgMemMemTags);
                db.SubmitChanges();
                foreach (var ev in this.OrgMemberExtras)
                {
                    var ev2 = new PrevOrgMemberExtra()
                    {
                        EnrollmentTranId = droptrans.TransactionId,
                        OrganizationId   = ev.OrganizationId,
                        PeopleId         = ev.PeopleId,
                        Field            = ev.Field,
                        StrValue         = ev.StrValue,
                        Data             = ev.Data,
                        BitValue         = ev.BitValue,
                        IntValue         = ev.IntValue,
                        DateValue        = ev.DateValue,
                    };
                    db.PrevOrgMemberExtras.InsertOnSubmit(ev2);
                    db.SubmitChanges();
                }
                DeleteDocuments(db, idb);
                db.OrgMemberExtras.DeleteAllOnSubmit(this.OrgMemberExtras);
                db.OrganizationMembers.DeleteOnSubmit(this);
                db.ExecuteCommand(@"
DELETE dbo.SubRequest
FROM dbo.SubRequest sr
JOIN dbo.Attend a ON a.AttendId = sr.AttendId
WHERE a.OrganizationId = {0}
AND a.MeetingDate > {1}
AND a.PeopleId = {2}
", OrganizationId, Util.Now, PeopleId);
                db.ExecuteCommand("DELETE dbo.Attend WHERE OrganizationId = {0} AND MeetingDate > {1} AND PeopleId = {2} AND ISNULL(Commitment, 1) = 1", OrganizationId, Util.Now, PeopleId);
                db.ExecuteCommand("DELETE dbo.Attend WHERE OrganizationId = {0} AND DATEADD(DAY, DATEDIFF(DAY, 0, MeetingDate), 0) = DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0) AND PeopleId = {1} AND AttendanceFlag = 0", OrganizationId, PeopleId);
                db.ExecuteCommand("UPDATE dbo.GoerSenderAmounts SET InActive = 1 WHERE OrgId = {0} AND (GoerId = {1} OR SupporterId = {1})", OrganizationId, PeopleId);
                return(droptrans);
            }
        }