public ActionResult Link(string token)
        {
            if (token == null)
            {
                return(RedirectToAction("/pages/login"));
            }
            var            mgr       = new AdminMembersRepository();
            bool           isValid   = mgr.CheckTokenValidity(token);
            AddMemberToken fulltoken = mgr.GetToken(token);

            if (!isValid)
            {
                return(RedirectToAction("invalidToken"));
            }
            if (fulltoken.UserId != null)
            {
                mgr.SetupMemberRel(token, null, int.Parse(User.Identity.Name));
                return(RedirectToAction("success"));
            }
            else
            {
                //MemberViewModel vm = new MemberViewModel();
                //vm.Token = fulltoken;
                return(View(fulltoken));
            }
        }
 public void SetupMemberRel(string token, int?userid, int currentUserId)
 {
     using (DataLayerDataContext db = new DataLayerDataContext())
     {
         AddMemberToken   a = db.AddMemberTokens.FirstOrDefault(i => i.Token == token);
         UserOrganization u = new UserOrganization();
         if (a.UserId == null)
         {
             u.UserId = userid.Value;
         }
         else
         {
             u.UserId = a.UserId.Value;
         }
         u.Date       = DateTime.Now;
         u.OrgId      = a.OrgId;
         u.Permission = a.Permission;
         db.UserOrganizations.InsertOnSubmit(u);
         User j = db.Users.FirstOrDefault(r => r.Id == u.UserId);
         db.SubmitChanges();
         DeleteToken(a.Id);
         AddOrgAction(a.OrgId, currentUserId, j.FullName + " setup Relationship with you", DateTime.Now);
         AddAction(u.UserId, "Setup Relationship with organization " + u.Organization.Name, DateTime.Now);
     }
 }
 public AddMemberToken GetToken(string token)
 {
     using (DataLayerDataContext db = new DataLayerDataContext())
     {
         AddMemberToken a = db.AddMemberTokens.FirstOrDefault(i => i.Token == token);
         return(a);
     }
 }
 public void DeleteToken(int tokenid)
 {
     using (DataLayerDataContext db = new DataLayerDataContext())
     {
         AddMemberToken c = db.AddMemberTokens.FirstOrDefault(i => i.Id == tokenid);
         db.AddMemberTokens.DeleteOnSubmit(c);
         db.SubmitChanges();
     }
 }
 public bool CheckTokenValidity(string token)
 {
     using (DataLayerDataContext db = new DataLayerDataContext())
     {
         AddMemberToken a = db.AddMemberTokens.FirstOrDefault(i => i.Token == token);
         if (a == null)
         {
             return(false);
         }
         else
         {
             return(true);
         }
     }
 }
 public void AddMember(string email, int permission, string token, int?userid, int orgid)
 {
     using (DataLayerDataContext db = new DataLayerDataContext())
     {
         var t = new AddMemberToken();
         t.Email      = email;
         t.Permission = permission;
         t.Token      = token;
         t.OrgId      = orgid;
         if (userid != null)
         {
             t.UserId = userid;
         }
         db.AddMemberTokens.InsertOnSubmit(t);
         db.SubmitChanges();
     }
 }