CmsData.OrganizationMember.MoveToOrg C# (CSharp) Method

MoveToOrg() public static method

public static MoveToOrg ( CmsData.CMSDataContext db, int pid, int fromOrg, int toOrg, bool moveregdata = true, int toMemberTypeId = -1 ) : void
db CmsData.CMSDataContext
pid int
fromOrg int
toOrg int
moveregdata bool
toMemberTypeId int
return void
        public static void MoveToOrg(CMSDataContext db, int pid, int fromOrg, int toOrg, bool? moveregdata = true, int toMemberTypeId = -1)
        {
            if (fromOrg == toOrg)
                return;
            var om = db.OrganizationMembers.Single(m => m.PeopleId == pid && m.OrganizationId == fromOrg);
            var tom = db.OrganizationMembers.SingleOrDefault(m => m.PeopleId == pid && m.OrganizationId == toOrg);
            if (tom == null)
            {
                tom = InsertOrgMembers(db,
                    toOrg, pid, MemberTypeCode.Member, DateTime.Now, null, om.Pending ?? false);
                if (tom == null)
                    return;
            }
            tom.MemberTypeId = toMemberTypeId != -1
                ? toMemberTypeId
                : om.MemberTypeId;
            tom.UserData = om.UserData;

            if (om.Pending == true) // search for PromotingTo Extra Value to update
            {
                var fromev = (from vv in db.OrgMemberExtras
                             where vv.PeopleId == om.PeopleId
                             where vv.IntValue == om.OrganizationId
                             where vv.Field == "PromotingTo"
                             select vv).SingleOrDefault();
                if (fromev != null)
                    fromev.IntValue = tom.OrganizationId;
            }
            if (moveregdata == true)
            {
                tom.Request = om.Request;
                tom.Amount = om.Amount;
                tom.OnlineRegData = om.OnlineRegData;
                tom.RegistrationDataId = om.RegistrationDataId;
                tom.Grade = om.Grade;
                tom.RegisterEmail = om.RegisterEmail;
                tom.ShirtSize = om.ShirtSize;
                tom.TranId = om.TranId;
                tom.Tickets = om.Tickets;

                var sg = om.OrgMemMemTags.Select(mt => mt.MemberTag.Name).ToList();
                foreach (var s in sg)
                    tom.AddToGroup(db, s);
            }

            if (om.OrganizationId != tom.OrganizationId)
                tom.Moved = true;
            om.Drop(db);
            db.SubmitChanges();
        }

Usage Example

Ejemplo n.º 1
0
        public void MoveToOrg(int pid, int fromOrg, int toOrg, bool?moveregdata = true, int toMemberTypeId = -1)
        {
            db.LogActivity($"PythonModel.MoveToOrg({pid},{fromOrg},{toOrg})");
            var db2 = NewDataContext();

            OrganizationMember.MoveToOrg(db2, pid, fromOrg, toOrg, moveregdata, toMemberTypeId);
        }
All Usage Examples Of CmsData.OrganizationMember::MoveToOrg