public void GivenStudentAssignedOfferingIsActive_WhenGenerateEditViewModel_ThenAuditDataPopulated()
        {
            int entityId;
            using (EducationDataContext setupContext = new EducationDataContext())
            {
                StudentAssignedOffering entity = setupContext.StudentAssignedOfferings.Single(a => a.LastModifyingUser != null);
                entity.IsActive = true;
                setupContext.SaveChanges();
                entityId = entity.Id;
            }

            StudentServiceOfferingScheduleModel actual = Target.GenerateEditViewModel(User, entityId);

            Assert.IsNotNull(actual.Audit.CreatedBy);
            Assert.AreNotEqual(DateTime.MinValue, actual.Audit.CreateTime);
            Assert.IsNotNull(actual.Audit.LastModifiedBy);
            Assert.IsTrue(actual.Audit.LastModifyTime.HasValue);
        }
        public void GivenProviderWithApprovingStudents_WhenDelete_ThenNoApprovedProviderMappingsToDeletedProvider()
        {
            int toDeleteId;
            using (EducationDataContext setupContext = new EducationDataContext())
            {
                Provider temp = new Provider
                {
                    Name = "blah blah blah",
                    IsActive = true,
                    ApprovingStudents = setupContext.Students.ToList()
                };
                foreach (Student student in temp.ApprovingStudents)
                {
                    student.ApprovedProviders.Add(temp);
                }
                setupContext.Providers.Add(temp);
                setupContext.SaveChanges();
                toDeleteId = temp.Id;
            }

            Target.Delete(toDeleteId);

            Assert.IsFalse(EducationContext.Students.Any(s => s.ApprovedProviders.Select(p => p.Id).Contains(toDeleteId)));
        }
        public void GivenProviderWithUserAssociations_WhenDelete_ThenNoUserAssociationsToDeletedProvider()
        {
            int toDeleteId;
            using (EducationDataContext setupContext = new EducationDataContext())
            {
                Provider temp = new Provider
                {
                    Name = "halb halb halb",
                    IsActive = true,
                    UserRoles = setupContext.UserRoles.Where(u => u.Role.Name == SecurityRoles.Provider).ToList()
                };
                foreach (UserRole userRole in temp.UserRoles)
                {
                    userRole.Providers.Add(temp);
                }
                setupContext.Providers.Add(temp);
                setupContext.SaveChanges();
                toDeleteId = temp.Id;
            }

            Target.Delete(toDeleteId);

            Assert.IsFalse(EducationContext.UserRoles.Any(u => u.Providers.Select(p => p.Id).Contains(toDeleteId)));
        }
 private static ServiceRequest CreateServiceRequestInDatabase(int creatingUserId, int priorityId)
 {
     using (EducationDataContext context = new EducationDataContext())
     {
         ServiceRequestFulfillment newServiceRequestFulfillment = new ServiceRequestFulfillment { FulfillmentStatusId = 1, Notes = "Test", CreatingUserId = 1 };
         ServiceRequest newRequestToEdit = new ServiceRequest { CreatingUserId = creatingUserId, PriorityId = priorityId, ServiceTypeId = 1, StudentId = 6, SubjectId = 2, FulfillmentDetails = new List<ServiceRequestFulfillment> { newServiceRequestFulfillment } };
         context.ServiceRequests.Add(newRequestToEdit);
         context.SaveChanges();
         return newRequestToEdit;
     }
 }
 private void CreateFavoriteServiceOfferingInDatabase(int serviceOfferingId)
 {
     using (EducationDataContext context = new EducationDataContext())
     {
         User currentUser = context.Users.Single(u => u.UserKey == User.Identity.User.UserKey);
         ServiceOffering offeringToLink = context.ServiceOfferings.Single(o => o.Id == serviceOfferingId);
         currentUser.FavoriteServiceOfferings.Add(offeringToLink);
         offeringToLink.UsersLinkingAsFavorite.Add(currentUser);
         context.SaveChanges();
     }
 }
        public void GivenUserIds_WhenUpdateActiveStatus_ThenAuditRecordsIncludesRoles_AndAuditRecordsIncludesProviders_AndAuditRecordsIncludesSchools()
        {
            User userEntity = EducationContext.Users.First();
            EducationSecurityPrincipal user = new EducationSecurityPrincipal(userEntity);
            User newUser1 = new User
            {
                UserKey = "oranges!",
                DisplayName = "oranges!",
                EmailAddress = "*****@*****.**",
                FirstName = "Yum",
                LastName = "Good"
            };
            User newUser2 = new User
            {
                UserKey = "bananas!",
                DisplayName = "bananas!",
                EmailAddress = "*****@*****.**",
                FirstName = "Yum",
                LastName = "Good"
            };
            using (EducationDataContext setupContext = new EducationDataContext())
            {
                Role role = setupContext.Roles.First();
                List<Provider> providers = setupContext.Providers.Take(2).ToList();
                List<School> schools = setupContext.Schools.Take(2).ToList();
                newUser1.UserRoles = new List<UserRole>
                {
                    new UserRole
                    {
                        User = newUser1,
                        Role = role,
                        Providers = providers,
                        Schools = schools,
                        CreatingUserId = userEntity.Id
                    }
                };
                newUser2.UserRoles = new List<UserRole>
                {
                    new UserRole
                    {
                        User = newUser2,
                        Role = role,
                        Providers = providers,
                        Schools = schools,
                        CreatingUserId = userEntity.Id
                    }
                };
                setupContext.Users.Add(newUser1);
                setupContext.Users.Add(newUser2);
                setupContext.SaveChanges();
            }
            int[] ids = new [] { newUser1.Id, newUser2.Id };

            Target.UpdateActiveStatus(ids, true, user);

            using (EducationDataContext verifyContext = new EducationDataContext())
            {
                var auditEventEntries = verifyContext.UserAccessChangeEvents.Where(e => ids.Contains(e.UserId));
                Assert.AreEqual(2, auditEventEntries.Count());
                foreach (var actual in auditEventEntries)
                {
                    Assert.IsFalse(actual.AccessXml.Element("roles").IsEmpty);
                    Assert.IsFalse(actual.AccessXml.Element("providers").IsEmpty);
                    Assert.IsFalse(actual.AccessXml.Element("schools").IsEmpty);
                }
            }
        }
        public void GivenUserId_WhenUpdateActiveStatus_ThenAuditRecordIncludesRoles_AndAuditRecordIncludesProviders_AndAuditRecordIncludesSchools()
        {
            User userEntity = EducationContext.Users.First();
            EducationSecurityPrincipal user = new EducationSecurityPrincipal(userEntity);
            User newUser = new User
            {
                UserKey = "apples!",
                DisplayName = "apples!",
                EmailAddress = "*****@*****.**",
                FirstName = "Yum",
                LastName = "Good"
            };
            using (EducationDataContext setupContext = new EducationDataContext())
            {
                newUser.UserRoles = new List<UserRole>
                {
                    new UserRole
                    {
                        Role = setupContext.Roles.First(),
                        Providers = setupContext.Providers.Take(2).ToList(),
                        Schools = setupContext.Schools.Take(2).ToList(),
                        CreatingUserId = userEntity.Id
                    }
                };
                setupContext.Users.Add(newUser);
                setupContext.SaveChanges();
            }

            Target.UpdateActiveStatus(newUser.Id, true, user);

            using (EducationDataContext verifyContext = new EducationDataContext())
            {
                var actual = verifyContext.UserAccessChangeEvents.Single(e => e.UserId == newUser.Id);
                Assert.IsFalse(actual.AccessXml.Element("roles").IsEmpty);
                Assert.IsFalse(actual.AccessXml.Element("providers").IsEmpty);
                Assert.IsFalse(actual.AccessXml.Element("schools").IsEmpty);
            }
        }