コード例 #1
0
ファイル: UnitsService.cs プロジェクト: lanicon/Core
        public async Task <List <UnitState> > GetUnitStatesForCallAsync(int departmentId, int callId)
        {
            List <int> callEnabledStates = new List <int>();
            var        states            = await _customStateService.GetAllCustomStatesForDepartmentAsync(departmentId);

            callEnabledStates.Add((int)UnitStateTypes.Enroute);
            callEnabledStates.Add((int)UnitStateTypes.Committed);
            callEnabledStates.Add((int)UnitStateTypes.Manual);
            callEnabledStates.Add((int)UnitStateTypes.OnScene);
            callEnabledStates.Add((int)UnitStateTypes.Responding);
            callEnabledStates.Add((int)UnitStateTypes.Returning);
            callEnabledStates.Add((int)UnitStateTypes.Released);
            callEnabledStates.Add((int)UnitStateTypes.Staging);
            callEnabledStates.Add((int)UnitStateTypes.Available);

            var nonNullStates = from state in states
                                where state.Details != null
                                select state;

            callEnabledStates.AddRange(from state in nonNullStates
                                       from detail in state.Details
                                       where detail.DetailType == (int)CustomStateDetailTypes.Calls || detail.DetailType == (int)CustomStateDetailTypes.CallsAndStations
                                       select detail.CustomStateDetailId);

            var unitStates = (from us in await _unitStatesRepository.GetAllStatesByCallIdAsync(callId)
                              where callEnabledStates.Contains(us.State)
                              select us).ToList();

            return(unitStates);
        }
コード例 #2
0
ファイル: ActionLogsService.cs プロジェクト: mrjohndowe/Core
        public async Task <List <ActionLog> > GetActionLogsForCallAsync(int departmentId, int callId)
        {
            List <int> callEnabledStates = new List <int>();
            var        states            = await _customStateService.GetAllCustomStatesForDepartmentAsync(departmentId);

            callEnabledStates.Add((int)ActionTypes.OnScene);
            callEnabledStates.Add((int)ActionTypes.RespondingToScene);

            var nonNullStates = from state in states
                                where state.Details != null
                                select state;

            callEnabledStates.AddRange(from state in nonNullStates from detail in state.Details where detail.DetailType == (int)CustomStateDetailTypes.Calls || detail.DetailType == (int)CustomStateDetailTypes.CallsAndStations select detail.DetailType);

            var items = await _actionLogsRepository.GetActionLogsForCallAndTypesAsync(callId, callEnabledStates);

            return(items.ToList());
        }