コード例 #1
0
        // GET: Policy/Assign
        /// <summary>
        /// Assign the policy to a client.
        /// </summary>
        /// <returns>Client policy view model.</returns>
        public ActionResult Assign()
        {
            var clientPolicyViewModel = new ClientPolicyViewModel();

            ViewBag.ClientID = new SelectList(db.Clients, "ID", "Name");

            return(View(clientPolicyViewModel));
        }
コード例 #2
0
        public ActionResult Assign(ClientPolicyViewModel clientPolicyViewModel)
        {
            if (ModelState.IsValid)
            {
                return(RedirectToAction("ListPolicies", new { id = clientPolicyViewModel.ClientID }));
            }

            ViewBag.ClientID = clientPolicyViewModel.ClientID;

            return(View(clientPolicyViewModel));
        }
コード例 #3
0
        public ActionResult AssignPolicy(ClientPolicyViewModel clientPolicyViewModel)
        {
            clientPolicyViewModel = (ClientPolicyViewModel)Session["clientPolicyViewModel"];

            if (clientPolicyViewModel.Client == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            if (ModelState.IsValid)
            {
                clientPolicyViewModel.ClientID = clientPolicyViewModel.Client.ID;

                var clientToUpdate = db.Clients.Include(i => i.Policies).First(i => i.ID == clientPolicyViewModel.ClientID);

                clientPolicyViewModel.Client = clientToUpdate;

                var clientID = clientPolicyViewModel.Policies[0].ID;
                var policy   = db.Policies.SingleOrDefault(i => i.ID == clientID);

                if (!clientToUpdate.Policies.Contains(policy))
                {
                    clientToUpdate.Policies.Add(policy);
                }
                else
                {
                    clientToUpdate.Policies.Remove(policy);
                }

                db.Entry(clientToUpdate).State = EntityState.Modified;
                db.SaveChanges();

                return(RedirectToAction("ListPolicies/" + clientPolicyViewModel.ClientID));
            }

            LoadCoverages();

            return(View(clientPolicyViewModel));
        }
コード例 #4
0
        // GET: Policy/ListPolicies/5
        /// <summary>
        /// List the policies to assign to a client.
        /// </summary>
        /// <param name="id">Client id.</param>
        /// <returns>Client policy view model.</returns>
        public ActionResult ListPolicies(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var clientPolicyViewModel = new ClientPolicyViewModel
            {
                Client = db.Clients.SingleOrDefault(p => p.ID == id)
            };

            foreach (var policy in db.Policies.Include(i => i.Coverages))
            {
                var assignPolicyViewModel = new AssignPolicyViewModel()
                {
                    ID            = policy.ID,
                    Name          = policy.Name,
                    Description   = policy.Description,
                    ValidityStart = policy.ValidityStart,
                    Price         = policy.Price,
                    RiskType      = policy.RiskType,
                    Coverages     = policy.Coverages,
                    Assigned      = policy.Clients.Count > 0
                };

                clientPolicyViewModel.Policies.Add(assignPolicyViewModel);
            }

            if (clientPolicyViewModel.Client == null)
            {
                return(HttpNotFound());
            }

            Session["clientPolicyViewModel"] = clientPolicyViewModel;

            return(View(clientPolicyViewModel));
        }