//
        public IActionResult AddEdit(string id)
        {
            PatientRxView lPatientRx = new PatientRxView();

            try
            {
                if (!string.IsNullOrEmpty(id))
                {
                    getDetails();
                    PatientRx patientRx = lIPatientRxRepository.getById(id);
                    if (patientRx != null)
                    {
                        lPatientRx = patientRx.PatientRxToPatientRxViewModel();
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(HttpContext.Session.GetString("UserId")))
                    {
                        lPatientRx.ProviderId = HttpContext.Session.GetString("UserId");
                        lPatientRx.RxDays     = new List <checkboxModel>
                        {
                            new checkboxModel {
                                id = 1, name = "SUN", isCheck = false
                            },
                            new checkboxModel {
                                id = 2, name = "MON", isCheck = false
                            },
                            new checkboxModel {
                                id = 3, name = "TUE", isCheck = false
                            },
                            new checkboxModel {
                                id = 4, name = "WED", isCheck = false
                            },
                            new checkboxModel {
                                id = 5, name = "THR", isCheck = false
                            },
                            new checkboxModel {
                                id = 6, name = "FRI", isCheck = false
                            },
                            new checkboxModel {
                                id = 7, name = "SAT", isCheck = false
                            }
                        };
                        getDetails();
                    }
                    else
                    {
                        ViewBag.equipment = null;
                        ViewBag.Patients  = null;
                    }
                }
            }
            catch (Exception ex)
            {
                logger.LogDebug("Patent Rx Error: " + ex);
            }
            return(View(lPatientRx));
        }
        public static PatientRxView PatientRxToPatientRxViewModel(this PatientRx patientRx)
        {
            if (patientRx == null)
            {
                return(null);
            }

            PatientRxView patRx = new PatientRxView()
            {
                RxId          = patientRx.RxId.ToString(),
                ProviderId    = patientRx.ProviderId,
                PatientId     = patientRx.PatientId.ToString(),
                EquipmentType = patientRx.EquipmentType,
                RxStartDate   = Convert.ToDateTime(patientRx.RxStartDate).ToString("dd-MMM-yyyy"),
                RxEndDate     = Convert.ToDateTime(patientRx.RxEndDate).ToString("dd-MMM-yyyy"),

                RxSessionsPerWeek = (int)patientRx.RxSessionsPerWeek,

                DateCreated  = patientRx.DateCreated,
                DateModified = patientRx.DateModified,
                RxDays       = new List <checkboxModel>
                {
                    new checkboxModel {
                        id = 1, name = "SUN", isCheck = (!string.IsNullOrEmpty(patientRx.RxDays) && patientRx.RxDays.Split(',').ToList().Where(x => x == "SUN").Count() > 0) ? true : false
                    },
                    new checkboxModel {
                        id = 2, name = "MON", isCheck = (!string.IsNullOrEmpty(patientRx.RxDays) && patientRx.RxDays.Split(',').ToList().Where(x => x == "MON").Count() > 0) ? true : false
                    },
                    new checkboxModel {
                        id = 3, name = "TUE", isCheck = (!string.IsNullOrEmpty(patientRx.RxDays) && patientRx.RxDays.Split(',').ToList().Where(x => x == "TUE").Count() > 0) ? true : false
                    },
                    new checkboxModel {
                        id = 4, name = "WED", isCheck = (!string.IsNullOrEmpty(patientRx.RxDays) && patientRx.RxDays.Split(',').ToList().Where(x => x == "WED").Count() > 0) ? true : false
                    },
                    new checkboxModel {
                        id = 5, name = "THR", isCheck = (!string.IsNullOrEmpty(patientRx.RxDays) && patientRx.RxDays.Split(',').ToList().Where(x => x == "THR").Count() > 0) ? true : false
                    },
                    new checkboxModel {
                        id = 6, name = "FRI", isCheck = (!string.IsNullOrEmpty(patientRx.RxDays) && patientRx.RxDays.Split(',').ToList().Where(x => x == "FRI").Count() > 0) ? true : false
                    },
                    new checkboxModel {
                        id = 6, name = "SAT", isCheck = (!string.IsNullOrEmpty(patientRx.RxDays) && patientRx.RxDays.Split(',').ToList().Where(x => x == "FRI").Count() > 0) ? true : false
                    }
                },
                DateOfBirth = Convert.ToDateTime(patientRx.Patient.Dob).ToString("dd-MMM-yyyy"),

                Mobile      = patientRx.Patient.PhoneNumber,
                Address     = patientRx.Patient.AddressLine,
                PatientName = patientRx.Patient.PatientName
            };

            return(patRx);
        }
        public static PatientRx PatientRxViewToPatientRxModel(this PatientRxView patientRx)
        {
            if (patientRx == null)
            {
                return(null);
            }
            Console.WriteLine("Patient Rx: " + Newtonsoft.Json.JsonConvert.SerializeObject(patientRx));

            PatientRx patRx = new PatientRx()
            {
                RxId              = patientRx.RxId,
                ProviderId        = patientRx.ProviderId,
                PatientId         = Convert.ToInt32(patientRx.PatientId),
                EquipmentType     = patientRx.EquipmentType,
                RxStartDate       = Convert.ToDateTime(patientRx.RxStartDate.ToString()),
                RxEndDate         = Convert.ToDateTime(patientRx.RxEndDate.ToString()),
                RxDaysPerweek     = patientRx.RxDays.Where(x => x.isCheck == true).Count(),
                RxSessionsPerWeek = (int)patientRx.RxSessionsPerWeek,

                DateCreated  = patientRx.DateCreated,
                DateModified = patientRx.DateModified,
                RxDays       = string.Join(",", patientRx.RxDays.Where(x => x.isCheck == true).Select(x => x.name)),
                Patient      = new Patient()
                {
                    Dob = Convert.ToDateTime(patientRx.DateOfBirth),

                    PhoneNumber = patientRx.Mobile,
                    AddressLine = patientRx.Address,
                    PatientName = patientRx.PatientName,
                    PatientId   = Convert.ToInt32(patientRx.PatientId),

                    ProviderId = patientRx.ProviderId
                }
            };

            return(patRx);
        }
        public IActionResult AddEdit(PatientRxView pPatientRx)
        {
            try
            {
                if (pPatientRx != null && (!string.IsNullOrEmpty(pPatientRx.ProviderId)))
                {
                    if (ModelState.IsValid)
                    {
                        if (!string.IsNullOrEmpty(pPatientRx.RxId))
                        {
                            pPatientRx.DateModified = DateTime.Now;
                            PatientRx lpatientRx = PatientRxExtension.PatientRxViewToPatientRxModel(pPatientRx);

                            User lUser = lIUserRepository.getUser(lpatientRx.PatientId.ToString());
                            if (lUser != null && lpatientRx.Patient != null)
                            {
                                lIPatientRxRepository.UpdatePatientRx(lpatientRx);
                            }
                            else
                            {
                                lIPatientRxRepository.UpdatePatientRx(lpatientRx);
                            }

                            return(RedirectToAction("Dashboard", "Provider", new { id = lpatientRx.ProviderId }));
                        }
                        else
                        {
                            PatientRx lpatientRx = lIPatientRxRepository.getByPatientIdAndEquipmentTypeAndProviderId(pPatientRx.ProviderId, pPatientRx.PatientId, pPatientRx.EquipmentType.Trim());

                            if (lpatientRx == null)
                            {
                                pPatientRx.RxId         = Guid.NewGuid().ToString();
                                pPatientRx.DateCreated  = DateTime.Now;
                                pPatientRx.DateModified = DateTime.Now;


                                lpatientRx = PatientRxExtension.PatientRxViewToPatientRxModel(pPatientRx);
                                User lUser = lIUserRepository.getUser(pPatientRx.PatientId);
                                if (lUser == null && lpatientRx.Patient != null)
                                {
                                    lIPatientRxRepository.InsertPatientRx(lpatientRx);
                                }
                                else
                                {
                                    lIPatientRxRepository.InsertPatientRx(lpatientRx);
                                }
                                return(RedirectToAction("Dashboard", "Provider", new { id = lpatientRx.ProviderId }));
                            }
                            else
                            {
                                TempData["msg"] = "<script>alert('Patient already registered with the surgery type');</script>";
                                getDetails();
                            }
                        }
                    }
                    else
                    {
                        getDetails();
                    }
                }
                else
                {
                    getDetails();
                }
            }
            catch (Exception ex)
            {
                logger.LogDebug("Patent Rx Error: " + ex);
            }
            return(View(pPatientRx));
        }