示例#1
0
        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);
        }
示例#2
0
        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();
        }
示例#3
0
        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());
        }
示例#4
0
        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);
        }
示例#5
0
        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);
        }
示例#6
0
        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);
        }
示例#7
0
        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);
        }