コード例 #1
0
        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);
        }
コード例 #2
0
        private ScheduleTestDriveServiceModel GetModel(string carId)
        {
            var model = new ScheduleTestDriveServiceModel()
            {
                CarId        = carId,
                ScheduleDate = DateTime.UtcNow
            };

            return(model);
        }
コード例 #3
0
        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);
        }