public static void Seed() { _standardUserService.Register(new StandardUser() { FirstName = "Martin", LastName = "Panovski", UserName = "******", Password = "******" }); _premiumUserService.Register(new PremiumUser() { FirstName = "Dejan", LastName = "Jovanov", UserName = "******", Password = "******" }); TrainerUser trainer = new TrainerUser() { FirstName = "Ivo", LastName = "Kostovski", UserName = "******", Password = "******", YearsOfExperience = 6 }; _trainerUserService.Register(trainer); _videoTrainingService.AddTraining(new VideoTraining() { Title = "30 min workout", Description = "Cool workout for beginners", Difficulty = Difficulty.Medium, Link = "", Rating = 4, Duration = 35 }); _videoTrainingService.AddTraining(new VideoTraining() { Title = "ABS workout", Description = "Cool ABS workout for beginners", Difficulty = Difficulty.Hard, Link = "", Rating = 5, Duration = 60 }); _liveTrainingService.AddTraining(new LiveTraining() { Title = "ABS workout", Description = "Cool ABS workout for beginners", Difficulty = Difficulty.Easy, Link = "", NextSession = new DateTime(2020, 07, 12), Duration = 60, Trainer = trainer }); _liveTrainingService.AddTraining(new LiveTraining() { Title = "Cardio workout for professionals", Description = "Extra hard cardio workout for professionals", Link = "", Difficulty = Difficulty.Hard, NextSession = new DateTime(2020, 07, 14), Duration = 60, Trainer = trainer }); }
public static void Seed() { _standardUserService.Register(new StandardUser { FirstName = "Martin", LastName = "Panovski", UserName = "******", Password = "******" }); _premiumUserService.Register(new PremiumUser { FirstName = "Petre", LastName = "Arsovski", UserName = "******", Password = "******" }); TrainerUser trainer = new TrainerUser { FirstName = "Bob", LastName = "Bobsky", UserName = "******", Password = "******", YearsOfExperience = 6 }; _trainerUserService.Register(trainer); _videoTrainingService.AddTraining(new VideoTraining { Title = "30 min workout", Description = "Cool workout for beginners!", Difficulty = Difficulty.Easy, Link = "", Raiting = 4, Duration = 35 }); _videoTrainingService.AddTraining(new VideoTraining { Title = "ABS workout", Description = "ABS workout for professionals!", Difficulty = Difficulty.Hard, Link = "", Raiting = 5, Duration = 45 }); _liveTrainingService.AddTraining(new LiveTraining { Title = "Legs workout", Description = "Medium legs workout", Difficulty = Difficulty.Medium, Link = "", NextSession = new DateTime(2021, 06, 10), Duration = 60, Trainer = trainer }); _liveTrainingService.AddTraining(new LiveTraining { Title = "Cardio workout for professionals", Description = "Cardio workout", Difficulty = Difficulty.Hard, Link = "", NextSession = new DateTime(2021, 06, 11), Duration = 60, Trainer = trainer }); }
public void AcceptTrainingRequest(Guid requestId) { var request = Context.TrainingRequests. Include(tr => tr.Trainer) .ThenInclude(t => t.TrainerUsers).Where(r => r.Id == requestId).FirstOrDefault(); if (request == null) { throw new EntityNotFoundException(requestId, "TrainingRequest"); } if (request.Trainer.TrainerUsers.Any(tu => tu.UserId == request.UserId)) { throw new EntityAlreadyExistsException("Trainer and user are already connected."); } var userTrainer = new TrainerUser { TrainerId = request.TrainerId, UserId = request.UserId }; request.IsActive = false; Context.Entry(userTrainer).State = EntityState.Added; Context.SaveChanges(); }
public IHttpActionResult RegisterTrainer(TrainerUser model) { User userModel = new User(); Person personModel = new Person(); Trainer trainerModel = new Trainer(); #region Model to model - Person personModel.Email = model.Email; personModel.Name = model.Name; personModel.Sex = Utility.GetSexID(model.Sex); personModel.BirthDate = model.BirthDate; personModel.CityID = Utility.GetCityID(model.CityName, Utility.GetCountryID(model.CountryName)); personModel.LastName = model.LastName; personModel.TelephoneNumber = model.TelephoneNumber; #endregion if (model.Role != "Entrenador") { return(BadRequest("Esta función es para entrenadores.")); } #region Model to model - User userModel.Username = model.Username; userModel.Password = model.Password; userModel.Email = model.Email; userModel.Role = Utility.GetRoleID(model.Role); #endregion #region Model to model - Trainer trainerModel.Username = model.Username; trainerModel.Certified = true; #endregion //Adding values to Databases personModel.AddPerson(); var response = userModel.AddUser(); trainerModel.AddTrainer(); if (response.IsComplete()) { return(Ok("Entrenador Agregado.")); } else { return(BadRequest(response.Message)); } }
public static void Seed() { if (_standardUserService.IsDbEmpty() && _premiumUserService.IsDbEmpty() && _trainerUserService.IsDbEmpty() && _videoTrainingService.IsDbEmpty() && _liveTrainingService.IsDbEmpty()) { _standardUserService.Register(new StandardUser() { FirstName = "Bob", LastName = "Bobsky", Username = "******", Password = "******" }); _premiumUserService.Register(new PremiumUser() { FirstName = "Jill", LastName = "Wayne", Username = "******", Password = "******" }); TrainerUser John = new TrainerUser() { FirstName = "John", LastName = "Johnsky", Username = "******", Password = "******", YearsOfExperience = 7 }; _trainerUserService.Register(John); _videoTrainingService.AddTraining(new VideoTraining() { Title = "30 min workout", Description = "Cool workout for beginners and intermediate users", Difficulty = Difficulty.Medium, Link = "https://www.youtube.com/watch?v=50kH47ZztHs", Rating = 4, Time = 35 }); _videoTrainingService.AddTraining(new VideoTraining() { Title = "Standing ABS workout", Description = "Abs workout for people at home with standing and no equipment required", Difficulty = Difficulty.Easy, Link = "https://www.youtube.com/watch?v=Qia2ZXEzyLw", Rating = 5, Time = 11 }); _videoTrainingService.AddTraining(new VideoTraining() { Title = "Full AGILITY Bodyweight", Description = "An intense workout for people that have experience working out and need a good AGILITY training", Difficulty = Difficulty.Hard, Link = "https://www.youtube.com/watch?v=tveIjnSG_8s", Rating = 2, Time = 67 }); _liveTrainingService.AddTraining(new LiveTraining() { Title = "Workout with John", Description = "Working out can be easy when you are at home. Trust John, he is a professional!", Difficulty = Difficulty.Medium, NextSession = new DateTime(2021, 07, 20), Trainer = John, Rating = 2, Time = 25 }); _liveTrainingService.AddTraining(new LiveTraining() { Title = "Quick abs with John", Description = "You want abs for the summer? You want them quick? This is the training for you!", Difficulty = Difficulty.Hard, NextSession = new DateTime(2021, 07, 24), Trainer = John, Rating = 4, Time = 40 }); } }
public ActionResult Edit(TrainerUser trainerUser) { if (!ModelState.IsValid) { return(View()); } var trainerInDb = _context.TrainerUsers.SingleOrDefault(tn => tn.ID == trainerUser.ID); if (trainerInDb == null) { return(HttpNotFound()); } trainerInDb.TrainerID = trainerUser.TrainerID; trainerInDb.Full_Name = trainerUser.Full_Name; trainerInDb.Working_Place = trainerUser.Working_Place; trainerInDb.Phone = trainerUser.Phone; _context.SaveChanges(); return(RedirectToAction("Index")); }
private HonoplayDbContext InitAndGetDbContext(out Guid tenantId) { var context = GetDbContext(); var salt = ByteArrayExtensions.GetRandomSalt(); var adminUser = new AdminUser { Id = 1, Email = "*****@*****.**", Password = "******".GetSHA512(salt), PasswordSalt = salt, LastPasswordChangeDateTime = DateTime.Today.AddDays(-5), }; context.AdminUsers.Add(adminUser); var tenant = new Tenant { Name = "TestTenant#01", HostName = "localhost" }; context.Tenants.Add(tenant); context.TenantAdminUsers.Add(new TenantAdminUser { TenantId = tenant.Id, AdminUserId = adminUser.Id, UpdatedBy = adminUser.Id }); var trainingSeries = new TrainingSeries { TenantId = tenant.Id, UpdatedBy = adminUser.Id, Name = "testSeries" }; context.TrainingSerieses.Add(trainingSeries); var trainingCategory = new TrainingCategory { UpdatedBy = adminUser.Id, Description = "test", Name = "sample", }; context.TrainingCategories.Add(trainingCategory); var training = new Training { UpdatedBy = adminUser.Id, BeginDateTime = DateTimeOffset.Now, Description = "test", EndDateTime = DateTimeOffset.Now.AddDays(5), TrainingCategoryId = trainingCategory.Id, TrainingSeriesId = trainingSeries.Id, Name = "sample" }; context.Trainings.Add(training); var department = new Department { TenantId = tenant.Id, UpdatedBy = adminUser.Id, Name = "sampleDepartment" }; context.Departments.Add(department); var profession = new Profession { TenantId = tenant.Id, UpdatedBy = adminUser.Id, Name = "testProfession" }; context.Professions.Add(profession); var trainerUser = new TrainerUser { UpdatedBy = adminUser.Id, Name = "sample", DepartmentId = department.Id, Email = "*****@*****.**", PhoneNumber = "16846546544545", ProfessionId = profession.Id, Surname = "test" }; context.TrainerUsers.Add(trainerUser); var classroom = new Classroom { UpdatedBy = adminUser.Id, Name = "test", TrainerUserId = trainerUser.Id, TrainingId = training.Id, }; context.Classrooms.Add(classroom); var game = new Game { Name = "game1" }; context.Games.Add(game); var session = new Session { UpdatedBy = adminUser.Id, Name = "test", ClassroomId = classroom.Id, GameId = game.Id, }; context.Sessions.Add(session); context.SaveChanges(); tenantId = tenant.Id; return(context); }
//Arrange private HonoplayDbContext InitAndGetDbContext(out int adminUserId, out Guid tenantId) { var context = GetDbContext(); var salt = ByteArrayExtensions.GetRandomSalt(); var adminUser = new AdminUser { Email = "*****@*****.**", Password = "******".GetSHA512(salt), PasswordSalt = salt, LastPasswordChangeDateTime = DateTime.Today.AddDays(-5), }; context.AdminUsers.Add(adminUser); var tenant = new Tenant { Name = "TestTenant#01", HostName = "localhost" }; context.Tenants.Add(tenant); context.TenantAdminUsers.Add(new TenantAdminUser { TenantId = tenant.Id, AdminUserId = adminUser.Id, CreatedBy = adminUser.Id }); var department = new Department { CreatedBy = adminUser.Id, Name = "testDepartment", TenantId = tenant.Id }; context.Departments.Add(department); var profession = new Profession { Name = "testProfession", CreatedBy = adminUser.Id, TenantId = tenant.Id }; context.Professions.Add(profession); var trainerUser = new TrainerUser { Name = "testName", DepartmentId = department.Id, Surname = "testSurname", PhoneNumber = "testNumber11111", CreatedBy = adminUser.Id, Email = "*****@*****.**", ProfessionId = profession.Id }; context.TrainerUsers.Add(trainerUser); context.SaveChanges(); adminUserId = adminUser.Id; tenantId = tenant.Id; return(context); }
private HonoplayDbContext InitAndGetDbContext(out Guid tenantId, out int adminUserId, out int trainingId, out int trainerUserId, out int traineeUserId) { var context = GetDbContext(); var salt = ByteArrayExtensions.GetRandomSalt(); var adminUser = new AdminUser { Id = 1, Email = "*****@*****.**", Password = "******".GetSHA512(salt), PasswordSalt = salt, LastPasswordChangeDateTime = DateTime.Today.AddDays(-5), }; context.AdminUsers.Add(adminUser); var tenant = new Tenant { Name = "TestTenant#01", HostName = "localhost" }; context.Tenants.Add(tenant); context.TenantAdminUsers.Add(new TenantAdminUser { TenantId = tenant.Id, AdminUserId = adminUser.Id, CreatedBy = adminUser.Id }); var trainingSeries = new TrainingSeries { TenantId = tenant.Id, CreatedBy = adminUser.Id, Name = "testSeries" }; context.TrainingSerieses.Add(trainingSeries); var trainingCategory = new TrainingCategory { CreatedBy = adminUser.Id, Description = "test", Name = "sample", }; context.TrainingCategories.Add(trainingCategory); var training = new Training { CreatedBy = adminUser.Id, BeginDateTime = DateTimeOffset.Now, Description = "test", EndDateTime = DateTimeOffset.Now.AddDays(5), TrainingCategoryId = trainingCategory.Id, TrainingSeriesId = trainingSeries.Id, Name = "sample" }; context.Trainings.Add(training); var department = new Department { TenantId = tenant.Id, CreatedBy = adminUser.Id, Name = "sampleDepartment" }; context.Departments.Add(department); var profession = new Profession { TenantId = tenant.Id, CreatedBy = adminUser.Id, Name = "testProfession" }; context.Professions.Add(profession); var workingStatus = new WorkingStatus { CreatedBy = adminUser.Id, TenantId = tenant.Id, Name = "test" }; context.WorkingStatuses.Add(workingStatus); var traineeUser = new TraineeUser { CreatedBy = adminUser.Id, DepartmentId = department.Id, Gender = 1, Name = "asdasd", NationalIdentityNumber = "12321421311", PhoneNumber = "912489213123", Surname = "test", WorkingStatusId = 1 }; context.TraineeUsers.Add(traineeUser); var trainerUser = new TrainerUser { CreatedBy = adminUser.Id, Name = "sample", DepartmentId = department.Id, Email = "*****@*****.**", PhoneNumber = "16846546544545", ProfessionId = profession.Id, Surname = "test" }; context.TrainerUsers.Add(trainerUser); context.SaveChanges(); adminUserId = adminUser.Id; traineeUserId = traineeUser.Id; tenantId = tenant.Id; trainingId = training.Id; trainerUserId = trainerUser.Id; return(context); }
public static TrainerUserDetailModel Create(TrainerUser trainerUser) { return(Projection.Compile().Invoke(trainerUser)); }
public static void PopulateTestData(HonoplayDbContext dbContext) { var tenantId = Guid.Parse("b0dfcb00-6195-46a7-834e-c58276c3242a"); var secondTenantId = Guid.Parse("f3878709-3cba-4ed3-4c03-08d70375909d"); dbContext.Tenants.Add(new Tenant { Id = tenantId, Name = "api-test", Description = "test", HostName = "localhost", }); var salt = ByteArrayExtensions.GetRandomSalt(); var adminUser = new AdminUser { Email = "*****@*****.**", Password = "******".GetSHA512(salt), PasswordSalt = salt, LastPasswordChangeDateTime = DateTime.Today.AddDays(-5), }; dbContext.AdminUsers.Add(adminUser); dbContext.TenantAdminUsers.Add(new TenantAdminUser { TenantId = tenantId, AdminUserId = adminUser.Id, CreatedBy = adminUser.Id }); dbContext.Tenants.Add(new Tenant { Id = secondTenantId, Name = "api-tesasdt", Description = "test", HostName = "localhosttt", }); dbContext.TenantAdminUsers.Add(new TenantAdminUser { TenantId = secondTenantId, AdminUserId = adminUser.Id, CreatedBy = adminUser.Id }); var questionTypes = new List <QuestionType> { new QuestionType { Id = 1, Name = "questionType1" }, new QuestionType { Id = 2, Name = "questionType2" } }; dbContext.QuestionTypes.AddRange(questionTypes); var questionDifficulties = new List <QuestionDifficulty> { new QuestionDifficulty { Id = 1, Name = "questionDifficulty1" }, new QuestionDifficulty { Id = 2, Name = "questionDifficulty2" } }; dbContext.QuestionDifficulties.AddRange(questionDifficulties); var questionCategories = new List <QuestionCategory> { new QuestionCategory { Name = "questionDifficulty1", TenantId = tenantId }, new QuestionCategory { Name = "questionDifficulty2", TenantId = tenantId } }; dbContext.QuestionCategories.AddRange(questionCategories); var department = new Department { CreatedBy = adminUser.Id, Name = "yazilim", TenantId = tenantId }; dbContext.Departments.Add(department); var workingStatus = new WorkingStatus { Name = "Full-Time", CreatedBy = adminUser.Id, TenantId = tenantId }; dbContext.WorkingStatuses.Add(workingStatus); var profession = new Profession { Name = "Web", CreatedBy = adminUser.Id, TenantId = tenantId }; dbContext.Professions.Add(profession); var trainingSeries = new TrainingSeries { Name = "series1", CreatedBy = adminUser.Id, TenantId = tenantId }; dbContext.TrainingSerieses.Add(trainingSeries); var trainingCategory = new TrainingCategory { CreatedBy = adminUser.Id, Description = "sample", Name = "test" }; dbContext.TrainingCategories.Add(trainingCategory); var training = new Training { TrainingCategoryId = trainingCategory.Id, BeginDateTime = DateTimeOffset.Now, EndDateTime = DateTimeOffset.Now.AddDays(5), CreatedBy = adminUser.Id, Description = "description", Name = "test", TrainingSeriesId = trainingSeries.Id }; dbContext.Trainings.Add(training); var trainerUser = new TrainerUser { Name = "Emre", PhoneNumber = "1234567890", Surname = "KAS", DepartmentId = department.Id, CreatedBy = adminUser.Id, Email = "*****@*****.**", Password = "******".GetSHA512(salt), PasswordSalt = salt, ProfessionId = profession.Id }; dbContext.TrainerUsers.Add(trainerUser); var traineeUser = new TraineeUser { DepartmentId = department.Id, Name = "Yunus Emre", CreatedBy = adminUser.Id, Gender = 1, Email = "*****@*****.**", Password = "******".GetSHA512(salt), PasswordSalt = salt, NationalIdentityNumber = "654654654444", PhoneNumber = "053546835411", Surname = "KAS", WorkingStatusId = workingStatus.Id }; dbContext.TraineeUsers.Add(traineeUser); var question = new Question { TenantId = tenantId, CreatedBy = adminUser.Id, Duration = 123, Text = "Yukaridaki yukarida midir?", }; dbContext.Questions.Add(question); var option = new Option { VisibilityOrder = 1, CreatedBy = adminUser.Id, Text = "yukaridadir", QuestionId = question.Id }; dbContext.Options.Add(option); var classroom = new Classroom { CreatedBy = adminUser.Id, Name = "test", TrainerUserId = trainerUser.Id, TrainingId = training.Id, }; dbContext.Classrooms.Add(classroom); var game = new Game { Name = "game1" }; dbContext.Games.Add(game); var session = new Session { UpdatedBy = adminUser.Id, Name = "test", ClassroomId = classroom.Id, GameId = game.Id, }; dbContext.Sessions.Add(session); dbContext.TraineeGroups.Add(new TraineeGroup { CreatedBy = adminUser.Id, Name = "traineeGroup", TenantId = tenantId }); dbContext.ContentFiles.Add(new ContentFile { Id = Guid.Parse("4f2b88e3-704c-41d8-a679-f608a159d055"), Name = "contentFile1", ContentType = "contentFile1", Data = new byte[] { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }, TenantId = tenantId, CreatedBy = adminUser.Id }); dbContext.Avatars.Add(new Avatar { Name = "avatar1", ImageBytes = new byte[] { 0x20 } }); var tag = new Tag { Name = "tag1", CreatedBy = adminUser.Id, ToQuestion = true }; dbContext.Tags.Add(tag); var questionTag = new QuestionTag { QuestionId = question.Id, TagId = tag.Id }; dbContext.QuestionTags.Add(questionTag); dbContext.SaveChanges(); }
public async Task <ResponseModel <CreateTrainerUserModel> > Handle(CreateTrainerUserCommand request, CancellationToken cancellationToken) { var redisKey = $"TrainerUsersWithDepartmentsByTenantId{request.TenantId}"; var salt = ByteArrayExtensions.GetRandomSalt(); var trainerUser = new TrainerUser { Name = request.Name, CreatedBy = request.CreatedBy, DepartmentId = request.DepartmentId, Email = request.Email, PhoneNumber = request.PhoneNumber, ProfessionId = request.ProfessionId, Surname = request.Surname, LastPasswordChangeDateTime = DateTimeOffset.Now, PasswordSalt = salt, Password = request.Password.GetSHA512(salt), }; using (IDbContextTransaction transaction = await _context.Database.BeginTransactionAsync(cancellationToken)) { try { var isExistAnyDepartment = await _context.Departments .AnyAsync(x => x.TenantId == request.TenantId && x.Id == request.DepartmentId, cancellationToken); if (!isExistAnyDepartment) { throw new NotFoundException(nameof(Department), request.DepartmentId); } await _context.AddAsync(trainerUser, cancellationToken); await _context.SaveChangesAsync(cancellationToken); transaction.Commit(); await _cacheService.RedisCacheUpdateAsync(redisKey, _ => _context.TrainerUsers.Include(x => x.Department) .Where(x => x.Department.TenantId == request.TenantId) .ToList() , cancellationToken); } catch (DbUpdateException ex) when((ex.InnerException is SqlException sqlException && (sqlException.Number == 2627 || sqlException.Number == 2601)) || (ex.InnerException is SqliteException sqliteException && sqliteException.SqliteErrorCode == 19)) { transaction.Rollback(); throw new ObjectAlreadyExistsException(nameof(TrainerUser), request.Name); } catch (NotFoundException) { transaction.Rollback(); throw; } catch (Exception) { transaction.Rollback(); throw new TransactionException(); } var trainerUserModel = new CreateTrainerUserModel( trainerUser.Id, trainerUser.CreatedAt, trainerUser.Name, trainerUser.Surname, trainerUser.Email, trainerUser.PhoneNumber, trainerUser.DepartmentId, trainerUser.ProfessionId); return(new ResponseModel <CreateTrainerUserModel>(trainerUserModel)); } }