Beispiel #1
0
        public void DeleteDecision(vw_CaseDecision Decision)
        {
            Cases_SessionDecision DecisionData = GetAll().Where(session => session.CaseSessionID == Decision.CaseSessionID).FirstOrDefault();

            Delete(DecisionData);
            Save();
        }
Beispiel #2
0
        public void SaveDecision(vw_CaseDecision DecisionData)
        {
            Add(new Cases_SessionDecision
            {
                CaseSessionID  = DecisionData.CaseSessionID,
                DecisionText   = DecisionData.DecisionDescription,
                DecisionTypeID = (short)DecisionData.DecisionType,
                FirstRollID    = DecisionData.RollID,
                NewCircuitID   = DecisionData.NewCircuitID,
                OldCircuitID   = DecisionData.OldCircuitID
            });

            Save();
        }
Beispiel #3
0
        public bool IsDecisionSaved(int CaseID, int SessionID)
        {
            vw_CaseDecision CD = new vw_CaseDecision();

            List <vw_CaseDecision> Decisions = DecisionsComp.GetCaseDecisions(CaseID);

            CD = Decisions.Where(x => x.CaseSessionID == SessionID).FirstOrDefault();
            if (CD == null)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
Beispiel #4
0
        vw_CaseDecision IDecisionService.GetCaseLastDecision(int CaseID, int SessionID)
        {
            vw_CaseDecision CD = new vw_CaseDecision();

            List <vw_CaseDecision> Decisions = DecisionsComp.GetCaseDecisions(CaseID);

            CD = Decisions.Where(x => x.CaseSessionID == SessionID).FirstOrDefault();
            if (CD.DecisionTypeID == (int)DecisionTypes.L1_Guilty || CD.DecisionTypeID == (int)DecisionTypes.L1_NotGuilty)
            {
                CD.DefendantsListJudges = DefentantsComp.GetSessionDefendantsDecision(SessionID);
            }

            if (CD.DecisionTypeID == (int)DecisionTypes.L2_Experts || CD.DecisionTypeID == (int)DecisionTypes.L2_Forensic ||
                CD.DecisionTypeID == (int)DecisionTypes.L2_Investigations || CD.DecisionTypeID == (int)DecisionTypes.L3_Postponed)
            {
                CD.NextSessionDate = RollsComp.GetSessionDate((int)CD.RollID);
                CD.CycleRollID     = (int)RollsComp.GetCircuitRolls((int)CD.OldCircuitID).Where(z => z.Date == CD.NextSessionDate).Select(x => x.ID).FirstOrDefault();

                if (CD.DecisionTypeID == (int)DecisionTypes.L3_Postponed)
                {
                    if (IsReservedForJudge(CaseID))
                    {
                        CD.ReservedForJudgement = true;
                    }
                    else
                    {
                        CD.ReservedForJudgement = false;
                    }
                }
            }

            if (CD.DecisionTypeID == (int)DecisionTypes.L2_Experts || CD.DecisionTypeID == (int)DecisionTypes.L2_Forensic ||
                CD.DecisionTypeID == (int)DecisionTypes.L2_Investigations)
            {
                CD.DecisionLevel = DecisionLevels.Post;
            }
            else if (CD.DecisionTypeID == (int)DecisionTypes.L1_Guilty || CD.DecisionTypeID == (int)DecisionTypes.L1_NotGuilty)
            {
                CD.DecisionLevel = DecisionLevels.Final;
            }
            else
            {
                CD.DecisionLevel = DecisionLevels.Decision;
            }

            return(CD);
        }
Beispiel #5
0
        void DeleteIfSavedBefore(vw_CaseDecision DecisionData)
        {
            List <vw_CaseDecision> CaseDec = DecisionsComp.GetCaseDecisions(DecisionData.CaseID);

            foreach (vw_CaseDecision r in CaseDec)
            {
                if (r.CaseSessionID == DecisionData.CaseSessionID)
                {
                    if (r.DecisionTypeID == (int)DecisionTypes.L1_Guilty || r.DecisionTypeID == (int)DecisionTypes.L1_NotGuilty)
                    {
                        //Delete From Defendants Table
                        DefentantsComp.DeleteDefendantDecision(DecisionData.CaseSessionID);
                    }
                    DecisionsComp.DeleteDecision(r);
                    break;
                }
            }
        }
Beispiel #6
0
        public DecisionsViewModel GetCaseDecisions(int id, int SessionID)
        {
            vw_CaseDecision    Casedecisions = (decisionService.GetCaseLastDecision(id, SessionID));
            DecisionsViewModel decisions     = new DecisionsViewModel();

            decisions = new DecisionsViewModel
            {
                CaseID            = id,
                DecionDescription = Casedecisions.DecisionDescription,
                CaseSessionID     = Casedecisions.CaseSessionID,

                CaseResultType = (Casedecisions.DecisionLevel == DecisionLevels.Decision) ? CaseResultType.Decision.ToString() : CaseResultType.judgment.ToString(),


                IsReadyForFinalDecision = (Casedecisions.ReservedForJudgement == null) ? false : Casedecisions.ReservedForJudgement,
                NextSessionDate         = (Casedecisions.NextSessionDate == null) ? null : Casedecisions.CycleRollID,
            };
            if (Casedecisions.DefendantsListJudges != null)
            {
                decisions.DefendantsList = Casedecisions.DefendantsListJudges.Select(x => new CaseDefentantsViewModel
                {
                    casejudgmentID = (x.IsGuilty) ? (int)DecisionTypes.L1_Guilty : (int)DecisionTypes.L1_NotGuilty,
                    ID             = (int)x.CaseDefendantId,
                }).ToList();
            }
            if (Casedecisions.DecisionLevel == DecisionLevels.Decision)
            {
                decisions.DecisionTypeID = Casedecisions.DecisionTypeID;
            }

            if (Casedecisions.DecisionLevel == DecisionLevels.Final) // updated by heba basyony 11-3-2018
            {
                decisions.DefendantsList = Casedecisions.DefendantsListJudges.Select(x => new CaseDefentantsViewModel
                {
                    casejudgmentID = (x.IsGuilty) ? (int)DecisionTypes.L1_Guilty : (int)DecisionTypes.L1_NotGuilty,
                    ID             = (int)x.CaseDefendantId,
                }).ToList();
            }

            decisions.JudgmentID        = Casedecisions.DecisionTypeID;
            decisions.CaseJudmentTypeID = (int)Casedecisions.DecisionLevel;
            return(decisions);
        }
Beispiel #7
0
 public void DeleteDecision(vw_CaseDecision Decision)
 {
     DecisionsRepository.DeleteDecision(Decision);
 }
Beispiel #8
0
 public void SaveDecision(vw_CaseDecision DecisionData)
 {
     DecisionsRepository.SaveDecision(DecisionData);
 }
Beispiel #9
0
        //workaround code (Bad Code)
        // todo write clean Code
        public ActionResult Create(List <vw_DefendantsDecisionData> CaseDefentants, string Description, int?CaseID, int?CaseSessionID, string CaseResultType, string DecisionTypeID, string CaseNumber, string NextSessionDate, string IsReadyForFinalDecision, string JudgmentID, string CaseJudmentTypeID, [Bind(Prefix = "model")] DecisionsViewModel model)
        {
            ModelState.Clear();
            // map parameter to model
            model.CaseID            = CaseID.Value;
            model.CaseSessionID     = CaseSessionID.Value;
            model.CaseID            = CaseID.Value;
            model.CaseResultType    = CaseResultType;
            model.CaseJudmentTypeID = (string.IsNullOrEmpty(CaseJudmentTypeID)) ? 0 : Convert.ToInt32(CaseJudmentTypeID);
            // Handle required
            if (string.IsNullOrEmpty(Description))
            {
                ModelState.AddModelError("model.DecionDescription", Messages.RequiredErrorMessage);
            }
            // if Decision
            if (Convert.ToInt32(CaseResultType) == (int)DecreeTypes.Decision)
            {
                if (string.IsNullOrEmpty(DecisionTypeID))
                {
                    ModelState.AddModelError("model.DecisionTypeID", Messages.RequiredErrorMessage);
                }
                else
                {
                    if (Convert.ToInt32(DecisionTypeID) == (int)DecisionTypes.L3_Postponed)
                    {
                        if (string.IsNullOrEmpty(NextSessionDate.ToString()))
                        {
                            ModelState.AddModelError("model.NextSessionDate", Messages.RequiredErrorMessage);
                        }
                    }
                }
            }
            else
            {
                if (string.IsNullOrEmpty(CaseJudmentTypeID))
                {
                    ModelState.AddModelError("model.CaseJudmentTypeID", Messages.RequiredErrorMessage);
                }
                else
                {
                    if (Convert.ToInt32(CaseJudmentTypeID) == (int)DecisionLevels.Post)
                    {
                        if (string.IsNullOrEmpty(NextSessionDate.ToString()))
                        {
                            ModelState.AddModelError("model.NextSessionDate", Messages.RequiredErrorMessage);
                        }
                        if (string.IsNullOrEmpty(JudgmentID.ToString()))
                        {
                            ModelState.AddModelError("model.JudgmentID", Messages.RequiredErrorMessage);
                        }
                    }
                }
            }

            if (ModelState.IsValid)
            {
                vw_CaseDecision _CaseDecision = new vw_CaseDecision();
                if (CaseDefentants != null)
                {
                    foreach (var def in CaseDefentants)
                    {
                        if (def.DecisionType == 0)
                        {
                            model                   = PrepareDecisionsViewModel(CaseID.Value, CaseSessionID.Value);
                            model.CaseID            = CaseID.Value;
                            model.CaseResultType    = "2";
                            model.CaseSessionID     = CaseSessionID.Value;
                            model.CaseJudmentTypeID = (int)DecisionLevels.Final;
                            model.DecionDescription = Description;
                            return(CPartialView(model).WithErrorMessages("يجب اختيار نوع الحكم لجميع المتهمين"));
                        }
                    }
                    _CaseDecision.CaseID               = CaseID.Value;
                    _CaseDecision.CaseSessionID        = CaseSessionID.Value;
                    _CaseDecision.DecisionDescription  = Description;
                    _CaseDecision.DecisionLevel        = DecisionLevels.Final;
                    _CaseDecision.DefendantsListJudges = CaseDefentants;
                    _CaseDecision.DecisionType         = DecisionTypes.L1_Guilty;
                }
                else
                {
                    _CaseDecision.CaseID              = CaseID.Value;
                    _CaseDecision.CaseSessionID       = Convert.ToInt32(CaseSessionID);
                    _CaseDecision.DecisionDescription = Description;
                    if (!string.IsNullOrEmpty(NextSessionDate))
                    {
                        _CaseDecision.NextSessionDate = decisionService.GetCycleSessionDates((int)CaseSessionID).Where(m => m.ID == Convert.ToInt64(NextSessionDate)).Select(z => z.Date).SingleOrDefault(); // ta2gel
                    }
                    //CycleRollID added by Heba Basyony
                    _CaseDecision.CycleRollID  = (int)decisionService.GetCycleSessionDates((int)CaseSessionID).Where(m => m.ID == model.NextSessionDate).Select(z => z.ID).SingleOrDefault(); // ta2gel
                    _CaseDecision.DecisionType = (CaseResultType == "2") ? (DecisionTypes)(Convert.ToInt32(model.JudgmentID)) : (DecisionTypes)Convert.ToInt32(DecisionTypeID);               // No3 El Qarar 7okm
                                                                                                                                                                                              // _CaseDecision.ReservedForJudgement =(IsReadyForFinalDecision == null)?null : Convert.ToBoolean(IsReadyForFinalDecision);
                                                                                                                                                                                              // ma7goza ll 7okm
                    if (IsReadyForFinalDecision != null)
                    {
                        _CaseDecision.ReservedForJudgement = Convert.ToBoolean(IsReadyForFinalDecision);
                    }
                    else
                    {
                        _CaseDecision.ReservedForJudgement = false;
                    }
                    _CaseDecision.DecisionLevel = (CaseResultType == "2") ? (DecisionLevels)Convert.ToInt32(CaseJudmentTypeID) : DecisionLevels.Decision;
                }
                var SaveDecisionStatus = decisionService.SaveDecision(_CaseDecision);
                switch (SaveDecisionStatus)
                {
                case SaveDecisionStatus.Saved:
                    ViewBag.Saved = true;
                    if (decisionService.IsDecisionSaved(model.CaseID, (int)model.CaseSessionID))
                    {
                        DecisionsViewModel decisions = GetCaseDecisions(model.CaseID, (int)model.CaseSessionID);
                        return(CPartialView("Create", PrepareDecisionsViewModel(model.CaseID, Convert.ToInt32(model.CaseSessionID), decisions)).WithSuccessMessages(JIC.Base.Resources.Messages.OperationCompletedSuccessfully));
                    }
                    break;

                case SaveDecisionStatus.RollNotOpenedYet:
                    ViewBag.Saved = false;
                    if (decisionService.IsDecisionSaved(model.CaseID, (int)model.CaseSessionID))
                    {
                        DecisionsViewModel decisions = GetCaseDecisions(model.CaseID, (int)model.CaseSessionID);
                        return(CPartialView("Create", PrepareDecisionsViewModel(model.CaseID, Convert.ToInt32(model.CaseSessionID), decisions)).WithErrorMessages("لم تتم العملية .. رول الجلسة لم يتم فتحة"));
                    }
                    break;

                case SaveDecisionStatus.Failed_To_Save:
                    ViewBag.Saved = false;
                    if (decisionService.IsDecisionSaved(model.CaseID, (int)model.CaseSessionID))
                    {
                        DecisionsViewModel decisions = GetCaseDecisions(model.CaseID, (int)model.CaseSessionID);
                        return(CPartialView("Create", PrepareDecisionsViewModel(model.CaseID, Convert.ToInt32(model.CaseSessionID), decisions)).WithErrorMessages(JIC.Base.Resources.Messages.OperationNotCompleted));
                    }
                    break;

                case SaveDecisionStatus.SentToJudge:
                    ViewBag.Saved = false;
                    if (decisionService.IsDecisionSaved(model.CaseID, (int)model.CaseSessionID))
                    {
                        DecisionsViewModel decisions = GetCaseDecisions(model.CaseID, (int)model.CaseSessionID);
                        return(CPartialView("Create", PrepareDecisionsViewModel(model.CaseID, Convert.ToInt32(model.CaseSessionID), decisions)).WithErrorMessages("لم تتم العملية .. تم الارسال للقاضى"));
                    }
                    break;

                case SaveDecisionStatus.SessionSentToJudge:
                    ViewBag.Saved = false;
                    if (decisionService.IsDecisionSaved(model.CaseID, (int)model.CaseSessionID))
                    {
                        DecisionsViewModel decisions = GetCaseDecisions(model.CaseID, (int)model.CaseSessionID);
                        return(CPartialView("Create", PrepareDecisionsViewModel(model.CaseID, Convert.ToInt32(model.CaseSessionID), decisions)).WithErrorMessages("لم تتم العملية .. تم الارسال للقاضى"));
                    }
                    break;
                }
            }

            return(CPartialView("_CaseDecisions", PrepareDecisionsViewModel(model.CaseID, (int)model.CaseSessionID, model)).WithPrefix("model"));
        }
Beispiel #10
0
        ///////// check ApprovedByJudge from CaseSessions in case of editing Decision

        public SaveDecisionStatus SaveDecision(vw_CaseDecision DecisionData)
        {
            try
            {
                // From SessionID get CaseID & RollID to set old rollID
                DecisionData.RollID       = SessionsComp.GetRollID(DecisionData.CaseSessionID);
                DecisionData.OldCircuitID = SessionsComp.GetCircuitID(DecisionData.CaseSessionID);

                // check RollStatusID from CircuitRolls before Saving data
                if (!RollsComp.IsRollOpened((int)DecisionData.RollID))
                {
                    return(SaveDecisionStatus.RollNotOpenedYet);
                }
                if (SessionsComp.IsSentToJudge(DecisionData.CaseSessionID))
                {
                    return(SaveDecisionStatus.SessionSentToJudge);
                }
                if (RollsComp.IsApprovedByJudge((int)DecisionData.RollID))
                {
                    return(SaveDecisionStatus.SentToJudge);
                }

                DeleteIfSavedBefore(DecisionData); // override saved before decision

                if (DecisionData.DecisionLevel == DecisionLevels.Post || (DecisionData.DecisionLevel == DecisionLevels.Decision && DecisionData.DecisionType == DecisionTypes.L3_Postponed))
                {
                    //check if new roll exist, if not create it
                    DecisionData.RollID = SetNewRollID((int)DecisionData.CycleRollID, (int)DecisionData.OldCircuitID, (DateTime)DecisionData.NextSessionDate);
                    vw_SessionData SessionData;
                    SessionData = new vw_SessionData
                    {
                        CaseID = DecisionData.CaseID,
                        RollID = (int)DecisionData.RollID,
                        DoneByDefaultCircuit = true,
                        ApprovedByJudge      = false,
                        RollIndex            = 0
                    };
                    // add session for the created roll
                    SessionsComp.AddSession(SessionData);
                }

                // Save Decision
                DecisionsComp.SaveDecision(DecisionData);

                Event(new CaseDessionSaved {
                    CaseID = DecisionData.CaseID, DecisionLevel = DecisionData.DecisionLevel, ReservedForJudgement = DecisionData.ReservedForJudgement, DecisionType = DecisionData.DecisionType
                });
                if (DecisionData.DecisionLevel == DecisionLevels.Final)
                {
                    foreach (vw_DefendantsDecisionData Def in DecisionData.DefendantsListJudges)
                    {
                        if (Def.DecisionType == (int)DecisionTypes.L1_Guilty)
                        {
                            Def.IsGuilty = true;
                        }
                        else if (Def.DecisionType == (int)DecisionTypes.L1_NotGuilty)
                        {
                            Def.IsGuilty = false;
                        }
                        Def.SessionDessionId = DecisionData.CaseSessionID;
                        DefentantsComp.AddDefendantDecision(Def);
                    }
                }



                return(SaveDecisionStatus.Saved);
            }
            catch (DbEntityValidationException ex)
            {
                HandleException(ex);
                return(SaveDecisionStatus.Failed_To_Save);
            }
        }