コード例 #1
0
ファイル: BaseApiController.cs プロジェクト: soracte/NBudget
        protected void ProcessInviteeRelationship(Invitation invitation)
        {
            ApplicationUser recipient = UserManager.FindByEmail(invitation.RecipientEmail);
            if (recipient == null)
            {
                return;
            }

            ApplicationUser sender = UserManager.FindByEmail(invitation.Sender.Email);

            if (invitation.Status == InvitationStatus.Pending)
            {
                recipient.Inviters.Add(sender);
                sender.Invitees.Add(recipient);
                invitation.Status = InvitationStatus.Active;
            }

            else if (invitation.Status == InvitationStatus.Active)
            {
                recipient.Inviters.Remove(sender);
                sender.Invitees.Remove(recipient);
                invitation.Status = InvitationStatus.Inactive;
            }

            UserManager.Update(recipient);
            UserManager.Update(sender);
        }
コード例 #2
0
        public IHttpActionResult PostInvitation(NewInvitationBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            ApplicationUser currentUser = UserManager.FindById(User.Identity.GetUserId());
            Invitation invitation = new Invitation
            {
                RecipientEmail = model.RecipientEmail,
                Sender = currentUser,
                Status = InvitationStatus.Pending,
                CreationDate = DateTime.Now
            };

            ProcessInviteeRelationship(invitation);
            NotifyRecipientByEmail(model.RecipientEmail, currentUser.FirstName + ' ' + currentUser.LastName);

            db.Invitations.Add(invitation);
            db.SaveChanges();

            return CreatedAtRoute("DefaultApi", new { id = invitation.Id }, new { id = invitation.Id });
        }
コード例 #3
0
 private bool OwnInvitationExists(Invitation invitation)
 {
     return (invitation != null && invitation.Sender.Id == User.Identity.GetUserId());
 }