public ActionResult EditCaseParties(int CaseID)
        {
            CasePartiesViewModel fullCasePartiesView = new CasePartiesViewModel
            {
                CaseID      = CaseID,
                CaseParties = PartiesService.GetDefectsByCaseID(CaseID).Select(party => CasePartyViewModels.Map(party)).ToList()
            };
            List <CasePartyViewModels> list = new List <CasePartyViewModels>();

            List <CasePartyViewModels> listDefendent = new List <CasePartyViewModels>();
            List <CasePartyViewModels> listVictim    = new List <CasePartyViewModels>();

            listDefendent = fullCasePartiesView.CaseParties.Where(e => e.PartyType == PartyTypes.Defendant).OrderBy(e => e.PartiesOrder).ToList();
            listVictim    = fullCasePartiesView.CaseParties.Where(e => e.PartyType == PartyTypes.Victim).OrderBy(e => e.PartiesOrder).ToList();

            list.AddRange(listDefendent);
            list.AddRange(listVictim);
            fullCasePartiesView.CaseParties = list;
            foreach (var parties in fullCasePartiesView.CaseParties.Where(e => e.PartyType == PartyTypes.Defendant))
            {
                if (parties.DefendantStatus == 20)
                {
                    parties.Status = JIC.Base.Resources.Resources.Fugitive;
                }
                else if (parties.DefendantStatus == 19)
                {
                    parties.Status = JIC.Base.Resources.Resources.Arrested;
                }
                else if (parties.DefendantStatus == 21)
                {
                    parties.Status = JIC.Base.Resources.Resources.UnWanted;
                }
            }
            // fullCasePartiesView.CaseParties =PartiesService.GetDefectsByCaseID(CaseID).Select(party => CasePartyViewModels.Map(party)).OrderBy(e => e.PartiesOrder).ToList();

            // fullCasePartiesView.CaseParties= PartiesService.GetDefectsByCaseID(CaseID).Select(party => CasePartyViewModels.Map(party)).OrderBy(e=>e.PartiesOrder).ToList();

            return(CPartialView("_EditCasePartiesGrid", fullCasePartiesView));
        }
        public ActionResult Edit(int CaseID, long PartyID, int PartyType)
        {
            if (CurrentUser != null)
            {
                vw_CaseDefectsData CaseParty = PartiesService.GetCaseDefect(CaseID, PartyID, (PartyTypes)PartyType);
                var ViewModel = PrepareCasePartiesViewModel(CaseID, Models.vw_PersonData.Map(CaseParty), CasePartyViewModels.Map(CaseParty));

                string[] li = Regex.Split(ViewModel.PersonData.PersonData.address_address.ToString(), "/");
                if (li[0] != null)
                {
                    ViewModel.PersonData.PersonData.address_address = li[0];
                }
                if (li[1] != null)
                {
                    ViewModel.PersonData.PersonData.address_CityID = int.Parse(li[1]);
                }
                if (li[2] != null)
                {
                    ViewModel.PersonData.PersonData.address_PoliceStationID = int.Parse(li[2]);
                }
                ViewModel.PersonData.PersonData.Age = CalculateAge(CaseParty.Birthdate.Value);
                ////لايمكن التعديل اذا تحركت القضية فى flow  الا بموافقة مدير النظام
                if (PartiesService.CaseInFlow(CaseID) == CaseStatus.GoInFlow)
                {
                    ViewModel.CaseInFlow = CaseStatus.GoInFlow;
                }
                if (CurrentUser.UserTypeID == (int)SystemUserTypes.ElementaryCourtAdministrator)
                {
                    ViewModel.CaseInFlow = CaseStatus.NotGoInFlow;
                }
                ViewData["SessionEnded"] = true;
                return(CPartialView(ViewModel));
            }
            else
            {
                ViewData["SessionEnded"] = true;
                return(CPartialView());
            }
        }
        public ActionResult Index(List <AtendanceViewModel> attendance, int CaseID)
        {
            CasePartiesViewModel fullCasePartiesView = new CasePartiesViewModel
            {
                CaseID      = attendance.Select(e => e.CaseID).First(),
                CaseParties = PartiesService.GetDefectsByCaseID(CaseID).Select(party => CasePartyViewModels.Map(party)).ToList()
            };

            foreach (var defendent in attendance.Where(e => e.DefectType == PartyTypes.Defendant))
            {
                var obj = fullCasePartiesView.CaseParties.Single(e => e.id == defendent.DefectID && e.PartyType == PartyTypes.Defendant);
                obj.PartiesOrder = defendent.OrderID;
            }

            foreach (var defendent in attendance.Where(e => e.DefectType == PartyTypes.Victim))
            {
                var obj = fullCasePartiesView.CaseParties.Single(e => e.id == defendent.DefectID && e.PartyType == PartyTypes.Victim);
                obj.PartiesOrder = defendent.OrderID;
            }
            List <vw_CaseDefectData> CaseDefectData = fullCasePartiesView.CaseParties
                                                      .Select(defect => new vw_CaseDefectData
            {
                Order      = defect.PartiesOrder,
                ID         = defect.id,
                DefectType = defect.PartyType
            }).ToList();
            var SaveDefects = PartiesService.SaveOrder(CaseDefectData);

            if (SaveDefects == SavePartSOrder.SavedOrder)
            {
                return(CPartialView("_OrderForm", CaseID).WithSuccessMessages("تم حفظ الترتيب"));
            }
            else
            {
                return(CPartialView("_OrderForm", CaseID).WithErrorMessages("لم يتم حفظ الترتيب"));
            }
        }
        // GET: LawyersDefects
        public ActionResult Index(int CaseID)
        {
            CasePartiesForLawyersViewModel fullCasePartiesView = new CasePartiesForLawyersViewModel
            {
                CaseID      = CaseID,
                CaseParties = PartiesService.GetDefectsByCaseID(CaseID).Select(party => CasePartyViewModels.Map(party)).ToList()
            };

            foreach (var parties in fullCasePartiesView.CaseParties.Where(e => e.PartyType == PartyTypes.Defendant))
            {
                if (parties.DefendantStatus == 20)
                {
                    parties.Status = JIC.Base.Resources.Resources.Fugitive;
                }
                else if (parties.DefendantStatus == 19)
                {
                    parties.Status = JIC.Base.Resources.Resources.Arrested;
                }
                else if (parties.DefendantStatus == 21)
                {
                    parties.Status = JIC.Base.Resources.Resources.UnWanted;
                }
            }
            return(View());
        }