public async Task Update(AddressBook addressBook) { if (context.Entry(addressBook).State == EntityState.Detached) { context.AddressBooks.Add(addressBook); } await context.SaveChangesAsync(); }
public void Dispose() { var createdNotifications = context.NotificationApplications.Where(n => !preRunNotifications.Contains(n.Id)) .Select(n => n.Id) .ToArray(); foreach (var createdNotification in createdNotifications) { DatabaseDataDeleter.DeleteDataForNotification(createdNotification, context); } context.Entry(ownerUser).State = EntityState.Deleted; context.Entry(sharedUser).State = EntityState.Deleted; context.SaveChanges(); context.Dispose(); }
public async Task UpdateOrganisation_BusinessType_Should_Not_Remove_Organisation() { //Create new user var newUser = UserFactory.Create(userId, "testFirst", "testLast", "9999", "*****@*****.**"); //Create new org var country = context.Countries.Single(c => c.IsoAlpha2Code.Equals("gb")); var address = TestAddress(country); var org = new Organisation("SFW Ltd", BusinessType.LimitedCompany); try { context.Users.Add(newUser); await context.SaveChangesAsync(); context.Organisations.Add(org); await context.SaveChangesAsync(); //Assign org to user newUser.LinkToOrganisation(org); await context.SaveChangesAsync(); //Hold OrgID of newly created entity var oldOrgId = org.Id; //Update org with change in Business Type org = new Organisation("Name Changed", BusinessType.SoleTrader); context.Organisations.Add(org); await context.SaveChangesAsync(); //Update user with newly created org2 var user = await context.Users.SingleAsync(u => u.Id == newUser.Id); user.UpdateOrganisationOfUser(org); await context.SaveChangesAsync(); Assert.True(user.Organisation.Id == org.Id); //Both Orgs should have different OrgIds Assert.False(oldOrgId == org.Id); //Check if old org exists var oldExists = context.Organisations.Any(x => x.Id == oldOrgId); Assert.True(oldExists); //Check if new org exists var newExists = context.Organisations.Any(x => x.Id == org.Id); Assert.True(newExists); } finally { context.DeleteOnCommit(org); context.Entry(newUser).State = EntityState.Deleted; context.SaveChanges(); } }
public async Task RandomExternalUserAccessThrowsException() { var notification = NotificationApplicationFactory.Create(Guid.NewGuid(), NotificationType.Recovery, UKCompetentAuthority.England, 20181); var aspnetInternalUser = UserFactory.Create(Guid.NewGuid(), "Internal", "Internal Last", "12345", "*****@*****.**"); var aspnetSharedUser = UserFactory.Create(Guid.NewGuid(), "External", "Shared", "12345", "*****@*****.**"); var localArea = new LocalArea(Guid.NewGuid(), "Test Area", (int)UKCompetentAuthority.England); context.NotificationApplications.Add(notification); context.Users.Add(aspnetInternalUser); context.Users.Add(aspnetSharedUser); context.LocalAreas.Add(localArea); await context.SaveChangesAsync(); var internalUser = new InternalUser(aspnetInternalUser.Id, "test", UKCompetentAuthority.England, localArea.Id); //Shared user is different to the user context. var sharedUser = new SharedUser(notification.Id, aspnetSharedUser.Id, DateTimeOffset.Now); context.SharedUser.Add(sharedUser); await context.SaveChangesAsync(); context.InternalUsers.Add(internalUser); await context.SaveChangesAsync(); await Assert.ThrowsAsync <SecurityException>(() => context.GetNotificationApplication(notification.Id)); context.DeleteOnCommit(internalUser); context.DeleteOnCommit(sharedUser); await context.SaveChangesAsync(); context.Entry(aspnetInternalUser).State = EntityState.Deleted; context.Entry(aspnetSharedUser).State = EntityState.Deleted; context.Entry(localArea).State = EntityState.Deleted; await context.SaveChangesAsync(); context.DeleteOnCommit(notification); await context.SaveChangesAsync(); }
public async Task InternalUserSameCompetentAuthorityAccess() { // Setup. var notification = NotificationApplicationFactory.Create(Guid.NewGuid(), NotificationType.Recovery, UKCompetentAuthority.England, 20181); var aspnetInternalUser = UserFactory.Create(Guid.NewGuid(), "Internal", "Internal Last", "12345", "*****@*****.**"); var localArea = new LocalArea(Guid.NewGuid(), "Test Area", (int)UKCompetentAuthority.England); context.NotificationApplications.Add(notification); context.Users.Add(aspnetInternalUser); context.LocalAreas.Add(localArea); await context.SaveChangesAsync(); var internalUser = new InternalUser(aspnetInternalUser.Id, "test", UKCompetentAuthority.England, localArea.Id); context.InternalUsers.Add(internalUser); await context.SaveChangesAsync(); A.CallTo(() => userContext.UserId).Returns(Guid.Parse(internalUser.UserId)); var authorization = new NotificationApplicationAuthorization(context, userContext); // Assert. // There's no assertion for 'does not throw exception' so just executing it as normal. await authorization.EnsureAccessAsync(notification.Id); // Clear data. context.DeleteOnCommit(internalUser); await context.SaveChangesAsync(); context.Entry(aspnetInternalUser).State = EntityState.Deleted; context.Entry(localArea).State = EntityState.Deleted; await context.SaveChangesAsync(); context.DeleteOnCommit(notification); await context.SaveChangesAsync(); }