public ActionResult Create(int CaseID, Models.vw_PersonData PersonData, CasePartyViewModels CasePartyViewModels)
 {
     using (var Transaction = DataContext.Database.BeginTransaction())
     {
         if (ModelState.IsValid)
         {
             long         PersonID;
             PersonStatus AddPerson;
             if (PersonData.ID == 0)
             {
                 AddPerson = PersonService.AddPerson(new Base.Views.vw_PersonData
                 {
                     ID            = PersonData.ID,
                     Job           = PersonData.Job,
                     BirthDate     = PersonData.GetBirthDate(),
                     Name          = PersonData.Name,
                     NationalityID = PersonData.NationalityID,
                     NatNo         = PersonData.NatNo,
                     PassportNo    = PersonData.PassportNo,
                     address       = (PersonData.address_address != null ? new Base.Views.vw_Address {
                         address = PersonData.address_address, CityID = PersonData.address_CityID, PoliceStationID = PersonData.address_PoliceStationID
                     } : null),
                     CleanFullName = Base.Utilities.RemoveSpaces(Base.Utilities.RemoveSpecialCharacters(PersonData.Name)),
                 }, out PersonID);
             }
             else
             {
                 PersonID  = PersonData.ID;
                 AddPerson = PersonStatus.SuccefullSave;
             }
             if (PartiesService.IsPersonInCase(PersonID, CaseID))
             {
                 return(CPartialView(PrepareCasePartiesViewModel(CaseID, PersonData, CasePartyViewModels)).WithErrorMessages("الخصم مسجل فى القضيه من قبل"));
             }
             else if (AddPerson == Base.PersonStatus.SuccefullSave)
             {
                 var AddStatus = PartiesService.AddCaseDefect(new vw_CaseDefectData
                 {
                     CaseID                 = CaseID,
                     Crimes                 = CasePartyViewModels.CrimeTypes,
                     DefectType             = CasePartyViewModels.PartyType,
                     IsCivilRightProsecutor = CasePartyViewModels.IsCivilRightProsecutor,
                     PersonID               = PersonID,
                     DefendantStatus        = CasePartyViewModels.DefendantStatus ?? 0,
                 });
                 switch (AddStatus)
                 {
                 case Base.SaveDefectsStatus.Saved:
                     Transaction.Commit();
                     ViewBag.SavedCreate = true;
                     //    JavaScript("$(document).trigger('Parties:SavedSuccefull')");
                     return(CPartialView(PrepareCasePartiesViewModel(CaseID, PersonData, CasePartyViewModels)).WithSuccessMessages(JIC.Base.Resources.Messages.OperationCompletedSuccessfully));
                 }
             }
         }
         return(CPartialView(PrepareCasePartiesViewModel(CaseID, PersonData, CasePartyViewModels)));
     }
 }
 private FullCasePartiesViewModel PrepareCasePartiesViewModel(int CaseID, Models.vw_PersonData PersonData = null, CasePartyViewModels CasePartyViewModels = null)
 {
     if (PersonData == null)
     {
         PersonData = new Models.vw_PersonData();
     }
     return(new FullCasePartiesViewModel
     {
         PersonData = new PersonViewModel(PersonData, LookupService, PersonService, CasePartyViewModels != null && CasePartyViewModels.id != 0 ? Modes.Update : Modes.Add),
         CasePartyViewModels = CasePartyViewModels ?? new CasePartyViewModels(),
         CrimeTypes = LookupService.GetLookupsByCategory(Base.LookupsCategories.Crimes),
         PartyTypes = LookupService.GetPartyTypes().Where(partyType => partyType.ID != 0).ToList(),
         DefendantStatus = LookupService.GetLookupsByCategory(Base.LookupsCategories.PoliceStationDefendantsStatuses),
         CaseID = CaseID
     });
 }
Ejemplo n.º 3
0
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            Models.vw_PersonData Person = validationContext.ObjectInstance as Models.vw_PersonData;
            long?ignoreID = (Person.ID == 0 ? (long?)null : Person.ID);

            switch (Type)
            {
            case UniqueTypes.NationalNo:
                if (!String.IsNullOrEmpty(Person.NatNo) && PersonService.IsNationalNoExist(Person.NatNo, ignoreID))
                {
                    return(new ValidationResult("الرقم القومى مسجل من قبل"));
                }
                break;

            case UniqueTypes.PassportNo:
                if (!String.IsNullOrEmpty(Person.PassportNo) && PersonService.IsPassportNoExist(Person.PassportNo, ignoreID))
                {
                    return(new ValidationResult("رقم جواز السفر مسجل من قبل"));
                }

                break;
            }
            return(ValidationResult.Success);
        }
        public ActionResult Edit(int CaseID, [Bind(Prefix = "PersonData")] Models.vw_PersonData PersonData, [Bind(Prefix = "Edit.CasePartyViewModels")] CasePartyViewModels CasePartyViewModels)
        {
            if (!CasePartyViewModels.OriginalPartyType.HasValue)
            {
                ModelState.AddModelError("OriginalPartyType", JIC.Base.Resources.Messages.RequiredErrorMessage);
            }
            if (!ModelState.IsValid)
            {
                return(CPartialView(PrepareCasePartiesViewModel(CaseID, PersonData, CasePartyViewModels)));
            }

            if (CasePartyViewModels.PartyType != CasePartyViewModels.OriginalPartyType)
            {
                using (var Transaction = this.DataContext.Database.BeginTransaction())
                {
                    var PartyData            = PartiesService.GetCaseDefect(CaseID, CasePartyViewModels.id, CasePartyViewModels.OriginalPartyType);
                    var DeleteStatus         = PartiesService.DeleteCaseDefect(CaseID, CasePartyViewModels.id, CasePartyViewModels.OriginalPartyType);
                    vw_CaseDefectData defect = new vw_CaseDefectData()
                    {
                        CaseID = CaseID,
                        ID     = CasePartyViewModels.id,
                        IsCivilRightProsecutor = CasePartyViewModels.IsCivilRightProsecutor,
                        //NationalID = this.NationalID,
                        Order = CasePartyViewModels.PartiesOrder,
                        //Name = PartyName,
                        DefectType      = CasePartyViewModels.PartyType,
                        Crimes          = CasePartyViewModels.CrimeTypes,
                        DefendantStatus = CasePartyViewModels.DefendantStatus
                    };
                    var AddStatus = PartiesService.AddCaseDefect(new vw_CaseDefectData
                    {
                        CaseID                 = CaseID,
                        Crimes                 = CasePartyViewModels.CrimeTypes,
                        DefectType             = CasePartyViewModels.PartyType,
                        IsCivilRightProsecutor = CasePartyViewModels.IsCivilRightProsecutor,
                        PersonID               = PartyData.PersonID,
                        DefendantStatus        = CasePartyViewModels.DefendantStatus ?? 0,
                    });
                    //var AddStatus = PartiesService.AddCaseDefect(defect);
                    if (DeleteStatus == DeleteDefectStatus.Deleted && AddStatus == SaveDefectsStatus.Saved)
                    {
                        Transaction.Commit();
                    }
                    ViewBag.SavedEdite = true;
                    return(CPartialView(PrepareCasePartiesViewModel(CaseID, PersonData, CasePartyViewModels)).WithErrorMessages(JIC.Base.Resources.Messages.OperationNotCompleted));
                }
            }
            else
            {
                using (var Transaction = this.DataContext.Database.BeginTransaction())
                {
                    //Get PartyOriginalData
                    var CasePartyData = PartiesService.GetCaseDefect(CaseID, CasePartyViewModels.id, CasePartyViewModels.PartyType);

                    //UpdatePersonData
                    Base.Views.vw_PersonData personData = PersonData.ToPersonData();
                    personData.ID = CasePartyData.PersonID;
                    var PersonStatus = PersonService.EditPerson(personData);

                    //Update Case Parties Data
                    var CaseDefect = CasePartyViewModels.ToCaseDefectView();
                    CaseDefect.CaseID   = CaseID;
                    CaseDefect.PersonID = personData.ID;
                    var DefectStatus = PartiesService.EditCaseDefect(CaseDefect);

                    //If Party Exist in both Defendant and Victim we Needs to Update the Other As well
                    var PersonParties = PartiesService.GetDefectsByCaseID(CaseID).Where(party => party.PersonID == CasePartyData.PersonID && party.DefectType != CasePartyViewModels.PartyType).ToList();
                    foreach (var party in PersonParties)
                    {
                        PartiesService.EditCaseDefect(new vw_CaseDefectData
                        {
                            CaseID                 = party.CaseID,
                            Crimes                 = party.Crimes.Select(crime => crime.ID).ToList(),
                            DefectType             = party.DefectType,
                            DefendantStatus        = party.Status,
                            IsCivilRightProsecutor = party.IsCivilRightProsecutor,
                            Order    = party.Order,
                            PersonID = personData.ID,
                            ID       = party.ID
                        });
                    }
                    if (PersonStatus == PersonStatus.SuccefullSave && DefectStatus == SaveDefectsStatus.Saved)
                    {
                        Transaction.Commit();
                        ViewBag.SavedEdite = true;
                        return(CPartialView(PrepareCasePartiesViewModel(CaseID, PersonData, CasePartyViewModels)).WithSuccessMessages(JIC.Base.Resources.Messages.OperationCompletedSuccessfully));
                    }
                    else
                    {
                        return(CPartialView(PrepareCasePartiesViewModel(CaseID, PersonData, CasePartyViewModels)).WithErrorMessages(JIC.Base.Resources.Messages.OperationNotCompleted));
                    }
                }
            }
            // JavaScript("$(document).trigger('Parties:UpdateSuccefull');");
        }