Ejemplo n.º 1
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);
        }
Ejemplo n.º 2
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;
                }
            }
        }
Ejemplo n.º 3
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);
            }
        }