public async Task <string> ScheduleTestDriveAsync(ScheduleTestDriveServiceModel model, ClaimsPrincipal user) { await this.ValidateCarIdAsync(model.CarId); var dbTestDrive = _mapper.Map <TestDrive>(model); var dbStatusId = await this.statusRepository .Find(s => s.Name == TestDriveStatus.Upcoming.ToString()) .Select(s => s.Id) .FirstAsync(); var userId = this.userManager.GetUserId(user); DataValidator.ValidateNotNull(userId, new InvalidOperationException(ErrorConstants.NotSignIn)); dbTestDrive.StatusId = dbStatusId; dbTestDrive.UserId = userId; this.testDriveRepository.Add(dbTestDrive); var rowsAffected = await this.testDriveRepository.CompleteAsync(); RepositoryValidator.ValidateCompleteChanges(rowsAffected); return(dbTestDrive.Id); }
private ScheduleTestDriveServiceModel GetModel(string carId) { var model = new ScheduleTestDriveServiceModel() { CarId = carId, ScheduleDate = DateTime.UtcNow }; return(model); }
private async Task CallScheduleTestDriveAsync( ScheduleTestDriveServiceModel model, ApplicationDbContext dbContext, string userId) { SeedStatusesMethods.SeedStatus(dbContext, TestDriveStatus.Upcoming); var mockedUserManager = CommonGetMockMethods.GetUserManager(); CommonSetupMockMethods.SetupMockedUserManagerGetUserId(mockedUserManager, userId); var service = this.GetService(dbContext, mockedUserManager.Object); var user = new Mock <ClaimsPrincipal>().Object; await service.ScheduleTestDriveAsync(model, user); }