Ejemplo n.º 1
0
        public async Task CheckGettingStylistsDetailsAsync()
        {
            ApplicationDbContext db = GetDb();

            var repository      = new EfDeletableEntityRepository <ApplicationUser>(db);
            var rolesRepository = new EfDeletableEntityRepository <ApplicationRole>(db);

            var service = new StylistsService(
                repository,
                rolesRepository,
                this.procedureStylistsRepository.Object,
                this.proceduresRepository.Object,
                this.cloudinaryService.Object);

            var stylist = new ApplicationUser()
            {
                Id = "1"
            };

            await db.Users.AddAsync(stylist);

            await db.SaveChangesAsync();

            var stylistDetails = await service.GetStylistDetailsAsync <TestStylistModel>(stylist.Id);

            Assert.Equal(stylist.Id, stylistDetails.Id);
        }
Ejemplo n.º 2
0
        // GET: Stylist
        public ActionResult Index()
        {
            var svc   = new StylistsService(Guid.Parse(User.Identity.GetUserId()));
            var model = svc.GetListOfStylists();

            return(View(model));
        }
Ejemplo n.º 3
0
        public async Task CheckAddingRoleToExistingNonStylistAsync()
        {
            ApplicationDbContext db = GetDb();

            var repository      = new EfDeletableEntityRepository <ApplicationUser>(db);
            var rolesRepository = new EfDeletableEntityRepository <ApplicationRole>(db);

            var service = new StylistsService(
                repository,
                rolesRepository,
                this.procedureStylistsRepository.Object,
                this.proceduresRepository.Object,
                this.cloudinaryService.Object);

            var role = new ApplicationRole()
            {
                Id   = "1",
                Name = GlobalConstants.StylistRoleName,
            };

            await db.Roles.AddAsync(role);

            await db.SaveChangesAsync();

            var stylistId = await service.AddRoleStylistAsync("*****@*****.**");

            Assert.Null(stylistId);
        }
      public ActionResult Create()
      {
          var service  = new StylistsService(Guid.Parse(User.Identity.GetUserId()));
          var stylists = service.GetListOfStylists();

          ViewBag.GetListOfStylists = stylists;
          return(View(new AppointmentCreate()));
      }
Ejemplo n.º 5
0
        public async Task CheckGettingAllUsersWithRoleStylistAsync()
        {
            ApplicationDbContext db = GetDb();

            var repository      = new EfDeletableEntityRepository <ApplicationUser>(db);
            var rolesRepository = new EfDeletableEntityRepository <ApplicationRole>(db);

            var service = new StylistsService(
                repository,
                rolesRepository,
                this.procedureStylistsRepository.Object,
                this.proceduresRepository.Object,
                this.cloudinaryService.Object);

            var firstStylist = new ApplicationUser()
            {
                Id = "1", Email = "*****@*****.**"
            };
            var secondStylist = new ApplicationUser()
            {
                Id = "2", Email = "*****@*****.**"
            };
            var thirdStylist = new ApplicationUser()
            {
                Id = "3", Email = "*****@*****.**"
            };

            var role = new ApplicationRole()
            {
                Id   = "1",
                Name = GlobalConstants.StylistRoleName,
            };

            await db.Users.AddAsync(firstStylist);

            await db.Users.AddAsync(secondStylist);

            await db.Users.AddAsync(thirdStylist);

            await db.Roles.AddAsync(role);

            await db.SaveChangesAsync();

            await service.AddRoleStylistAsync(firstStylist.Email);

            await service.AddRoleStylistAsync(secondStylist.Email);

            await service.AddRoleStylistAsync(thirdStylist.Email);

            var stylists = await service.GetAllAsync <TestStylistModel>();

            Assert.Equal(3, stylists.Count());
            Assert.Contains(firstStylist.Roles, r => r.RoleId == role.Id);
            Assert.Contains(secondStylist.Roles, r => r.RoleId == role.Id);
            Assert.Contains(thirdStylist.Roles, r => r.RoleId == role.Id);
        }
Ejemplo n.º 6
0
        public ActionResult Details(Guid id)
        {
            var svc           = new StylistsService(Guid.Parse(User.Identity.GetUserId()));
            var model         = svc.GetStylistById(id);
            var profilesvc    = new ProfilesService(Guid.Parse(User.Identity.GetUserId()));
            var userreviewsvc = new UserReviewService(Guid.Parse(User.Identity.GetUserId()));

            model.UserReviewListItem = userreviewsvc.GetUserReviewsByStylistID(id.ToString()).ToList();
            model.StylistProfile     = profilesvc.GetProfileByUserID(id.ToString());
            return(View(model));
        }
Ejemplo n.º 7
0
        public async Task CheckRemovingProcedureAsync()
        {
            ApplicationDbContext db = GetDb();

            var repository = new EfDeletableEntityRepository <ApplicationUser>(db);
            var procedureStylistsRepository = new EfRepository <ProcedureStylist>(db);

            var service = new StylistsService(
                repository,
                this.rolesRepository.Object,
                procedureStylistsRepository,
                this.proceduresRepository.Object,
                this.cloudinaryService.Object);

            var firstStylist = new ApplicationUser()
            {
                Id = "1"
            };
            var secondStylist = new ApplicationUser()
            {
                Id = "2"
            };
            var firstProcedure = new Procedure()
            {
                Id = "1"
            };
            var secondProcedure = new Procedure()
            {
                Id = "2"
            };

            await db.Users.AddAsync(firstStylist);

            await db.Users.AddAsync(secondStylist);

            await db.Procedures.AddAsync(firstProcedure);

            await db.Procedures.AddAsync(secondProcedure);

            await db.SaveChangesAsync();

            await service.AddProcedureToStylistAsync(firstStylist.Id, firstProcedure.Id);

            await service.AddProcedureToStylistAsync(secondStylist.Id, firstProcedure.Id);

            await service.AddProcedureToStylistAsync(secondStylist.Id, secondProcedure.Id);

            await service.RemoveProcedureAsync(firstStylist.Id, firstProcedure.Id);

            await service.RemoveAllProceduresAsync(secondStylist.Id);

            Assert.Empty(firstStylist.StylistProcedures);
            Assert.Empty(secondStylist.StylistProcedures);
        }
Ejemplo n.º 8
0
        public async Task CheckAddingProcedureToStylistAsync()
        {
            ApplicationDbContext db = GetDb();

            var repository = new EfDeletableEntityRepository <ApplicationUser>(db);
            var procedureStylistsRepository = new EfRepository <ProcedureStylist>(db);

            var service = new StylistsService(
                repository,
                this.rolesRepository.Object,
                procedureStylistsRepository,
                this.proceduresRepository.Object,
                this.cloudinaryService.Object);

            var stylist = new ApplicationUser()
            {
                Id = "1"
            };
            var procedure = new Procedure()
            {
                Id = "1"
            };

            await db.Users.AddAsync(stylist);

            await db.Procedures.AddAsync(procedure);

            await db.SaveChangesAsync();

            var isAddedTrueCase = await service.AddProcedureToStylistAsync(stylist.Id, procedure.Id);

            var isAddedFalseCase = await service.AddProcedureToStylistAsync(stylist.Id, procedure.Id);

            Assert.True(isAddedTrueCase);
            Assert.True(!isAddedFalseCase);
        }
Ejemplo n.º 9
0
        public async Task CheckUpdatingStylistAsync()
        {
            ApplicationDbContext db = GetDb();

            var repository = new EfDeletableEntityRepository <ApplicationUser>(db);
            var procedureStylistsRepostory = new EfRepository <ProcedureStylist>(db);
            var proceduresRepostory        = new EfDeletableEntityRepository <Procedure>(db);

            var service = new StylistsService(
                repository,
                this.rolesRepository.Object,
                procedureStylistsRepostory,
                proceduresRepostory,
                this.cloudinaryService.Object);

            var category = new Category()
            {
                Id   = "1",
                Name = "Hair",
            };

            var newCategory = new Category()
            {
                Id   = "2",
                Name = "Makeup",
            };

            var jobType = new JobType()
            {
                Id   = "1",
                Name = "Stylist",
            };

            var firstProcedure = new Procedure()
            {
                Id         = "1",
                CategoryId = newCategory.Id,
            };

            var secondProcedure = new Procedure()
            {
                Id         = "2",
                CategoryId = newCategory.Id,
            };

            var stylist = new ApplicationUser()
            {
                Id          = "1",
                Email       = "*****@*****.**",
                FirstName   = "stylistFirstName",
                LastName    = "stylistLastName",
                Description = "stylistTestDescription",
                CategoryId  = category.Id,
                JobTypeId   = jobType.Id,
            };

            await db.Users.AddAsync(stylist);

            await db.Categories.AddAsync(category);

            await db.Categories.AddAsync(newCategory);

            await db.Procedures.AddAsync(firstProcedure);

            await db.Procedures.AddAsync(secondProcedure);

            await db.JobTypes.AddAsync(jobType);

            await db.SaveChangesAsync();

            var picture = this.mockPicture.Object;

            var updatedStylist = await service.UpdateStylistProfileAsync(stylist.Id, "newFirstName", stylist.LastName, "123", newCategory.Id, stylist.JobType.Id, "newStylistDescription", picture);

            var pictureAsUrl = await service.GetPictureUrlAsync(updatedStylist.Id);

            Assert.Equal("newFirstName", updatedStylist.FirstName);
            Assert.Equal(stylist.LastName, updatedStylist.LastName);
            Assert.Equal("123", updatedStylist.PhoneNumber);
            Assert.Equal(newCategory.Name, updatedStylist.Category.Name);
            Assert.Equal(stylist.JobType.Name, updatedStylist.JobType.Name);
            Assert.Equal("newStylistDescription", updatedStylist.Description);
            Assert.Equal(pictureAsUrl, updatedStylist.Picture);
            Assert.Equal(2, updatedStylist.StylistProcedures.Count());
        }
Ejemplo n.º 10
0
        public async Task CheckSearchingStylistByCategoryAsync()
        {
            ApplicationDbContext db = GetDb();

            var repository      = new EfDeletableEntityRepository <ApplicationUser>(db);
            var rolesRepository = new EfDeletableEntityRepository <ApplicationRole>(db);

            var service = new StylistsService(
                repository,
                rolesRepository,
                this.procedureStylistsRepository.Object,
                this.proceduresRepository.Object,
                this.cloudinaryService.Object);

            var firstCategory = new Category()
            {
                Id   = "1",
                Name = "Hair",
            };

            var secondCategory = new Category()
            {
                Id   = "2",
                Name = "Makeup",
            };

            var firstStylist = new ApplicationUser()
            {
                Id = "1", Email = "*****@*****.**", CategoryId = firstCategory.Id
            };
            var secondStylist = new ApplicationUser()
            {
                Id = "2", Email = "*****@*****.**", CategoryId = firstCategory.Id
            };
            var thirdStylist = new ApplicationUser()
            {
                Id = "3", Email = "*****@*****.**", CategoryId = secondCategory.Id
            };

            var role = new ApplicationRole()
            {
                Id   = "1",
                Name = GlobalConstants.StylistRoleName,
            };

            await db.Users.AddAsync(firstStylist);

            await db.Users.AddAsync(secondStylist);

            await db.Users.AddAsync(thirdStylist);

            await db.Categories.AddAsync(firstCategory);

            await db.Categories.AddAsync(secondCategory);

            await db.Roles.AddAsync(role);

            await db.SaveChangesAsync();

            await service.AddRoleStylistAsync(firstStylist.Email);

            await service.AddRoleStylistAsync(secondStylist.Email);

            await service.AddRoleStylistAsync(thirdStylist.Email);

            var stylists = await service.SearchByCategoryAsync <TestStylistModel>(firstCategory.Id);

            Assert.Equal(2, stylists.Count());
        }