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); }
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()); }