public async Task <ActionResult> InviteUser(string inviteEmail) { if (!string.IsNullOrWhiteSpace(inviteEmail)) { int? householdId = User.Identity.GetHouseholdId(); string userId = User.Identity.GetUserId(); var user = db.Users.Find(userId); HouseholdInvitation invitation = new HouseholdInvitation(); invitation.InviteCode = Guid.NewGuid(); invitation.Email = inviteEmail; invitation.HouseholdId = householdId; db.HouseholdInvitations.Add(invitation); db.SaveChanges(); var svc = new EmailService(); var msg = new IdentityMessage(); msg.Destination = inviteEmail; msg.Subject = user.FullName + " has invited you to join JD Budget Planner"; msg.Body = user.FullName + " has invited you to join their household on JD Budget Planner! JD Budget Planner is an application for easily managing your transactions and financial budgeting. To join " + user.FullName + "'s household, visit jantoine.budgeter.azurewebsites.net and enter the following invitation code: " + invitation.InviteCode; await svc.SendAsync(msg); TempData["Message"] = "Your invitation has been sent!"; } return(RedirectToAction("Index")); }
public ActionResult DeleteConfirmed(int id) { HouseholdInvitation householdInvitation = db.HouseholdInvitations.Find(id); db.HouseholdInvitations.Remove(householdInvitation); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "Id,InviteCode,HouseholdId")] HouseholdInvitation householdInvitation) { if (ModelState.IsValid) { db.Entry(householdInvitation).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(householdInvitation)); }
public ActionResult Create([Bind(Include = "Id,InviteCode,HouseholdId")] HouseholdInvitation householdInvitation) { if (ModelState.IsValid) { db.HouseholdInvitations.Add(householdInvitation); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(householdInvitation)); }
// GET: HouseholdInvitations/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } HouseholdInvitation householdInvitation = db.HouseholdInvitations.Find(id); if (householdInvitation == null) { return(HttpNotFound()); } return(View(householdInvitation)); }
public async Task <object> SendHouseholdInvitation(ApplicationUser userToInvite) { try { //Get logged user var user = await i.SelectUserAsync(User.Identity.GetUserId <int>()); //First make sure that the user is not inviting himself or a non existent user var toUser = await i.FindUserByUserName(userToInvite.UserName); if (toUser != null) { if (toUser.Id == user.Id) { return(new { Succeed = false, Message = "You cannot send an invitation to yourself" }); } //Create a Household If User has none if (user.Household == null || user.Household == 0) { var household = new { Id = 0, Name = user.Name + " Household" }; var id = await i.InsertHousehold(household); user.Household = id; await i.UpdateUser(user); } //Make Sure that the user does not already belong tho the household if (user.Household == toUser.Household) { return(new { Succeed = false, Message = "Email/User '" + userToInvite.UserName + "' already belongs to this household!" }); } //Make sure that the user does not already has an invitation to that same household var invis = await i.GetInvitationsBy_ForHousehold(user.Household); if (invis.Count() > 0) { return(new { Succeed = false, Message = "Email/User '" + userToInvite.UserName + "' was already invited to this household!\nThe system is waiting for the user's response to the invitation." }); } HouseholdInvitation invitation = new HouseholdInvitation(); invitation.FromUser_Name = user.Name; invitation.ForHouseholdId = user.Household; invitation.FromUserId = user.Id; invitation.FromUser_UserName = user.UserName; invitation.ToUserId = toUser.Id; invitation.ToUser_UserName = toUser.UserName; var invitationId = await i.InsertInvitation(invitation); if (invitationId == 0) { return(new { Succeed = false, Message = "The invitation could not be created." }); } return(new { Succeed = true, Message = "Email/User '" + toUser.UserName + "' has been invited you household." }); } else { return(new { Succeed = false, Message = "The invitation could not be sent. \nThe user does not exist!" }); } } catch (Exception e) { throw new HttpResponseException(HttpStatusCode.BadRequest); } }