public async Task SeedAsync(EClinicDbContext dbContext, IServiceProvider serviceProvider)
        {
            if (dbContext == null)
            {
                throw new ArgumentNullException(nameof(dbContext));
            }

            if (serviceProvider == null)
            {
                throw new ArgumentNullException(nameof(serviceProvider));
            }

            var logger = serviceProvider.GetService <ILoggerFactory>().CreateLogger(typeof(ApplicationDbContextSeeder));

            var seeders = new List <ISeeder>
            {
                new RolesSeeder(),
                new SettingsSeeder(),
            };

            foreach (var seeder in seeders)
            {
                await seeder.SeedAsync(dbContext, serviceProvider);

                await dbContext.SaveChangesAsync();

                logger.LogInformation($"Seeder {seeder.GetType().Name} done.");
            }
        }
        public async void ShowLastAppointmentForUserShoulThrowExeption()
        {
            //Arrange

            var options = new DbContextOptionsBuilder <EClinicDbContext>()
                          .UseInMemoryDatabase(databaseName: "Appointment_CreateAppointment")
                          .Options;
            var dbContext = new EClinicDbContext(options);

            var appointmentService = new Mock <AppointmentService>(dbContext).Object;

            AutoMapperConfig.RegisterMappings(typeof(SetingViewModel).GetTypeInfo().Assembly);
            var mockUserStore = new Mock <IUserStore <EClinicUser> >();

            var userManager = new UserManager <EClinicUser>(mockUserStore.Object, null, null, null, null, null, null, null, null);

            var AdminUserToAdd = new EClinicUser
            {
                Email              = "*****@*****.**",
                FirstName          = "Ivo",
                MiddleName         = "Peshov",
                LastName           = "Petrov",
                UserName           = "******",
                NormalizedEmail    = "*****@*****.**",
                NormalizedUserName = "******",
                Address            = "Nqkyde Tam 35",
                Age           = 25,
                SecurityStamp = Guid.NewGuid().ToString(),
                CreatedOn     = DateTime.UtcNow,
            };

            var userToAdd = new EClinicUser
            {
                Email              = "*****@*****.**",
                FirstName          = "Petyr",
                MiddleName         = "Peshov",
                LastName           = "Petrov",
                UserName           = "******",
                NormalizedEmail    = "*****@*****.**",
                NormalizedUserName = "******",
                Address            = "I tuk i tam",
                Age           = 30,
                SecurityStamp = Guid.NewGuid().ToString(),
                CreatedOn     = DateTime.UtcNow,
            };

            dbContext.Users.Add(AdminUserToAdd);
            dbContext.Users.Add(userToAdd);

            dbContext.SaveChanges();

            var date = new DateTime(2019, 08, 03, 09, 00, 00);

            await appointmentService.CreateAppointment("*****@*****.**", "*****@*****.**", date);

            dbContext.Appointments.Where(x => true).ToList();


            await Assert.ThrowsAsync <ArgumentException>(async() => await appointmentService.ShowLastAppointmentForUser(""));
        }
示例#3
0
        public async void IndexControllerGetPageWhitNonExistingIdShuldReturnRedirectResult()
        {
            var options = new DbContextOptionsBuilder <EClinicDbContext>()
                          .UseInMemoryDatabase(databaseName: "Appointment_CreateAppointment")
                          .Options;
            var dbContext = new EClinicDbContext(options);

            //var mockUserStore = new Mock<IUserStore<EClinicUser>>();
            //var mockRoleManager = new Mock<IUserRoleStore<EClinicUser>>();

            //var userManager = new UserManager<EClinicUser>(mockUserStore.Object, null, null, null, null, null, null, null, null);
            //var userManager = MockHelpers.MockUserManager<EClinicUser>().Object;

            var menuService     = new Mock <MenuService>(dbContext).Object;
            var pageService     = new Mock <PageService>(dbContext).Object;
            var settingsService = new Mock <SettingsService>(dbContext).Object;

            AutoMapperConfig.RegisterMappings(typeof(SetingViewModel).GetTypeInfo().Assembly);

            var homeController = new HomeController(menuService, pageService, settingsService);

            await dbContext.Settings.AddAsync(new Setting { Name = "Site Name", Value = "eClinic" });

            await dbContext.Settings.AddAsync(new Setting { Name = "Phone Number", Value = "+123 987 887 765" });

            await dbContext.Settings.AddAsync(new Setting { Name = "E-Mail", Value = "*****@*****.**" });

            dbContext.SaveChanges();

            var result = await homeController.GetPage("sddsdds");



            Assert.IsType <RedirectResult>(result);
        }
示例#4
0
        public async Task SeedAsync(EClinicDbContext dbContext, IServiceProvider serviceProvider)
        {
            var roleManager = serviceProvider.GetRequiredService <RoleManager <IdentityRole> >();

            await SeedRoleAsync(roleManager, GlobalConstants.AdministratorRoleName);
            await SeedRoleAsync(roleManager, GlobalConstants.DoctorRoleName);
            await SeedRoleAsync(roleManager, GlobalConstants.UserRoleName);
            await SeedRoleAsync(roleManager, GlobalConstants.PharmacistRoleName);
        }
        public async void CreateAppointmentForUnexistingUserAndDoctorShouldThrowExeption()
        {
            var options = new DbContextOptionsBuilder <EClinicDbContext>()
                          .UseInMemoryDatabase(databaseName: "Appointment_CreateAppointment")
                          .Options;
            var dbContext = new EClinicDbContext(options);

            var appointmentService = new AppointmentService(dbContext);


            await Assert.ThrowsAsync <ArgumentException> (async() => await appointmentService.CreateAppointment(null, "*****@*****.**", new DateTime(2019, 08, 03, 09, 00, 00)));
        }
示例#6
0
        public async Task SeedAsync(EClinicDbContext dbContext, IServiceProvider serviceProvider)
        {
            if (dbContext.Settings.Any())
            {
                return;
            }

            await dbContext.Settings.AddAsync(new Setting { Name = "Site Name", Value = "eClinic" });

            await dbContext.Settings.AddAsync(new Setting { Name = "Phone Number", Value = "+123 987 887 765" });

            await dbContext.Settings.AddAsync(new Setting { Name = "E-Mail", Value = "*****@*****.**" });
        }
示例#7
0
        public async Task SeedAsync(EClinicDbContext dbContext, IServiceProvider serviceProvider)
        {
            if (dbContext.SitePages.Any())
            {
                return;
            }

            List <SitePages> pages = new List <SitePages>();

            pages.Add(new SitePages
            {
                Title   = "About Us",
                Content = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer neque libero, pulvinar et elementum quis, facilisis eu ante. " +
                          "Mauris non placerat sapien. Pellentesque tempor arcu non odio scelerisque ullamcorper. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam varius eros consequat auctor gravida. Fusce tristique lacus" +
                          " at urna sollicitudin pulvinar. Suspendisse hendrerit ultrices mauris." +
                          "Ut ultricies lacus a rutrum mollis.Orci varius natoque penatibus et magnis dis parturient montes, " +
                          "nascetur ridiculus mus.Sed porta dolor quis felis pulvinar dignissim.Etiam nisl ligula, " +
                          "ullamcorper non metus vitae, " +
                          "maximus efficitur mi.Vivamus ut ex ullamcorper," +
                          " scelerisque lacus nec, " +
                          "commodo dui.Proin massa urna, volutpat vel augue eget, iaculis tristique dui.",
                CreatedOn = DateTime.UtcNow,
            });

            pages.Add(new SitePages
            {
                Title   = "Contacts",
                Content = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer neque libero, pulvinar et elementum quis, facilisis eu ante. " +
                          "Mauris non placerat sapien. Pellentesque tempor arcu non odio scelerisque ullamcorper. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam varius eros consequat auctor gravida. Fusce tristique lacus" +
                          " at urna sollicitudin pulvinar. Suspendisse hendrerit ultrices mauris." +
                          "Ut ultricies lacus a rutrum mollis.Orci varius natoque penatibus et magnis dis parturient montes, " +
                          "nascetur ridiculus mus.Sed porta dolor quis felis pulvinar dignissim.Etiam nisl ligula, " +
                          "ullamcorper non metus vitae, " +
                          "maximus efficitur mi.Vivamus ut ex ullamcorper," +
                          " scelerisque lacus nec, " +
                          "commodo dui.Proin massa urna, volutpat vel augue eget, iaculis tristique dui.",
                CreatedOn = DateTime.UtcNow,
            });

            await dbContext.SitePages.AddRangeAsync(pages);


            //await dbContext.Users.AddAsync(
            //});
        }
示例#8
0
 public DoctorService(EClinicDbContext db, UserManager <EClinicUser> userManager)
 {
     this.db          = db;
     this.userManager = userManager;
 }
示例#9
0
 public SiteService(EClinicDbContext db)
 {
     this.db = db;
 }
示例#10
0
 public UsersService(EClinicDbContext db, UserManager <EClinicUser> userManager, IExamService examService)
 {
     this.db          = db;
     this.userManager = userManager;
     this.examService = examService;
 }
示例#11
0
        public async void CreateAppointmentForUnexistingUserAndDoctorShouldReturnTrue()
        {
            //Arrange

            var options = new DbContextOptionsBuilder <EClinicDbContext>()
                          .UseInMemoryDatabase(databaseName: "Appointment_CreateAppointment")
                          .Options;
            var dbContext = new EClinicDbContext(options);

            var appointmentService = new AppointmentService(dbContext);

            //var usrManager = MockHelpers.MockUserManager<EClinicUser>();

            var mockUserStore = new Mock <IUserStore <EClinicUser> >();

            var userManager = new UserManager <EClinicUser>(mockUserStore.Object, null, null, null, null, null, null, null, null);
            //userManager.UserValidators.Add(new UserValidator<EClinicUser>());
            //userManager.PasswordValidators.Add(new PasswordValidator<EClinicUser>());


            var AdminUserToAdd = new EClinicUser
            {
                Email              = "*****@*****.**",
                FirstName          = "Ivo",
                MiddleName         = "Peshov",
                LastName           = "Petrov",
                UserName           = "******",
                NormalizedEmail    = "*****@*****.**",
                NormalizedUserName = "******",
                Address            = "Nqkyde Tam 35",
                Age           = 25,
                SecurityStamp = Guid.NewGuid().ToString(),
                CreatedOn     = DateTime.UtcNow,
            };

            var userToAdd = new EClinicUser
            {
                Email              = "*****@*****.**",
                FirstName          = "Petyr",
                MiddleName         = "Peshov",
                LastName           = "Petrov",
                UserName           = "******",
                NormalizedEmail    = "*****@*****.**",
                NormalizedUserName = "******",
                Address            = "I tuk i tam",
                Age           = 30,
                SecurityStamp = Guid.NewGuid().ToString(),
                CreatedOn     = DateTime.UtcNow,
            };


            //await userManager.CreateAsync(AdminUserToAdd);
            //await userManager.CreateAsync(userToAdd);
            dbContext.Users.Add(AdminUserToAdd);
            dbContext.Users.Add(userToAdd);

            dbContext.SaveChanges();


            int count = dbContext.Users.Count();

            var result = await appointmentService.CreateAppointment("*****@*****.**", "*****@*****.**", new DateTime(2019, 08, 03, 09, 00, 00));


            Assert.True(result);
        }
示例#12
0
        public async Task SeedAsync(EClinicDbContext dbContext, IServiceProvider serviceProvider)
        {
            if (dbContext == null)
            {
                throw new ArgumentNullException(nameof(dbContext));
            }

            if (serviceProvider == null)
            {
                throw new ArgumentNullException(nameof(serviceProvider));
            }

            var logger = serviceProvider.GetService <ILoggerFactory>().CreateLogger(typeof(SiteDbContextSeeder));

            var userStore = serviceProvider.GetService <UserManager <EClinicUser> >();

            var seeders = new List <ISeeder>
            {
                new SiteSeeder(),
            };

            foreach (var seeder in seeders)
            {
                await seeder.SeedAsync(dbContext, serviceProvider);

                await dbContext.SaveChangesAsync();

                logger.LogInformation($"Seeder {seeder.GetType().Name} done.");
            }

            var AdminUserToAdd = new EClinicUser
            {
                Email              = "*****@*****.**",
                FirstName          = "Ivo",
                MiddleName         = "Peshov",
                LastName           = "Petrov",
                UserName           = "******",
                NormalizedEmail    = "*****@*****.**",
                NormalizedUserName = "******",
                Address            = "Nqkyde Tam 35",
                Age           = 25,
                SecurityStamp = Guid.NewGuid().ToString(),
                CreatedOn     = DateTime.UtcNow,
            };

            var userToAdd = new EClinicUser
            {
                Email              = "*****@*****.**",
                FirstName          = "Petyr",
                MiddleName         = "Peshov",
                LastName           = "Petrov",
                UserName           = "******",
                NormalizedEmail    = "*****@*****.**",
                NormalizedUserName = "******",
                Address            = "I tuk i tam",
                Age           = 30,
                SecurityStamp = Guid.NewGuid().ToString(),
                CreatedOn     = DateTime.UtcNow,
            };


            await userStore.CreateAsync(AdminUserToAdd, "123456");

            await userStore.CreateAsync(userToAdd, "123456");

            dbContext.SaveChanges();
            var adminUser = await userStore.FindByEmailAsync("*****@*****.**");

            var user = await userStore.FindByEmailAsync("*****@*****.**");

            await userStore.AddToRoleAsync(adminUser, GlobalConstants.AdministratorRoleName);

            await userStore.AddToRoleAsync(user, GlobalConstants.UserRoleName);
        }
示例#13
0
 public ExamService(EClinicDbContext db)
 {
     this.db = db;
 }
示例#14
0
 public MenuService(EClinicDbContext db)
 {
     this.db = db;
 }
示例#15
0
        public async void CreateExamWithNoPRescriptionShoulReturnFalse()
        {
            var options = new DbContextOptionsBuilder <EClinicDbContext>()
                          .UseInMemoryDatabase(databaseName: "Appointment_CreateAppointment")
                          .Options;
            var dbContext = new EClinicDbContext(options);

            //var mockUserStore = new Mock<IUserStore<EClinicUser>>();
            //var mockRoleManager = new Mock<IUserRoleStore<EClinicUser>>();

            //var userManager = new UserManager<EClinicUser>(mockUserStore.Object, null, null, null, null, null, null, null, null);
            var userManager = MockHelpers.MockUserManager <EClinicUser>().Object;

            var examService        = new Mock <ExamService>(dbContext).Object;
            var appointmentService = new Mock <AppointmentService>(dbContext).Object;
            var usersService       = new Mock <UsersService>(dbContext, userManager, examService).Object;

            AutoMapperConfig.RegisterMappings(typeof(SetingViewModel).GetTypeInfo().Assembly);



            var AdminUserToAdd = new EClinicUser
            {
                Email              = "*****@*****.**",
                FirstName          = "Ivo",
                MiddleName         = "Peshov",
                LastName           = "Petrov",
                UserName           = "******",
                NormalizedEmail    = "*****@*****.**",
                NormalizedUserName = "******",
                Address            = "Nqkyde Tam 35",
                Age           = 25,
                SecurityStamp = Guid.NewGuid().ToString(),
                CreatedOn     = DateTime.UtcNow,
            };

            var userToAdd = new EClinicUser
            {
                Email              = "*****@*****.**",
                FirstName          = "Petyr",
                MiddleName         = "Peshov",
                LastName           = "Petrov",
                UserName           = "******",
                NormalizedEmail    = "*****@*****.**",
                NormalizedUserName = "******",
                Address            = "I tuk i tam",
                Age           = 30,
                SecurityStamp = Guid.NewGuid().ToString(),
                CreatedOn     = DateTime.UtcNow,
            };

            dbContext.Users.Add(AdminUserToAdd);
            dbContext.Users.Add(userToAdd);

            dbContext.SaveChanges();


            var exam = new CreateExamInputModel()
            {
                Condition       = "good",
                DoctorUserName  = "******",
                Diagnose        = "ssdcsds",
                PatientUserName = "******",
                Prescription    = ""
            };

            bool result = await examService.CreateExam(exam);


            Assert.False(result);
        }
示例#16
0
        public async void GetUserWhitEmptyModelShoulThrowExeption()
        {
            var options = new DbContextOptionsBuilder <EClinicDbContext>()
                          .UseInMemoryDatabase(databaseName: "Appointment_CreateAppointment")
                          .Options;
            var dbContext = new EClinicDbContext(options);

            //var mockUserStore = new Mock<IUserStore<EClinicUser>>();
            //var mockRoleManager = new Mock<IUserRoleStore<EClinicUser>>();

            //var userManager = new UserManager<EClinicUser>(mockUserStore.Object, null, null, null, null, null, null, null, null);
            var userManager = MockHelpers.MockUserManager <EClinicUser>().Object;

            var examService        = new Mock <ExamService>(dbContext).Object;
            var appointmentService = new Mock <AppointmentService>(dbContext).Object;
            var usersService       = new Mock <UsersService>(dbContext, userManager, examService).Object;

            AutoMapperConfig.RegisterMappings(typeof(SetingViewModel).GetTypeInfo().Assembly);



            var AdminUserToAdd = new EClinicUser
            {
                Email              = "*****@*****.**",
                FirstName          = "Ivo",
                MiddleName         = "Peshov",
                LastName           = "Petrov",
                UserName           = "******",
                NormalizedEmail    = "*****@*****.**",
                NormalizedUserName = "******",
                Address            = "Nqkyde Tam 35",
                Age           = 25,
                SecurityStamp = Guid.NewGuid().ToString(),
                CreatedOn     = DateTime.UtcNow,
            };

            var userToAdd = new EClinicUser
            {
                Email              = "*****@*****.**",
                FirstName          = "Petyr",
                MiddleName         = "Peshov",
                LastName           = "Petrov",
                UserName           = "******",
                NormalizedEmail    = "*****@*****.**",
                NormalizedUserName = "******",
                Address            = "I tuk i tam",
                Age           = 30,
                SecurityStamp = Guid.NewGuid().ToString(),
                CreatedOn     = DateTime.UtcNow,
            };

            dbContext.Users.Add(AdminUserToAdd);
            dbContext.Users.Add(userToAdd);

            dbContext.SaveChanges();

            var date = new DateTime(2019, 08, 03, 09, 00, 00);
            await appointmentService.CreateAppointment("*****@*****.**", "*****@*****.**", date);

            var exam = new CreateExamInputModel()
            {
                Condition       = "good",
                DoctorUserName  = "******",
                Diagnose        = "adss",
                PatientUserName = "******",
                Prescription    = "sdfsdd"
            };

            await examService.CreateExam(exam);

            dbContext.Appointments.Where(x => true).ToList();


            await Assert.ThrowsAsync <ArgumentException>(async() => await usersService.GetUser(""));
        }
示例#17
0
        public async void GetAllAppointsmentDatesForDoctorForDayShoulReturnOne()
        {
            //Arrange

            var options = new DbContextOptionsBuilder <EClinicDbContext>()
                          .UseInMemoryDatabase(databaseName: "Appointment_CreateAppointment")
                          .Options;
            var dbContext = new EClinicDbContext(options);

            var appointmentService = new Mock <AppointmentService>(dbContext).Object;

            AutoMapperConfig.RegisterMappings(typeof(SetingViewModel).GetTypeInfo().Assembly);
            var mockUserStore = new Mock <IUserStore <EClinicUser> >();

            var userManager = new UserManager <EClinicUser>(mockUserStore.Object, null, null, null, null, null, null, null, null);

            var AdminUserToAdd = new EClinicUser
            {
                Email              = "*****@*****.**",
                FirstName          = "Ivo",
                MiddleName         = "Peshov",
                LastName           = "Petrov",
                UserName           = "******",
                NormalizedEmail    = "*****@*****.**",
                NormalizedUserName = "******",
                Address            = "Nqkyde Tam 35",
                Age           = 25,
                SecurityStamp = Guid.NewGuid().ToString(),
                CreatedOn     = DateTime.UtcNow,
            };

            var userToAdd = new EClinicUser
            {
                Email              = "*****@*****.**",
                FirstName          = "Petyr",
                MiddleName         = "Peshov",
                LastName           = "Petrov",
                UserName           = "******",
                NormalizedEmail    = "*****@*****.**",
                NormalizedUserName = "******",
                Address            = "I tuk i tam",
                Age           = 30,
                SecurityStamp = Guid.NewGuid().ToString(),
                CreatedOn     = DateTime.UtcNow,
            };

            dbContext.Users.Add(AdminUserToAdd);
            dbContext.Users.Add(userToAdd);

            dbContext.SaveChanges();

            var date = new DateTime(2019, 08, 03, 09, 00, 00);

            await appointmentService.CreateAppointment("*****@*****.**", "*****@*****.**", date);

            dbContext.Appointments.Where(x => true).ToList();

            //Act
            var result = await appointmentService.GetAllAppointsmentDatesForDoctorForDay(userToAdd.UserName, date);

            var actual = dbContext.Appointments.Where(x => x.DoctorId == dbContext.Users.FirstOrDefault(d => d.Email == "*****@*****.**").Id).ToList();

            //Assert
            Assert.Equal(actual.Count(), result.Count());
        }