// GET: TVaccinations/Create
        public ActionResult Create(int serviceID)
        {
            int intVisitId = (int)Session["intVisitId"];
            int intPetId   = (int)Session["intPetID"];

            Session["intServiceId"] = serviceID;

            int    rabiesVaccineServiceId = db.TServices.Where(x => x.strServiceDesc == "Rabies Vaccine").Select(z => z.intServiceID).FirstOrDefault();
            string strServiceDesc         = db.TServices.Where(x => x.intServiceID == serviceID).Select(z => z.strServiceDesc).FirstOrDefault();

            Session["isRabiesVaccine"] = null;
            ViewBag.Name = db.TPets.Where(x => x.intPetID == intPetId).Select(z => z.strPetName).FirstOrDefault();

            if (serviceID == rabiesVaccineServiceId)
            {
                Session["isRabiesVaccine"] = true;
            }

            DateTime         today            = DateTime.Now;
            VisitVaccination visitVaccination = new VisitVaccination()
            {
                intServiceId         = serviceID,
                intVisitServiceId    = serviceID,
                strServiceName       = strServiceDesc,
                dtmDateofVaccination = today.Month + "/" + today.Day + "/" + today.Year,
                dtmDateOfExpiration  = today.Month + "/" + today.Day + "/" + (today.Year + 1),
                strVaccineNotes      = " ",
                strRabiesNumber      = " "
            };

            return(View(visitVaccination));
        }
        // GET: TVaccinations/Details/5
        public ActionResult Details(int visitServiceId)
        {
            TVaccination tVaccination = db.TVaccinations.Where(x => x.intVisitServiceID == visitServiceId).FirstOrDefault();

            if (tVaccination == null)
            {
                return(HttpNotFound());
            }

            int    intPetId               = (int)Session["intPetID"];
            int    serviceId              = db.TVisitServices.Where(x => x.intVisitServiceID == visitServiceId).Select(z => z.intServiceID).FirstOrDefault();
            int    intVisitId             = db.TVisitServices.Where(x => x.intVisitServiceID == visitServiceId).Select(z => z.intVisitID).FirstOrDefault();
            int    rabiesVaccineServiceId = db.TServices.Where(x => x.strServiceDesc == "Rabies Vaccine").Select(z => z.intServiceID).FirstOrDefault();
            string serviceName            = db.TVisitServices.Where(x => x.intVisitServiceID == visitServiceId).Select(z => z.TService.strServiceDesc).FirstOrDefault();

            Session["intVisitServiceId"] = visitServiceId;
            Session["isRabiesVaccine"]   = null;
            DateTime dateOfVaccination = tVaccination.dtmDateOfVaccination;
            DateTime dateOfExpiration  = tVaccination.dtmDateOfExpiration;

            if (serviceId == rabiesVaccineServiceId)
            {
                Session["isRabiesVaccine"] = true;
            }

            Session["isFromSummary"] = null;
            Session["intVisitId"]    = intVisitId;
            bool isSummary = (bool)Session["isSummary"];

            if (isSummary == true)
            {
                Session["isFromSummary"] = true;
            }

            VisitVaccination visitVaccination = new VisitVaccination()
            {
                intServiceId         = serviceId,
                intVisitServiceId    = (int)visitServiceId,
                strServiceName       = serviceName,
                dtmDateofVaccination = dateOfVaccination.Month + "/" + dateOfVaccination.Day + "/" + dateOfVaccination.Year,
                dtmDateOfExpiration  = dateOfExpiration.Month + "/" + dateOfExpiration.Day + "/" + dateOfExpiration.Year,
                strVaccineNotes      = tVaccination.strVaccineDesc,
                strRabiesNumber      = tVaccination.strRabiesNumber
            };

            ViewBag.Name = db.TPets.Where(x => x.intPetID == intPetId).Select(z => z.strPetName).FirstOrDefault();
            return(View(visitVaccination));
        }
        public ActionResult VisitVaccinationEdit(VisitVaccination visitVaccination)
        {
            int intPetId      = (int)Session["intPetID"];
            int vaccinationId = db.TVaccinations.Where(x => x.intVisitServiceID == visitVaccination.intVisitServiceId).Select(z => z.intVaccinationID).FirstOrDefault();

            if (ModelState.IsValid)
            {
                if (visitVaccination.strRabiesNumber == null)
                {
                    visitVaccination.strRabiesNumber = string.Empty;
                }
                ;
                TVaccination vaccination = new TVaccination()
                {
                    intVaccinationID     = vaccinationId,
                    intVisitServiceID    = visitVaccination.intVisitServiceId,
                    dtmDateOfVaccination = Convert.ToDateTime(visitVaccination.dtmDateofVaccination),
                    dtmDateOfExpiration  = Convert.ToDateTime(visitVaccination.dtmDateOfExpiration),
                    strVaccineDesc       = visitVaccination.strVaccineNotes,
                    strRabiesNumber      = visitVaccination.strRabiesNumber
                };

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

                return(RedirectToAction("PetVaccinations", "TVaccinations", new { id = Session["intPetID"] }));
            }
            ;

            int serviceId = db.TVisitServices.Where(x => x.intVisitServiceID == visitVaccination.intVisitServiceId).Select(z => z.intServiceID).FirstOrDefault();
            int rabiesVaccineServiceId = db.TServices.Where(x => x.strServiceDesc == "Rabies Vaccine").Select(z => z.intServiceID).FirstOrDefault();

            Session["isRabiesVaccine"] = null;
            if (serviceId == rabiesVaccineServiceId)
            {
                Session["isRabiesVaccine"] = true;
            }

            ViewBag.Name = db.TPets.Where(x => x.intPetID == intPetId).Select(z => z.strPetName).FirstOrDefault();
            return(View(visitVaccination));
        }
        public ActionResult Create(VisitVaccination vaccination)
        {
            int intVisitId = (int)Session["intVisitId"];
            int intPetId   = (int)Session["intPetID"];
            int serviceID  = (int)Session["intServiceId"];

            if (ModelState.IsValid)
            {
                TVisitService newVisitService = new TVisitService()
                {
                    intVisitID   = intVisitId,
                    intServiceID = serviceID
                };

                db.TVisitServices.Add(newVisitService);
                db.SaveChanges();

                int lastInsertedVisitServiceID = db.TVisitServices.Max(v => v.intVisitServiceID);
                if (vaccination.strRabiesNumber == null)
                {
                    vaccination.strRabiesNumber = string.Empty;
                }
                TVaccination newVisitVaccination = new TVaccination()
                {
                    intVisitServiceID    = lastInsertedVisitServiceID,
                    dtmDateOfVaccination = Convert.ToDateTime(vaccination.dtmDateofVaccination),
                    dtmDateOfExpiration  = Convert.ToDateTime(vaccination.dtmDateOfExpiration),
                    strVaccineDesc       = vaccination.strVaccineNotes,
                    strRabiesNumber      = vaccination.strRabiesNumber
                };

                db.TVaccinations.Add(newVisitVaccination);
                db.SaveChanges();

                return(RedirectToAction("Index", "VisitServices"));
            }

            return(View(vaccination));
        }