public void GetInvitedToEventReturnsOnlyPeopleInvitedToAnEvent() { using (var context = new EventContext()) { var eventUoW = new EventUnitOfWork(context); var userManager = new UserManager<AppUser>(new UserStore<AppUser>(context)); var user1 = context.Users.Single(t => t.UserName == "TestUser"); var user2 = context.Users.Single(t => t.UserName == "TestUser2"); var user3 = context.Users.Single(t => t.UserName == "TestUser3"); Event e1 = new Event(); e1.Brief = "User 1 Event"; e1.Visibility = EventVisibility.Private; e1.ModificationState = ModificationState.Added; e1.AppUser = user1; eventUoW.Events.Attach(e1); Invite i1 = new Invite(); i1.AppUser = user2; i1.Event = e1; i1.ModificationState = ModificationState.Added; eventUoW.Invites.Attach(i1); Invite i2 = new Invite(); i2.AppUser = user3; i2.Event = e1; i2.ModificationState = ModificationState.Added; eventUoW.Invites.Attach(i2); eventUoW.Save(); } using (var context = new EventContext()) { var eventUoW = new EventUnitOfWork(context); var userManager = new UserManager<AppUser>(new UserStore<AppUser>(context)); var e1 = context.Events.Single(t => t.Brief == "User 1 Event"); var user1 = context.Users.Single(t => t.UserName == "TestUser"); var user2 = context.Users.Single(t => t.UserName == "TestUser2"); var user3 = context.Users.Single(t => t.UserName == "TestUser3"); var invited = eventUoW.Invites.GetInvitedToEvent(e1); invited.Should().HaveCount(2); invited.Any(t => t.AppUser == null).Should().BeFalse(); invited.Any(t => t.AppUser == user1).Should().BeFalse(); invited.Any(t => t.AppUser == user2).Should().BeTrue(); invited.Any(t => t.AppUser == user3).Should().BeTrue(); } }
public void TransferInviteOwnershipShouldTransferAllInvites() { using (var context = new EventContext()) { var eventUoW = new EventUnitOfWork(context); var userManager = new UserManager<AppUser>(new UserStore<AppUser>(context)); var user1 = context.Users.Single(t => t.UserName == "TestUser"); var user2 = context.Users.Single(t => t.UserName == "TestUser2"); var user3 = context.Users.Single(t => t.UserName == "TestUser3"); Event e1 = new Event(); e1.Brief = "User 1 Event 1"; e1.Visibility = EventVisibility.Private; e1.ModificationState = ModificationState.Added; e1.AppUser = user1; eventUoW.Events.Attach(e1); Event e2 = new Event(); e2.Brief = "User 1 Event 2"; e2.Visibility = EventVisibility.Private; e2.ModificationState = ModificationState.Added; e2.AppUser = user1; eventUoW.Events.Attach(e2); Invite i1 = new Invite(); i1.AppUser = user2; i1.Event = e1; i1.Status = InviteStatus.Pending; i1.ModificationState = ModificationState.Added; eventUoW.Invites.Attach(i1); Invite i2 = new Invite(); i2.AppUser = user2; i2.Event = e2; i2.Status = InviteStatus.Pending; i2.ModificationState = ModificationState.Added; eventUoW.Invites.Attach(i2); eventUoW.Save(); } using (var context = new EventContext()) { var eventUoW = new EventUnitOfWork(context); var userManager = new UserManager<AppUser>(new UserStore<AppUser>(context)); var user1 = context.Users.Single(t => t.UserName == "TestUser"); var user2 = context.Users.Single(t => t.UserName == "TestUser2"); var user3 = context.Users.Single(t => t.UserName == "TestUser3"); eventUoW.Invites.TransferInviteOwnership(user2, user3); eventUoW.Save(); } using (var context = new EventContext()) { var eventUoW = new EventUnitOfWork(context); var userManager = new UserManager<AppUser>(new UserStore<AppUser>(context)); var user1 = context.Users.Single(t => t.UserName == "TestUser"); var user2 = context.Users.Single(t => t.UserName == "TestUser2"); var user3 = context.Users.Single(t => t.UserName == "TestUser3"); context.Invites.Where(t => t.AppUserId == user2.Id).ToList().Should().HaveCount(0); context.Invites.Where(t => t.AppUserId == user3.Id).ToList().Should().HaveCount(2); } }
public void RemoveInvitesByHostRemovesAllInvitesByASpecificHost() { using (var context = new EventContext()) { var eventUoW = new EventUnitOfWork(context); var userManager = new UserManager<AppUser>(new UserStore<AppUser>(context)); var user1 = context.Users.Single(t => t.UserName == "TestUser"); var user2 = context.Users.Single(t => t.UserName == "TestUser2"); var user3 = context.Users.Single(t => t.UserName == "TestUser3"); Event e1 = new Event(); e1.Brief = "User 1 Event 1"; e1.Visibility = EventVisibility.Private; e1.ModificationState = ModificationState.Added; e1.AppUser = user1; eventUoW.Events.Attach(e1); Event e2 = new Event(); e2.Brief = "User 3 Event 1"; e2.Visibility = EventVisibility.Private; e2.ModificationState = ModificationState.Added; e2.AppUser = user3; eventUoW.Events.Attach(e2); Invite i1 = new Invite(); i1.AppUser = user2; i1.Event = e1; i1.Status = InviteStatus.Pending; i1.ModificationState = ModificationState.Added; eventUoW.Invites.Attach(i1); Invite i2 = new Invite(); i2.AppUser = user2; i2.Event = e2; i2.Status = InviteStatus.Pending; i2.ModificationState = ModificationState.Added; eventUoW.Invites.Attach(i2); eventUoW.Save(); } using (var context = new EventContext()) { var eventUoW = new EventUnitOfWork(context); var userManager = new UserManager<AppUser>(new UserStore<AppUser>(context)); var user1 = context.Users.Single(t => t.UserName == "TestUser"); var user2 = context.Users.Single(t => t.UserName == "TestUser2"); var user3 = context.Users.Single(t => t.UserName == "TestUser3"); eventUoW.Invites.RemoveInvitesByHost(user2, user1); eventUoW.Save(); } using (var context = new EventContext()) { var eventUoW = new EventUnitOfWork(context); var userManager = new UserManager<AppUser>(new UserStore<AppUser>(context)); var user1 = context.Users.Single(t => t.UserName == "TestUser"); var user2 = context.Users.Single(t => t.UserName == "TestUser2"); var user3 = context.Users.Single(t => t.UserName == "TestUser3"); var invites = context.Invites.Include(t => t.Event).Where(t => t.AppUserId == user2.Id).ToList(); invites.Any(t => t.Event.OwnerId == user1.Id).Should().BeFalse(); } }
public void IsInvitedIsOnlyTrueWhenTheUserIsInvitedToAnEvent() { int id = 0; using (var context = new EventContext()) { var eventUoW = new EventUnitOfWork(context); var userManager = new UserManager<AppUser>(new UserStore<AppUser>(context)); var user1 = context.Users.Single(t => t.UserName == "TestUser"); var user2 = context.Users.Single(t => t.UserName == "TestUser2"); var user3 = context.Users.Single(t => t.UserName == "TestUser3"); Event e1 = new Event(); e1.Brief = "User 1 Event"; e1.Visibility = EventVisibility.Private; e1.ModificationState = ModificationState.Added; e1.AppUser = user1; eventUoW.Events.Attach(e1); Invite i1 = new Invite(); i1.AppUser = user2; i1.Event = e1; i1.ModificationState = ModificationState.Added; eventUoW.Invites.Attach(i1); eventUoW.Save(); id = e1.Id; } using (var context = new EventContext()) { var eventUoW = new EventUnitOfWork(context); var userManager = new UserManager<AppUser>(new UserStore<AppUser>(context)); var user1 = context.Users.Single(t => t.UserName == "TestUser"); var user2 = context.Users.Single(t => t.UserName == "TestUser2"); var user3 = context.Users.Single(t => t.UserName == "TestUser3"); var e = eventUoW.Events.GetEventByID(id); eventUoW.Invites.IsInvited(e, user2).Should().BeTrue(); eventUoW.Invites.IsInvited(e, user3).Should().BeFalse(); } }
public void MarkAllInvitesAsSeenShouldResetTheUnseenInviteCount() { using (var context = new EventContext()) { var eventUoW = new EventUnitOfWork(context); var userManager = new UserManager<AppUser>(new UserStore<AppUser>(context)); var user1 = context.Users.Single(t => t.UserName == "TestUser"); var user2 = context.Users.Single(t => t.UserName == "TestUser2"); Event e1 = new Event(); e1.Brief = "User 1 Event 1"; e1.Visibility = EventVisibility.Private; e1.ModificationState = ModificationState.Added; e1.AppUser = user1; eventUoW.Events.Attach(e1); Event e2 = new Event(); e2.Brief = "User 1 Event 2"; e2.Visibility = EventVisibility.Private; e2.ModificationState = ModificationState.Added; e2.AppUser = user1; eventUoW.Events.Attach(e2); Invite i1 = new Invite(); i1.AppUser = user2; i1.Event = e1; i1.Status = InviteStatus.Pending; i1.ModificationState = ModificationState.Added; eventUoW.Invites.Attach(i1); Invite i2 = new Invite(); i2.AppUser = user2; i2.Event = e2; i2.Status = InviteStatus.Pending; i2.ModificationState = ModificationState.Added; eventUoW.Invites.Attach(i2); eventUoW.Save(); } using (var context = new EventContext()) { var eventUoW = new EventUnitOfWork(context); var userManager = new UserManager<AppUser>(new UserStore<AppUser>(context)); var user1 = context.Users.Single(t => t.UserName == "TestUser"); var user2 = context.Users.Single(t => t.UserName == "TestUser2"); var count = eventUoW.Invites.GetUnseenPendingInvitesCount(user2); count.Should().Be(2); eventUoW.Invites.MarkAllInvitesAsSeen(user2); eventUoW.Save(); } using (var context = new EventContext()) { var eventUoW = new EventUnitOfWork(context); var userManager = new UserManager<AppUser>(new UserStore<AppUser>(context)); var user1 = context.Users.Single(t => t.UserName == "TestUser"); var user2 = context.Users.Single(t => t.UserName == "TestUser2"); var count = eventUoW.Invites.GetUnseenPendingInvitesCount(user2); count.Should().Be(0); } }
public void GetPendingInvitesWithEventGraphReturnsOnlyEventsTheUserIsInvitedTo() { using (var context = new EventContext()) { var eventUoW = new EventUnitOfWork(context); var userManager = new UserManager<AppUser>(new UserStore<AppUser>(context)); var user1 = context.Users.Single(t => t.UserName == "TestUser"); var user2 = context.Users.Single(t => t.UserName == "TestUser2"); var user3 = context.Users.Single(t => t.UserName == "TestUser3"); Event e1 = new Event(); e1.Brief = "User 1 Event 1"; e1.Visibility = EventVisibility.Private; e1.ModificationState = ModificationState.Added; e1.AppUser = user1; eventUoW.Events.Attach(e1); Event e2 = new Event(); e2.Brief = "User 1 Event 2"; e2.Visibility = EventVisibility.Private; e2.ModificationState = ModificationState.Added; e2.AppUser = user1; eventUoW.Events.Attach(e2); Event e3 = new Event(); e3.Brief = "User 2 Event"; e3.Visibility = EventVisibility.Private; e3.ModificationState = ModificationState.Added; e3.AppUser = user2; eventUoW.Events.Attach(e3); Invite i1 = new Invite(); i1.AppUser = user2; i1.Event = e1; i1.ModificationState = ModificationState.Added; eventUoW.Invites.Attach(i1); Invite i2 = new Invite(); i2.AppUser = user3; i2.Event = e1; i2.ModificationState = ModificationState.Added; eventUoW.Invites.Attach(i2); Invite i3 = new Invite(); i3.AppUser = user1; i3.Event = e2; i3.ModificationState = ModificationState.Added; eventUoW.Invites.Attach(i3); eventUoW.Save(); } using (var context = new EventContext()) { var eventUoW = new EventUnitOfWork(context); var userManager = new UserManager<AppUser>(new UserStore<AppUser>(context)); var user1 = context.Users.Single(t => t.UserName == "TestUser"); var user2 = context.Users.Single(t => t.UserName == "TestUser2"); var user3 = context.Users.Single(t => t.UserName == "TestUser3"); var invites = eventUoW.Invites.GetPendingInvitesWithEventGraph(user2); invites.Should().HaveCount(1); invites.Single().Event.Brief.Should().Be("User 1 Event 1"); } }
public ActionResult JoinEvent(int eventId) { var _event = eventUoW.Events.GetEventByID(eventId); if(_event == null) { return new HttpStatusCodeResult(HttpStatusCode.NotFound); } if (_event.Visibility == EventVisibility.Private) { return new HttpStatusCodeResult(HttpStatusCode.NotFound); } var user = eventUoW.Users.GetUserById(User.Identity.GetUserId()); if(user == null) { return new HttpStatusCodeResult(HttpStatusCode.NotFound); } if(eventUoW.Invites.IsInvited(_event, user)) { return new HttpStatusCodeResult(HttpStatusCode.Forbidden); } Invite invite = new Invite(); invite.EventId = eventId; invite.AppUserId = user.Id; invite.ModificationState = ModificationState.Added; invite.Seen = true; invite.Status = InviteStatus.Accepted; eventUoW.Invites.Attach(invite); eventUoW.Save(); return RedirectToAction("Details", "Event", new { id = eventId}); }
public ActionResult InviteByUsername(int eventId, string username) { InviteUsernameViewModel result = new InviteUsernameViewModel(); Event e = eventUoW.Events.GetEventByID(eventId); if (e == null) { result.InviteResult = InviteUsernameViewModel.Result.EventNotFound; return Json(result); } if (User.Identity.GetUserId() != e.OwnerId) { result.InviteResult = InviteUsernameViewModel.Result.InviterIsNotOwner; return Json(result); } AppUser user = eventUoW.Users.GetUserByUsername(username); if (user == null) { result.InviteResult = InviteUsernameViewModel.Result.UserNotFound; return Json(result); } if (user.Id == e.OwnerId) { result.InviteResult = InviteUsernameViewModel.Result.UserIsOwner; return Json(result); } if (eventUoW.Invites.IsInvited(e, user)) { result.InviteResult = InviteUsernameViewModel.Result.UserIsAlreadyInvited; return Json(result); } Invite invite = new Invite { Event = e, AppUser = user, Status = InviteStatus.Pending, ModificationState = ModificationState.Added }; eventUoW.Invites.Attach(invite); eventUoW.Save(); result.InviteResult = InviteUsernameViewModel.Result.Invited; return Json(result); }
public void Attach(Invite entity) { context.Invites.Add(entity); ContextStateHelper.ApplyStateChanges(context); }
public void GetAllInvitedEventsOnlyReturnsEventsThisUserIsInvitedTo() { using (var context = new EventContext()) { var eventUoW = new EventUnitOfWork(context); var userManager = new UserManager<AppUser>(new UserStore<AppUser>(context)); var user1 = context.Users.Single(t => t.UserName == "TestUser"); var user2 = context.Users.Single(t => t.UserName == "TestUser2"); Event e1 = new Event(); e1.Brief = "User 1 Event"; e1.Visibility = EventVisibility.Private; e1.ModificationState = ModificationState.Added; e1.AppUser = user1; eventUoW.Events.Attach(e1); Event e2 = new Event(); e2.Brief = "User 2 Event"; e2.Visibility = EventVisibility.Private; e2.ModificationState = ModificationState.Added; e2.AppUser = user2; eventUoW.Events.Attach(e2); Event e3 = new Event(); e3.Brief = "User 1 Public Event"; e3.Visibility = EventVisibility.Public; e3.ModificationState = ModificationState.Added; e3.AppUser = user1; eventUoW.Events.Attach(e3); Invite i = new Invite(); i.AppUser = user2; i.Event = e1; i.ModificationState = ModificationState.Added; eventUoW.Invites.Attach(i); eventUoW.Save(); } using (var context = new EventContext()) { var eventUoW = new EventUnitOfWork(context); var userManager = new UserManager<AppUser>(new UserStore<AppUser>(context)); var user2 = context.Users.Single(t => t.UserName == "TestUser2"); List<Event> events = eventUoW.Events.GetAllInvitedEvents(user2); events.Should().HaveCount(1); events[0].Brief.Should().Be("User 1 Event"); } }