public async Task <ActionResult> DeleteConfirmed(long id, string PatientId)
        {
            PatientPolicy patientPolicy = await db.PatientPolicies.FindAsync(id);

            db.PatientPolicies.Remove(patientPolicy);
            await db.SaveChangesAsync();

            return(RedirectToAction("UserDetails", "Account", new { id = PatientId }));
            //         return RedirectToAction("Index");
        }
        // GET: PatientPolicies/Details/5
        public async Task <ActionResult> Details(long?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PatientPolicy patientPolicy = await db.PatientPolicies.FindAsync(id);

            if (patientPolicy == null)
            {
                return(HttpNotFound());
            }
            return(View(patientPolicy));
        }
        public async Task <ActionResult> Create([Bind(Include = "Id,Policy")] PatientPolicy patientPolicy, FormCollection form, string PatientId)
        {
            if (ModelState.IsValid)
            {
                var patient = form.GetValue("Patient.Id").AttemptedValue.ToString();
                patientPolicy.Patient = await db.Users.FirstAsync(u => u.Id.Equals(patient, StringComparison.InvariantCultureIgnoreCase));

                db.PatientPolicies.Add(patientPolicy);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index", new { id = patient }));
            }

            return(View(patientPolicy));
        }
        public async Task <ActionResult> CreatePolicy([Bind(Include = "Id,Policy")] PatientPolicy patientPolicy, FormCollection form)
        {
            if (ModelState.IsValid)
            {
                var patient = db.Users.Find(form["Patient.Id"]);
                patientPolicy.Patient = patient;
                db.PatientPolicies.Add(patientPolicy);
                await db.SaveChangesAsync();

                await UserManager.SendEmailAsync(patient.Id, "You have new policy", " Please login in and check ");

                return(RedirectToAction("UserDetails", "Account", new { id = form["Patient.Id"] }));
            }

            return(View(patientPolicy));
        }
        // GET: PatientPolicies/Delete/5
        public async Task <ActionResult> Delete(long?id, string PatientId)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PatientPolicy patientPolicy = await db.PatientPolicies.FindAsync(id);

            var patient = db.Users.Find(PatientId);

            patientPolicy.Patient = patient;
            if (patientPolicy == null)
            {
                return(HttpNotFound());
            }
            return(View(patientPolicy));
        }
        public async Task <ActionResult> Edit([Bind(Include = "Id,Policy")] PatientPolicy patientPolicy, FormCollection form)
        {
            if (ModelState.IsValid)
            {
                var patient = form.GetValue("Patient.Id").AttemptedValue.ToString();
                patientPolicy.Patient = await db.Users.FirstAsync(u => u.Id.Equals(patient, StringComparison.InvariantCultureIgnoreCase));

                db.Entry(patientPolicy).State = EntityState.Modified;
                await db.SaveChangesAsync();

                await UserManager.SendEmailAsync(patientPolicy.Patient.Id, "Your policies have been changed", " Please login in and check ");

                return(RedirectToAction("UserDetails", "Account", new { id = form["Patient.Id"] }));
                //             return RedirectToAction("Index");
            }
            return(View(patientPolicy));
        }