Ejemplo n.º 1
0
        public ActionResult MyPolicies()
        {
            User          user     = Session["User"] as User;
            List <Policy> policies = new List <Policy>();

            using (IQuotesEntity qe = QuoteSource.CreateQuotesEntity())
            {
                Homeowner ho = qe.Homeowners.FirstOrDefault(h => h.UserId == user.Id);
                if (ho == null)
                {
                    return(View(policies));
                }
                policies.AddRange(qe.IncludeInPolicies("Quote.Property.Location.Homeowner.User")
                                  .Where(p => p.Quote.Property.Location.Homeowner.UserId == ho.UserId));
                return(View(policies));
            }
        }
        // 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 (IQuotesEntity qe = QuoteSource.CreateQuotesEntity())
            {
                Quote q = qe.IncludeInQuotes("Property.Location.Homeowner.User").Where(qq => qq.Id == quoteId).FirstOrDefault();
                // TODO: is q null?

                //Added this section in order to stop the user from being able to buy same quote multiple times
                List <Policy> policies = new List <Policy>();
                User          user     = Session["User"] as User;
                Homeowner     ho       = qe.Homeowners.FirstOrDefault(h => h.UserId == user.Id);
                policies.AddRange(qe.IncludeInPolicies("Quote.Property.Location.Homeowner.User")
                                  .Where(p => p.Quote.Property.Location.Homeowner.UserId == ho.UserId && p.QuoteId == q.Id));
                bool isPolicyExist = policies.Count > 0;
                Tuple <Quote, bool> returningParameters = new Tuple <Quote, bool>(q, isPolicyExist);              //Tuple used for multiple returns
                return(View(returningParameters));

                //return View(q); This not needed anymore, q returned in line 55 via Tuple
            }
        }