public void Save(Applicant applicant)
 {
     using (ISession session = DataContext.GetSession())
     {
         session.BeginTransaction();
         session.SaveOrUpdate(applicant);
         session.Transaction.Commit();
     }
 }
        public void SaveApplicationFor(Applicant applicant)
        {
            var applyForCreditCommand = new ApplyForCreditCommand(applicant.CreditCardApplicationId);
            applyForCreditCommand.ApplicantFirstName = applicant.FirstName;
            applyForCreditCommand.ApplicantLastName = applicant.LastName;
            applyForCreditCommand.ApplicantDateOfBirth = applicant.DateOfBirth;
            applyForCreditCommand.ApplicantSocialSecurityNumber = applicant.SocialSecurityNumber;

            IBus bus = BusContext.GetBus();

            bus.Send(applyForCreditCommand);
        }
 public Applicant BuildApplicant()
 {
     var visitor = new Applicant
     {
         PathAndQuerystring = _httpRequest.Url.PathAndQuery,
         Browser = _httpRequest.UserAgent,
         IpAddress = _httpRequest.UserHostAddress,
         LoginName = _httpRequest.LogonUserIdentity.Name,
         VisitDate = _currentDate,
         CreditCardApplicationId = Guid.NewGuid()
     };
     return visitor;
 }
        public ActionResult Index(Applicant applicant)
        {
            if (!ModelState.IsValid)
            {
                return View(applicant);
            }

            new ApplicantRepositoryFactory().BuildRepository().Save(applicant);
            new CreditCardApplicationRepositoryFactory().BuildRepository()
                .SaveApplicationFor(applicant);

            TempData.Add("message", "Your application has been logged.");
            return RedirectToAction("index");
        }
 private static void SendCommand()
 {
     var applicant = new Applicant
     {
         CreditCardApplicationId = Guid.NewGuid(),
         FirstName = "Jeffrey"
         ,
         PathAndQuerystring = ""
         ,
         LoginName = ""
         ,
         Browser = ""
         ,
         VisitDate = DateTime.Now
         ,
         IpAddress = ""
     };
     new ApplicantRepositoryFactory().BuildRepository().Save(applicant);
     new CreditCardApplicationRepositoryFactory().BuildRepository()
         .SaveApplicationFor(applicant);
 }
        public void Should_map()
        {
            new DatabaseTester().Clean();
            Guid creditCardApplicationId = Guid.NewGuid();
            var applicant = new Applicant
            {
                Browser = "1",
                IpAddress = "2",
                LoginName = "3",
                PathAndQuerystring = "4",
                VisitDate =
                    new DateTime(2000, 1, 1),
                FirstName = "Jones",
                LastName = "Palermo",
                CreditCardApplicationId = creditCardApplicationId,
                CardNumberIssued = "1234"
            };

            var repository = new ApplicantRepository();
            repository.Save(applicant);

            Applicant loadedApplicant;
            using (ISession session = DataContext.GetSession())
            {
                loadedApplicant = session.Load<Applicant>(applicant.Id);
            }

            loadedApplicant.ShouldNotBeNull();
            loadedApplicant.Browser.ShouldEqual("1");
            loadedApplicant.IpAddress.ShouldEqual("2");
            loadedApplicant.LoginName.ShouldEqual("3");
            loadedApplicant.PathAndQuerystring.ShouldEqual("4");
            loadedApplicant.VisitDate.ShouldEqual(new DateTime(2000, 1, 1));
            loadedApplicant.FirstName.ShouldEqual("Jones");
            loadedApplicant.LastName.ShouldEqual("Palermo");
            loadedApplicant.CreditCardApplicationId.ShouldEqual(creditCardApplicationId);
            loadedApplicant.CardNumberIssued.ShouldEqual("1234");
        }