public ActionResult SendEmail(EmailViewModel vm)
 {
     try
     {
         OrdersTransfereeItineraryViewModel viewModel = BuildItineraryByOrderId(vm.id);
         viewModel.Id    = vm.id;
         viewModel.IsPdf = true;
         var to = ParseAddress(vm.Email);
         if (to == null)
         {
             return(null);
         }
         Transferee ee = GetTransfereeByOrderId(vm.id);
         if (ee == null)
         {
             return(new HttpStatusCodeResult(HttpStatusCode.NotFound, "Not found"));
         }
         viewModel.TransfereeName = ee.FullName;
         string       filename = "Itinerary" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".pdf";
         var          pdf      = new Rotativa.ViewAsPdf("~/Views/PDF/PDFItinerary.cshtml", viewModel);
         byte[]       pdfBytes = pdf.BuildFile(ControllerContext);
         MemoryStream stream   = new MemoryStream(pdfBytes);
         EmailHelper  EH       = new EmailHelper();
         EH.SendEmail_FS(to, vm.Subject, vm.Message, SendGrid.MimeType.Html, filename, pdfBytes);
         viewModel.IsPdf = false;
         return(PartialView("~/views/orders/partials/_Itinerary.cshtml", viewModel));
     }
     catch (Exception ex)
     {
         ModelState.Clear();
         return(null);
     }
 }
示例#2
0
        public static TransfereeDto ToTransferee(Transferee transferee)
        {
            var originPhones      = new List <PhoneDto>();
            var destinationPhones = new List <PhoneDto>();

            foreach (var item in transferee.TransfereePhone)
            {
                var phoneDto = Mapper.Map <PhoneDto>(item.Phone);

                if (item.Type?.ToLowerClean() == "origin")
                {
                    phoneDto.LocationType = "Origin";
                    originPhones.Add(phoneDto);
                }
                else if (item.Type?.ToLowerClean() == "destination")
                {
                    phoneDto.LocationType = "Destination";
                    destinationPhones.Add(phoneDto);
                }
            }

            var transfereeDto = transferee.ToDto();

            transfereeDto.Emails            = Mapper.Map <List <EmailDto> >(transferee.Email);
            transfereeDto.OriginPhones      = originPhones;
            transfereeDto.DestinationPhones = destinationPhones;

            return(transfereeDto);
        }
示例#3
0
 public static ContactInfoDto ToContactInfoDto(Transferee transferee)
 {
     return(new ContactInfoDto
     {
         Email = transferee.Email.FirstOrDefault()?.Value,
         ContactNumber = ToContactNumberDto(transferee.TransfereePhone)
     });
 }
        public void Add(Transferee transferee)
        {
            var userManager = UserHelper.GetUserManager <Transferee>(_context);

            transferee.UserName = transferee.Email;
            var result = userManager.Create(transferee, TokenHelper.NewToken());

            userManager.AddToRole(transferee.Id, UserRoles.Transferee);
        }
        public void SetUp()
        {
            var config = new MapperConfiguration(c => c.AddProfile(new MappingProfile()));

            var _mapper = config.CreateMapper();

            _context    = new ApplicationDbContext();
            _transferee = _context.Transferees.First(u => u.UserName.Equals("*****@*****.**"));
            _controller = new EmailController(new UnitOfWork(_context), _mapper);
        }
        public void InsertMessage_ValidProperty_ShouldAddMessageAnd_2Notifications_If_Manager()
        {
            _controller.MockCurrentUserAndRole("9", _userName, UserRoles.ProgramManager);

            var   orderId = "1";
            Order order   = new Order()
            {
                Id = orderId
            };
            var consultant = new Consultant()
            {
                SeContactUid = 1
            };
            var tEmail     = "*****@*****.**";
            var transferee = new Transferee()
            {
                Id = "1", Email = tEmail
            };

            _mockConsultantsRepository.Setup(c => c.GetConsultantBySeContactUid(1)).Returns(consultant);
            _mockTransfereesRepository.Setup(t => t.GetTransfereeByEmail(tEmail)).Returns(transferee);
            _mockRepository.Setup(o => o.GetOrderById(orderId)).Returns(order);
            order.Consultant = consultant;
            order.Transferee = transferee;
            var propId = "1";
            HomeFindingProperty prop = new HomeFindingProperty()
            {
                Id = propId
            };

            _mockHFPRepository.Setup(r => r.GetHomeFindingPropertyById(propId)).Returns(prop);
            Message mess = new Message()
            {
                HomeFindingPropertyId = propId
            };
            MessageDto dto = new MessageDto()
            {
                HomeFindingPropertyId = propId, OrderId = orderId
            };

            var result = _controller.UpsertPropertyMessage(dto);

            prop.Messages.Count.Should().Be(1);

            var rl = _controller.User.IsInRole(UserRoles.ProgramManager);

            rl.Should().BeTrue();

            consultant.UserNotifications.Count().Should().Be(1);

            transferee.UserNotifications.Count().Should().Be(1);

            result.Should().BeOfType <System.Web.Http.Results.OkResult>();
        }
示例#7
0
        public static Order CreateOrder(Consultant consultant = null, Manager manager   = null,
                                        Transferee transferee = null, string TrackingId = null)
        {
            var order = OrderBuilder.New().First();

            order.TrackingId     = TrackingId;
            order.Consultant     = consultant;
            order.ProgramManager = manager;
            order.Transferee     = transferee;
            return(order);
        }
示例#8
0
        public void SetUp()
        {
            Context = new ApplicationDbContext();
            Server  = TestServer.Create <Startup>();

            ApiKey = "SeApiTokenKeyTest";

            transferee = Context.Transferees.First(u => u.UserName.Equals("*****@*****.**"));
            dsc        = Context.Consultants.First(u => u.UserName.Equals("*****@*****.**"));
            pm         = Context.Managers.First(u => u.UserName.Equals("*****@*****.**"));
        }
示例#9
0
        public void addTransfereeTest()
        {
            var transferee1 = new Transferee()
            {
                Id = "Transferee1", Email = "*****@*****.**", SeContactUid = 1
            };

            SetupRepositoryWithSource(new[] { transferee1 });
            var result = _transfereesRepository.GetTransfereeByEmail("*****@*****.**");

            result.Should().Equals(transferee1);
        }
示例#10
0
        public ActionResult ItineraryPartial(string id)
        {
            OrdersTransfereeItineraryViewModel viewModel = GetItineraryByOrderId(id);

            viewModel.Id = id;
            Transferee ee = GetTransfereeByOrderId(id);

            if (ee == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound, "Not found"));
            }
            viewModel.TransfereeName = ee.FullName;
            return(PartialView("~/views/orders/partials/_Itinerary.cshtml", viewModel));
        }
示例#11
0
        public ActionResult GenerateItineraryPDF(string id)
        {
            OrdersTransfereeItineraryViewModel viewModel = GetItineraryByOrderId(id);

            viewModel.Id    = id;
            viewModel.IsPdf = true;
            Transferee ee = GetTransfereeByOrderId(id);

            viewModel.TransfereeName = ee.FullName;
            return(new Rotativa.ViewAsPdf("~/Views/PDF/PDFItinerary.cshtml", viewModel)
            {
                FileName = "Itinerary.pdf",
                PageMargins = new Rotativa.Options.Margins(0, 0, 0, 0)
            });
        }
示例#12
0
        public void SetUp()
        {
            var config = new MapperConfiguration(c => c.AddProfile(new MappingProfile()));

            var mapper = config.CreateMapper();

            _context    = new ApplicationDbContext();
            _transferee = _context.Transferees.First(u => u.UserName.Equals("*****@*****.**"));
            _dsc        = _context.Consultants.First(u => u.UserName.Equals("*****@*****.**"));
            _pm         = _context.Managers.First(u => u.UserName.Equals("*****@*****.**"));
            var emailHelper   = new EmailHelper();
            var accountHelper = new AccountHelper(emailHelper);

            _controller = new OrdersController(new UnitOfWork(_context), mapper, accountHelper);
        }
示例#13
0
        private static async Task <BillToResponse> DetermineBillTo(string id, Transferee transferee, string regNumber)
        {
            dynamic billTo      = null;
            string  billToLabel = null;

            billTo = _accountEntities.FirstOrDefault(ae => ae.AccountingId.Equals(id));

            if (billTo != null)
            {
                billToLabel = "ACCOUNT";
            }
            else
            {
                billTo = _vendor.FirstOrDefault(v => v.Accounting_SI_Code.Equals(id));

                if (billTo != null)
                {
                    billToLabel = "VENDOR";
                }
            }
            if (billTo == null && transferee != null)
            {
                //check to see if billto is transferee
                var NamesRecord = await WaterDbAccess.GetNames(id);

                if (NamesRecord != null && NamesRecord.FirstName.Equals(transferee.FirstName, StringComparison.CurrentCultureIgnoreCase) &&
                    NamesRecord.LastName.Equals(transferee.LastName, StringComparison.CurrentCultureIgnoreCase))
                {
                    billTo      = transferee;
                    billToLabel = "TRANSFEREE";
                }
                else
                {
                    Console.WriteLine($"{regNumber}, Cant find the billto for Storage");
                    Trace.Write($"{regNumber}, Cant find the billto for Storage");
                }
            }

            var response = new BillToResponse
            {
                BilltoId   = billTo?.Id,
                BilltoType = billToLabel
            };

            return(response);
        }
示例#14
0
        public ActionResult EmailForm(string id)
        {
            Transferee ee = GetTransfereeByOrderId(id);

            if (ee == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound, "Not found"));
            }

            var viewModel = new EmailViewModel();

            viewModel.id      = id;
            viewModel.Email   = ee.Email;
            viewModel.Name    = ee.FullName;
            viewModel.Subject = "Your Dwellworks Itinerary";
            viewModel.Message = "Please find attached your itinerary for the upcoming move";
            return(PartialView("~/views/Mailers/Partials/Email.cshtml", viewModel));
        }
示例#15
0
        public void SetUp()
        {
            var config = new MapperConfiguration(c => c.AddProfile(new MappingProfile()));

            var mapper = config.CreateMapper();

            _context    = new ApplicationDbContext();
            _transferee = _context.Transferees.First(u => u.UserName.Equals("*****@*****.**"));
            _dsc        = _context.Consultants.First(u => u.UserName.Equals("*****@*****.**"));
            _pm         = _context.Managers.First(u => u.UserName.Equals("*****@*****.**"));


            _mockBotHelper  = new Mock <IBotHelper>();
            _mockBot        = new Mock <IBot>();
            _mockTextWriter = new Mock <TextWriter>();

            _url = "http://test.com";
            _mockBotHelper.Setup(b => b.GetBot(_url)).Returns(_mockBot.Object);

            _functions = new Functions(new UnitOfWork(_context), _mockBotHelper.Object);
        }
示例#16
0
        public void SetUp()
        {
            var config = new MapperConfiguration(c => c.AddProfile(new MappingProfile()));

            var mapper = config.CreateMapper();

            _context = new ApplicationDbContext();

            _transferee = _context.Transferees.SingleOrDefault(u => u.Email.Equals("*****@*****.**"));
            if (_transferee == null)
            {
                _transferee = new Transferee()
                {
                    Email = "*****@*****.**", UserName = "******"
                };
                _context.Transferees.Add(_transferee);
                _context.SaveChanges();
                _context.Entry(_transferee).Reload();
            }

            _pm = _context.Managers.First(u => u.UserName.Equals("*****@*****.**"));

            _dsc = _context.Consultants.SingleOrDefault(u => u.Email.Equals("*****@*****.**"));
            if (_dsc == null)
            {
                _dsc = new Consultant()
                {
                    Email = "*****@*****.**", UserName = "******"
                };
                _context.Consultants.Add(_dsc);
                _context.SaveChanges();
                _context.Entry(_dsc).Reload();
            }

            var queueStore = new QueueStore();

            _mockBookMarkletHelper = new Mock <IBookMarkletHelper>();

            _controller = new BookMarkletController(new UnitOfWork(_context), mapper, queueStore, _mockBookMarkletHelper.Object);
        }
示例#17
0
 public static TransfereeDto ToDto(this Transferee transferee)
 {
     return(Mapper.Map <TransfereeDto>(transferee));
 }
示例#18
0
        private static async Task updateStorageJob(Move move, int jobId, List <ServiceOrder> serviceOrders, string regNumber, Transferee transferee, List <InsuranceClaims> legacyInsuranceClaims, int ssoId)
        {
            try
            {
                Console.WriteLine("Updating ST");
                Trace.WriteLine($"{regNumber}, , Updating ST Expense record");

                var vendorEntity = _vendor.FirstOrDefault(v => v.Accounting_SI_Code == move.StorageAgent.VendorNameId);
                var soId         = serviceOrders.FirstOrDefault(so => so.ServiceId == 32 && so.SuperServiceOrderId == ssoId).Id;

                await JobsApi.UpdateStorageMilestone(_httpClient, soId, move, jobId, vendorEntity, regNumber, legacyInsuranceClaims);

                var storageRevId = await JobsApi.AddStorageRevRecord(_httpClient, soId, move, jobId, regNumber);

                dynamic billTo      = null;
                var     billToLabel = string.Empty;
                billTo = _accountEntities.FirstOrDefault(ae => ae.AccountingId.Equals(move.StorageAgent.HOW_SENT));

                if (billTo != null)
                {
                    billToLabel = "Account";
                }
                else
                {
                    billTo = _vendor.FirstOrDefault(ae => ae.Accounting_SI_Code.Equals(move.StorageAgent.HOW_SENT));

                    if (billTo != null)
                    {
                        billToLabel = "Vendor";
                    }
                }
                if (billTo == null)
                {
                    //check to see if billto is transferee
                    var NamesRecord = await WaterDbAccess.GetNames(move.StorageAgent.HOW_SENT);

                    if (NamesRecord != null && NamesRecord.FirstName.Equals(transferee.FirstName, StringComparison.CurrentCultureIgnoreCase) &&
                        NamesRecord.LastName.Equals(transferee.LastName, StringComparison.CurrentCultureIgnoreCase))
                    {
                        billTo      = transferee;
                        billToLabel = "Transferee";
                    }
                    else
                    {
                        Console.WriteLine($"{regNumber}, , Cant find the billto for Storage so we are defaulting it");
                        Trace.WriteLine($"{regNumber}, , Cant find the billto for Storage so we are defaulting it");
                    }
                }

                if (!string.IsNullOrEmpty(move.StorageAgent.HOW_SENT) && billTo == null)
                {
                    Trace.WriteLine($"{regNumber}, , Missing Storage BillTo {move.StorageAgent.HOW_SENT}");
                }

                await JobsApi.updateStorageRevRecord(_httpClient, soId, storageRevId, move, jobId, regNumber, billTo, billToLabel, legacyInsuranceClaims);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error while updating ST");
                Trace.WriteLine($"{regNumber}, , Error while updating ST");
                Trace.WriteLine($"{regNumber}, , {ex.Message}");
            }
        }