// Full summary of Quote/Property/Location
        public ActionResult QuoteSummary(int?quoteId)
        {
            if (!quoteId.HasValue)
            {
                try {
                    quoteId = (int)Session["quoteId"];
                }

                catch {
                    // TODO: redirect
                    return(RedirectToAction("GetStarted", "Quotes"));
                }
            }

            else
            {
                Session["quoteId"] = quoteId;
            }

            // TODO: do we have a User?
            using (QuotesEntity qe = new QuotesEntity()) {
                Quote q = qe.Quotes.Include("Property.Location.Homeowner.User").Where(qq => qq.Id == quoteId).FirstOrDefault();
                // TODO: is q null?
                return(View(q));
            };
        }
示例#2
0
        public ActionResult BuyPolicy(VerifyPolicy verify)
        {
            if (!verify.Acknowledge)
            {
                ModelState.AddModelError("", "Please e-sign to buy policy.");
                return(View(verify));
            }

            if (!DateTime.TryParse(verify.PolicyStartDate, out DateTime startDate))
            {
                return(View(verify));
            }

            Policy p = new Policy {
                PolicyEffDate = startDate.ToString("yyyy-MM-dd"),
                PolicyEndDate = startDate.AddYears(1).ToString("yyyy-MM-dd"),
                QuoteId       = (int)Session["quoteId"],
                PolicyKey     = Session["quoteId"].ToString() + "_1",
                PolicyStatus  = startDate <= DateTime.Now ? "ACTIVE" : "PENDING",
                PolicyTerm    = 1
            };

            using (QuotesEntity qe = new QuotesEntity()) {
                qe.Policies.Add(p);
                qe.SaveChanges();
            }

            Session["policyId"] = p.Id;
            return(RedirectToAction("Confirmation"));
        }
示例#3
0
 public MockQuotesEntity()
 {
     using (QuotesEntity qe = new QuotesEntity())
     {
         _users      = new List <User>(qe.Users);
         _quotes     = new List <Quote>(qe.Quotes.Include("Property.Location.Homeowner.User"));
         _policies   = new List <Policy>(qe.Policies.Include("Quote.Property.Location.Homeowner.User"));
         _properties = new List <Property>(qe.Properties);
         _locations  = new List <Location>(qe.Locations);
         _homeowners = new List <Homeowner>(qe.HomeOwners);
     }
 }
        public ActionResult QuoteDetails()
        {
            User user = Session["User"] as User;

            using (QuotesEntity qe = new QuotesEntity()) {
                List <Quote> quoteList = new List <Quote>();

                quoteList.AddRange(qe.Quotes.Include("Property.Location.Homeowner.User")
                                   .Where(q => q.Property.Location.Homeowner.UserId == user.Id));

                return(View(quoteList));
            }
        }
示例#5
0
        public ActionResult Confirmation()
        {
            int policyId;

            try     {
                policyId = (int)Session["policyId"];
            }

            catch {
                return(RedirectToAction("GetStarted", "Quotes"));
            }

            using (QuotesEntity qe = new QuotesEntity()) {
                Policy p = qe.Policies.FirstOrDefault(pp => pp.Id == policyId);
                return(View(p));
            }
        }
示例#6
0
        public ActionResult CancelPolicy(int?policyId)
        {
            using (QuotesEntity qe = new QuotesEntity()) {
                Policy p = qe.Policies.FirstOrDefault(pp => pp.Id == policyId);
                if (p == null)
                {
                    return(UserPolicies());
                }

                p.PolicyTerm   = 0;
                p.PolicyStatus = "CANCELLED";

                qe.SaveChanges();
                Session["policyId"] = p.Id;

                return(RedirectToAction("Confirmation", "Policy"));
            }
        }
示例#7
0
        public ActionResult UserPolicies()
        {
            User          user       = Session["User"] as User;
            List <Policy> policyList = new List <Policy>();

            using (QuotesEntity qe = new QuotesEntity()) {
                List <Policy> allPolicy = qe.Policies.Include("Quote.Property.Location.Homeowner.User").ToList();

                Homeowner ho = qe.HomeOwners.FirstOrDefault(h => h.UserId == user.Id);
                if (ho == null)
                {
                    return(View(policyList));
                }

                policyList.AddRange(qe.Policies.Where(p => p.Quote.Property.Location.HomeownerId == ho.Id));
                return(View(policyList));
            }
        }
示例#8
0
        public ActionResult BuyPolicy(VerifyPolicy verify)
        {
            if (!verify.Acknowledge)
            {
                ModelState.AddModelError("", "Please e-sign to buy policy.");
                return(View(verify));
            }

            if (!DateTime.TryParse(verify.PolicyStartDate, out DateTime startDate))
            {
                return(View(verify));
            }

            //Added to check validation of model
            if (!ModelState.IsValid)
            {
                return(View(verify));
            }

            //Moved this block into an else statement so when all validity checks return w/o problem,
            // this will execute and send user to Confirmation page.
            else
            {
                Policy p = new Policy
                {
                    PolicyEffDate = startDate.ToString("yyyy-MM-dd"),
                    PolicyEndDate = startDate.AddYears(1).ToString("yyyy-MM-dd"),
                    QuoteId       = (int)Session["quoteId"],
                    PolicyKey     = Session["quoteId"].ToString() + "_1",
                    PolicyStatus  = startDate <= DateTime.Now ? "ACTIVE" : "PENDING",
                    PolicyTerm    = 1
                };

                using (QuotesEntity qe = new QuotesEntity())
                {
                    qe.Policies.Add(p);
                    qe.SaveChanges();
                }

                Session["policyId"] = p.Id;
                return(RedirectToAction("Confirmation"));
            }
        }
示例#9
0
        public ActionResult SearchUser(LookupUser user)
        {
            if (!ModelState.IsValid)
            {
                return(View("SearchUser"));
            }

            using (QuotesEntity qe = new QuotesEntity()) {
                User u = qe.Users.FirstOrDefault(model => model.Username == user.Username);

                if (u == null)
                {
                    ModelState.AddModelError("", "This user name doesn't exist.");
                    return(View("SearchUser", user));
                }

                Session["User"] = u;
                return(RedirectToAction("UserPolicies", "Admin"));
            }
        }
示例#10
0
        public ActionResult LoginUser(User user)
        {
            if (!ModelState.IsValid)
            {
                return(View("LoginUser"));
            }

            using (QuotesEntity qe = new QuotesEntity()) {
                User existing = qe.Users.FirstOrDefault(u => u.Password == user.Password &&
                                                        u.Username == user.Username);

                if (existing == null)
                {
                    ModelState.AddModelError("", "The user name or password provided is incorrect.");
                    return(View("LoginUser", user));
                }

                return(RedirectUser(existing));
            }
        }
示例#11
0
        public ActionResult NewUser(NewUser newUser)
        {
            if (!ModelState.IsValid)
            {
                return(View("NewUser", newUser));
            }

            using (QuotesEntity qe = new QuotesEntity()) {
                User u = qe.Users.FirstOrDefault(model => model.Username == newUser.Username);

                if (u != null)
                {
                    ModelState.AddModelError("", "This username already exists.");
                    return(View("NewUser", newUser));
                }

                User user = new User(newUser);
                qe.Users.Add(user);
                qe.SaveChanges();
                return(RedirectUser(user));
            };
        }
        public ActionResult SaveQuote()
        {
            Quote     quote     = Session["Quote"] as Quote;
            Property  property  = Session["Property"] as Property;
            Location  location  = Session["Location"] as Location;
            Homeowner homeowner = Session["Homeowner"] as Homeowner;
            User      user      = Session["User"] as User;

            quote.Property     = property;
            property.Location  = location;
            location.Homeowner = homeowner;
            homeowner.UserId   = user.Id;

            using (QuotesEntity qe = new QuotesEntity()) {
                qe.Quotes.Add(quote);
                qe.SaveChanges();
            }

            Session.Clear();
            Session["User"] = user;
            return(RedirectToAction("QuoteDetails"));
        }