Beispiel #1
0
        public ActionResult ProcessInvite(int id, string verb)
        {
            string result;
            var us = new UserService();
            var invitation = us.GetInvitation(id);
            if (invitation == null) return RedirectToAction("Index", "Home");

            //invitation sent to already resgistered user
            if (invitation.Invitee != null)
            {
                //current logged user is target user
                if (invitation.Invitee.Id == SessionStorage.User.Id)
                    result = us.ProcessInvitation(invitation, verb, SessionStorage.User.Id);
                    //non-authorized
                else
                    return RedirectToAction("Index", "Home");
            }
            //we look for email in database
            else
            {
                var userId = us.GetUserIdByEmail(invitation.InviteeEmail);
                if (userId == -1)
                {
                    if (verb == "block")
                        result = us.ProcessInvitation(invitation, "block", 0);
                    else
                    {
                        TempData["InformationMessage"] = "You should register before processing";
                        return RedirectToAction("Index", "Home");
                    }
                }
                else
                    result = us.ProcessInvitation(invitation, verb, userId);
            }
            TempData["InformationMessage"] = result;
            return RedirectToAction("Shared", "Project");
        }