public async Task ExecuteAsync(string name, string email) { var existingTrainer = await _trainerRepository.GetByEmailAsync(email); if (existingTrainer is null) { var trainer = new Trainer(name, email); _trainerRepository.Create(trainer); await _trainerRepository.UnitOfWork.SaveChangesAsync(); } else { throw new InvalidOperationException("The email is already being used."); } }
public ResultHandler <TrainerDto> Create(TrainerDto trainerDto) { ResultHandler <TrainerDto> resultHandler = new ResultHandler <TrainerDto>(); try { Trainer trainer = _trainer.Create(trainerDto.FirstName, trainerDto.LastName, trainerDto.Description, trainerDto.PayRate, trainerDto.IsActive); _trainerRepository.Create(trainer); resultHandler.Data = AutoMapper.Mapper.Map <Trainer, TrainerDto>(trainer); } catch (Exception ex) { resultHandler.Errors.Add(ex.Message); } return(resultHandler); }