public async Task ImportConsultants_OneNewConsultant_CallsAddOnlyOnce() { var consultant = new Consultant() { Id = "Test" }; var consultantDto = new ConsultantImportDto() { SeContactUid = 1234 }; var consultantDto2 = new ConsultantImportDto(); var consultantsDto = new ConsultantsDto() { Consultants = new List <ConsultantImportDto> { consultantDto, consultantDto2 } }; _mockConsultantRepository.Setup(r => r.GetConsultantBySeContactUid(1234)).Returns((consultant)); _mockMapper.Setup(m => m.Map <ConsultantImportDto, Consultant>(It.IsAny <ConsultantImportDto>())) .Returns(consultant); await _importer.ImportConsultants(consultantsDto); _mockConsultantRepository.Verify(m => m.Add(It.IsAny <Consultant>()), Times.Once); }
public async Task ImportConsultants(ConsultantsDto consultantsDto) { foreach (var consultantDto in consultantsDto.Consultants) { var consultant = _unitOfWork.Consultants.GetConsultantBySeContactUid(consultantDto.SeContactUid); if (consultant == null) { consultant = _mapper.Map <ConsultantImportDto, Consultant>(consultantDto); _unitOfWork.Consultants.Add(consultant); await _accountHelper.SendEmailCreateTokenAsync(consultant.Id); } } _unitOfWork.Complete(); }
public async Task <IHttpActionResult> UpsertConsultants(ConsultantsDto consultantsDto) { try { await _consultantImporter.ImportConsultants(consultantsDto); } catch (Exception e) { var ai = new TelemetryClient(); ai.TrackException(e); return(InternalServerError(e)); } return(Ok()); }
public async Task UpsertConsultants_ValidUpdateRequest_ShouldUpdateConsultants() { // Arrange var consultantImportDto = ConsultantImportDtoBuilder.New().First(); consultantImportDto.SeContactUid = dsc.SeContactUid.Value; var consultantsImportDto = new ConsultantsDto(); consultantsImportDto.Consultants = new List <ConsultantImportDto>() { consultantImportDto }; // Act var request = CreateRequest("api/consultants", "application/json", HttpMethod.Post, consultantsImportDto); }
public async Task ImportConsultant_ExistingConsultant_DoesNotCallAddConsultant() { var consultant = new Consultant { SeContactUid = 1234, Id = "Test" }; var consultantDto = new ConsultantImportDto(); var consultantsDto = new ConsultantsDto() { Consultants = new List <ConsultantImportDto> { consultantDto } }; _mockConsultantRepository.Setup(r => r.GetConsultantBySeContactUid(It.IsAny <int>())).Returns((consultant)); _mockMapper.Setup(m => m.Map <ConsultantImportDto, Consultant>(It.IsAny <ConsultantImportDto>())) .Returns(consultant); await _importer.ImportConsultants(consultantsDto); _mockConsultantRepository.Verify(m => m.Add(It.IsAny <Consultant>()), Times.Never); }
public async Task ImportConsultants_NewConsultant_AddConsultant() { var consultant = new Consultant() { Id = "Test" }; var consultantDto = new ConsultantImportDto(); var consultantsDto = new ConsultantsDto() { Consultants = new List <ConsultantImportDto> { consultantDto } }; _mockMapper.Setup(m => m.Map <ConsultantImportDto, Consultant>(It.IsAny <ConsultantImportDto>())) .Returns(consultant); await _importer.ImportConsultants(consultantsDto); _mockConsultantRepository.Verify(m => m.Add(It.IsAny <Consultant>()), Times.Once); }
public async Task ImportConsultants_NewConsultant_SendsEmail() { var consultant = new Consultant() { Id = "Test" }; var consultantDto = new ConsultantImportDto(); var consultantsDto = new ConsultantsDto() { Consultants = new List <ConsultantImportDto> { consultantDto } }; _mockMapper.Setup(m => m.Map <ConsultantImportDto, Consultant>(It.IsAny <ConsultantImportDto>())) .Returns(consultant); await _importer.ImportConsultants(consultantsDto); _mockAccountHelper.Verify(a => a.SendEmailCreateTokenAsync(It.IsAny <string>()), Times.Once); }