public void ImportOrder_WithServiceFlagAndNoNewServices_ShouldAddTwoServices()
        {
            var order = new Order()
            {
                Id = "1", TrackingId = "TestOrder", ServiceFlag = 3, IsInternational = false
            };
            var transferee = new TransfereeDto()
            {
                Email = "*****@*****.**"
            };
            var consultant = new ConsultantDto()
            {
                SeContactUid = 1
            };
            var programManager = new ProgramManagerDto()
            {
                SeContactUid = 1
            };
            var manager = new Manager()
            {
                Id = "Test"
            };
            var managerDto = new ManagerDto
            {
                SeContactUid = 1
            };
            var managersDto = new ManagersDto()
            {
                Managers = new List <ManagerDto> {
                    managerDto
                }
            };

            _mockManagersRepository.Setup(r => r.GetManagerBySeContactUid(1)).Returns(manager);
            _mockMapper.Setup(m => m.Map <ManagerDto, Manager>(It.IsAny <ManagerDto>())).Returns(manager);
            _mockTransfereesRepository.Setup(t => t.GetTransfereeByEmail(transferee.Email)).Returns(new Transferee()
            {
                Email = "*****@*****.**"
            });
            _mockConsultantsRepository.Setup(c => c.GetConsultantBySeContactUid(1)).Returns(new Consultant()
            {
                SeContactUid = 1
            });

            var cats = new List <ServiceCategory>();
            var ids  = new List <int>();

            _mockServiceTypeRepository.Setup(st => st.GetDefaultServiceTypes(cats, ids, order.IsInternational)).Returns(new List <ServiceType>());

            var orderDto = new OrderDto();

            orderDto.Consultant     = consultant;
            orderDto.Transferee     = transferee;
            orderDto.ProgramManager = programManager;
            _mockMapper.Setup(o => o.Map <OrderDto, Order>(It.IsAny <OrderDto>())).Returns(order);
            _orderImporter.ImportOrder(orderDto);
            _mockOrdersRepository.Verify(v => v.Add(It.IsAny <Order>()), Times.Once);

            order.Services.Count.Should().Be(0);
        }
Beispiel #2
0
 public static ContactInfoDto ToContactInfoDto(TransfereeDto transferee)
 {
     return(new ContactInfoDto
     {
         Email = transferee.Emails.FirstOrDefault()?.Value,
         ContactNumber = ToContactNumberDto(transferee.OriginPhones)
     });
 }
        public void ImportOrderTest_New()
        {
            var order = new Order()
            {
                Id = "1", TrackingId = "TestOrder"
            };
            var transferee = new TransfereeDto()
            {
                Email = "*****@*****.**"
            };
            var consultant = new ConsultantDto()
            {
                SeContactUid = 1
            };
            var programManager = new ProgramManagerDto()
            {
                SeContactUid = 1
            };
            var manager = new Manager()
            {
                Id = "Test"
            };
            var managerDto = new ManagerDto
            {
                SeContactUid = 1
            };
            var managersDto = new ManagersDto()
            {
                Managers = new List <ManagerDto> {
                    managerDto
                }
            };

            _mockManagersRepository.Setup(r => r.GetManagerBySeContactUid(1)).Returns(manager);
            _mockMapper.Setup(m => m.Map <ManagerDto, Manager>(It.IsAny <ManagerDto>())).Returns(manager);
            _mockTransfereesRepository.Setup(t => t.GetTransfereeByEmail(transferee.Email)).Returns(new Transferee()
            {
                Email = "*****@*****.**"
            });
            _mockConsultantsRepository.Setup(c => c.GetConsultantBySeContactUid(1)).Returns(new Consultant()
            {
                SeContactUid = 1
            });

            var orderDto = new OrderDto();

            orderDto.Consultant     = consultant;
            orderDto.Transferee     = transferee;
            orderDto.ProgramManager = programManager;
            _mockMapper.Setup(o => o.Map <OrderDto, Order>(It.IsAny <OrderDto>())).Returns(order);
            _orderImporter.ImportOrder(orderDto);
            _mockOrdersRepository.Verify(v => v.Add(It.IsAny <Order>()), Times.Once);
        }
Beispiel #4
0
        internal static TransfereeDto ToTransferee(Move src)
        {
            var origin      = src.OriginShipper;
            var destination = src.DestinationShipper;

            var emailList = new List <EmailDto>();

            if (!string.IsNullOrEmpty(origin.Email1))
            {
                emailList.Add(new EmailDto {
                    Value = origin.Email1
                });
            }
            if (!string.IsNullOrEmpty(origin.Email2))
            {
                emailList.Add(new EmailDto {
                    Value = origin.Email2
                });
            }
            if (!string.IsNullOrEmpty(origin.Email3))
            {
                emailList.Add(new EmailDto {
                    Value = origin.Email3
                });
            }

            if (!string.IsNullOrEmpty(destination.Email1))
            {
                emailList.Add(new EmailDto {
                    Value = destination.Email1
                });
            }
            if (!string.IsNullOrEmpty(destination.Email2))
            {
                emailList.Add(new EmailDto {
                    Value = destination.Email2
                });
            }
            if (!string.IsNullOrEmpty(destination.Email3))
            {
                emailList.Add(new EmailDto {
                    Value = destination.Email3
                });
            }

            var phoneList = new List <PhoneDto>();

            if (!string.IsNullOrEmpty(origin.PHONE1))
            {
                phoneList.Add(new PhoneDto {
                    NationalNumber = origin.PHONE1.Replace("-", string.Empty)
                });
            }
            if (!string.IsNullOrEmpty(origin.PHONE2))
            {
                phoneList.Add(new PhoneDto {
                    NationalNumber = origin.PHONE2.Replace("-", string.Empty)
                });
            }
            if (!string.IsNullOrEmpty(destination.PHONE1))
            {
                phoneList.Add(new PhoneDto {
                    NationalNumber = destination.PHONE1.Replace("-", string.Empty)
                });
            }
            if (!string.IsNullOrEmpty(destination.PHONE2))
            {
                phoneList.Add(new PhoneDto {
                    NationalNumber = destination.PHONE2.Replace("-", string.Empty)
                });
            }

            var dto = new TransfereeDto
            {
                FirstName    = origin.FirstName,
                LastName     = origin.LastName,
                Emails       = emailList,
                OriginPhones = phoneList
            };

            if (!string.IsNullOrEmpty(origin.IsVip))
            {
                dto.IsVip = origin.IsVip.Equals("YES", StringComparison.CurrentCultureIgnoreCase);
            }

            return(dto);
        }
Beispiel #5
0
        private int SaveTransferee(TransfereeDto transfereeDto)
        {
            if (transfereeDto == null)
            {
                throw new ArgumentNullException("Transferee is null");
            }

            _logger.LogInformation("Saving Transferee {0}", transfereeDto);

            var transferee = _mapper.Map <Transferee>(transfereeDto);

            List <Phone> originValidPhones = new List <Phone>();

            if (transfereeDto.OriginPhones != null)
            {
                originValidPhones.AddRange(_mapper.Map <List <Phone> >(transfereeDto.OriginPhones
                                                                       .Where(p => ValidatePhoneDto(p)).ToList()));
            }

            List <Phone> destinationValidPhones = new List <Phone>();

            if (transfereeDto.DestinationPhones != null)
            {
                destinationValidPhones.AddRange(_mapper.Map <List <Phone> >(transfereeDto.DestinationPhones
                                                                            .Where(p => ValidatePhoneDto(p)).ToList()));
            }

            //saves the parent AND email objects in one Save, vs how we do with Addresses which is manual af b/c we are using Lookup tables (xref)
            _dbContext.Transferee.Add(transferee);
            _dbContext.SaveChanges();

            _dbContext.Phone.AddRange(originValidPhones);
            _dbContext.Phone.AddRange(destinationValidPhones);
            _dbContext.SaveChanges();

            foreach (var phone in originValidPhones)
            {
                _dbContext.TransfereePhone.Add(
                    new TransfereePhone
                {
                    TransfereeId = transferee.Id,
                    PhoneId      = phone.Id,
                    Type         = "Origin"
                }
                    );
            }
            foreach (var phone in destinationValidPhones)
            {
                _dbContext.TransfereePhone.Add(
                    new TransfereePhone
                {
                    TransfereeId = transferee.Id,
                    PhoneId      = phone.Id,
                    Type         = "Destination"
                }
                    );
            }

            _logger.LogInformation("Origin Phones saved {0}", originValidPhones);
            _logger.LogInformation("Destination Phones saved {0}", destinationValidPhones);

            List <EmailDto> validEmails = transfereeDto.Emails.Where(e => ValidateEmailDto(e)).ToList();

            var emails = _mapper.Map <List <Email> >(validEmails);

            emails.ForEach(e => e.TransfereeId = transferee.Id);

            _dbContext.Email.AddRange(emails);
            _dbContext.SaveChanges();

            _logger.LogInformation("Emails saved {0}", validEmails);
            _logger.LogInformation("Transferee saved {0}", transferee.Id);

            return(transferee.Id);
        }
Beispiel #6
0
        public static OrderDto CreateOrderDto(ConsultantDto consultantDto         = null,
                                              ProgramManagerDto programManagerDto = null, TransfereeDto transfereeDto = null, string TrackingId = null)
        {
            var orderDto = OrderDtoBuilder.New();

            orderDto.TrackingId     = TrackingId;
            orderDto.Consultant     = consultantDto;
            orderDto.ProgramManager = programManagerDto;
            orderDto.Transferee     = transfereeDto;
            return(orderDto);
        }