//   [ChildActionOnly]
        public ActionResult Create(int id)
        {
            if (CurrentUser != null)
            {
                ViewData["SessionEnded"] = false;
                ViewData["CaseID"]       = id;
                WitnessViewModel WitnessCreate = PersonViewModel();
                //WitnessCreate.PersonID = id;
                //WitnessCreate.ID = 0;
                return(PartialView(WitnessCreate));
            }
            else
            {
                ViewData["SessionEnded"] = true;

                return(PartialView());
            }
        }
        public ActionResult Create(WitnessViewModel WitnessModel, HttpPostedFileBase file)
        {
            if (CurrentUser != null)
            {
                ViewData["SessionEnded"] = false;
                try
                {
                    if (ModelState.IsValid)
                    {
                        // int WitnessID;
                        Base.Views.vw_PersonData vw_Witness = new Base.Views.vw_PersonData()
                        {
                            ID            = WitnessModel.PersonID,
                            Name          = WitnessModel.Name,
                            NatNo         = WitnessModel.NatNo,
                            Job           = WitnessModel.Job,
                            BirthDate     = WitnessModel.GetBirthDate(),
                            NationalityID = WitnessModel.NationalityID,
                            PassportNo    = WitnessModel.PassportNo,
                            address       = (WitnessModel.address_address != null ? new Base.Views.vw_Address {
                                address = WitnessModel.address_address, CityID = WitnessModel.address_CityID, PoliceStationID = WitnessModel.address_PoliceStationID
                            } : null),
                            CleanFullName = Base.Utilities.RemoveSpaces(Base.Utilities.RemoveSpecialCharacters(WitnessModel.Name)),
                        };
                        byte[] FileData = null;
                        if (file != null && file.ContentLength > 0)
                        {
                            FileData = null;
                            using (var binaryReader = new BinaryReader(file.InputStream))
                            {
                                FileData = binaryReader.ReadBytes(file.ContentLength);
                            }
                        }

                        // = new BinaryReader(WitnessModel.filePath.InputStream);//System.IO.File.ReadAllBytes(WitnessModel.filePath.);
                        var ResultAddWitness = WitnessService.AddNewWitness(vw_Witness, (int)WitnessModel.ID, 0, FileData, CurrentUser.ID, (SystemUserTypes)CurrentUser.UserTypeID);


                        if (ResultAddWitness == AddWitnessStatus.AddedSuccessfully)
                        {
                            //, "User", new { returnUrl = "/" }
                            return(RedirectTo(Url.Action("Index", "Witnesses", new { id = (int)WitnessModel.ID })).WithSuccessMessages(JIC.Base.Resources.Messages.OperationCompletedSuccessfully));
                        }
                        else if (ResultAddWitness == AddWitnessStatus.FailedToAdd)
                        {
                            return(RedirectTo(Url.Action("Index", "Witnesses", new { id = (int)WitnessModel.ID })).WithErrorMessages(JIC.Base.Resources.Messages.OperationNotCompleted));
                        }
                        else if (ResultAddWitness == AddWitnessStatus.SavedBefore)
                        {
                            return(RedirectTo(Url.Action("Index", "Witnesses", new { id = (int)WitnessModel.ID })).WithErrorMessages(JIC.Base.Resources.Messages.WitnessSavedBefore));
                        }
                        else if (ResultAddWitness == AddWitnessStatus.IsDefendant)
                        {
                            return(RedirectTo(Url.Action("Index", "Witnesses", new { id = (int)WitnessModel.ID })).WithErrorMessages(JIC.Base.Resources.Messages.PartyAlreadyExists));
                        }
                        else if (ResultAddWitness == AddWitnessStatus.IsVictim)
                        {
                            return(RedirectTo(Url.Action("Index", "Witnesses", new { id = (int)WitnessModel.ID })).WithErrorMessages(JIC.Base.Resources.Messages.PartyAlreadyExists));
                        }
                        else if (ResultAddWitness == AddWitnessStatus.IsLawyer)
                        {
                            return(RedirectTo(Url.Action("Index", "Witnesses", new { id = (int)WitnessModel.ID })).WithErrorMessages(JIC.Base.Resources.Messages.PersonIsALawyer));
                        }
                    }
                    // WitnessViewModel WitnessCreate = PersonViewModel();
                    return(RedirectTo(Url.Action("Index", "Witnesses", new { id = (int)WitnessModel.ID })).WithSuccessMessages(JIC.Base.Resources.Messages.OperationNotCompleted));
                }
                catch (Exception ex)
                {
                    return(ErrorPage(ex));
                }
            }
            else
            {
                // return RedirectTo(Url.Action("login", "User", new { returnUrl = "/" })).WithErrorMessages("تم الخروج بشكل تلقائى لعدم التفاعل اكثر من 15 دقيقة");

                ViewData["SessionEnded"] = true;
                return(CPartialView());
            }
        }