public async Task <IActionResult> GetUnitEvents(int unitId) { var unitEvents = new List <UnitEventJson>(); if (!await _authorizationService.CanUserViewUnitAsync(UserId, unitId)) { Unauthorized(); } var department = await _departmentsService.GetDepartmentByIdAsync(DepartmentId, false); var events = await _unitsService.GetAllStatesForUnitAsync(unitId); foreach (var e in events) { var unitEvent = new UnitEventJson(); unitEvent.EventId = e.UnitStateId; unitEvent.UnitId = e.UnitId; unitEvent.UnitName = e.Unit.Name; unitEvent.State = StringHelpers.GetDescription(((UnitStateTypes)e.State)); unitEvent.Timestamp = e.Timestamp.TimeConverterToString(department); unitEvent.Note = e.Note; if (((UnitStateTypes)e.State) == UnitStateTypes.Enroute) { if (e.DestinationId.HasValue) { var station = await _departmentGroupsService.GetGroupByIdAsync(e.DestinationId.Value, false); if (station != null) { unitEvent.DestinationName = station.Name; } else { unitEvent.DestinationName = "Station"; } } else { unitEvent.DestinationName = "Station"; } } else if (((UnitStateTypes)e.State) == UnitStateTypes.Responding || ((UnitStateTypes)e.State) == UnitStateTypes.Committed || ((UnitStateTypes)e.State) == UnitStateTypes.OnScene || ((UnitStateTypes)e.State) == UnitStateTypes.Staging || ((UnitStateTypes)e.State) == UnitStateTypes.Released || ((UnitStateTypes)e.State) == UnitStateTypes.Cancelled) { if (e.DestinationId.HasValue) { var call = await _callsService.GetCallByIdAsync(e.DestinationId.Value, false); if (call != null) { unitEvent.DestinationName = call.Name; } else { unitEvent.DestinationName = "Scene"; } } } if (e.LocalTimestamp.HasValue) { unitEvent.LocalTimestamp = e.LocalTimestamp.Value.ToString(); } if (e.Latitude.HasValue) { unitEvent.Latitude = e.Latitude.Value.ToString(); } if (e.Longitude.HasValue) { unitEvent.Longitude = e.Longitude.Value.ToString(); } if (e.Accuracy.HasValue) { unitEvent.Accuracy = e.Accuracy.Value.ToString(); } if (e.Altitude.HasValue) { unitEvent.Altitude = e.Altitude.Value.ToString(); } if (e.AltitudeAccuracy.HasValue) { unitEvent.AltitudeAccuracy = e.AltitudeAccuracy.Value.ToString(); } if (e.Speed.HasValue) { unitEvent.Speed = e.Speed.Value.ToString(); } if (e.Heading.HasValue) { unitEvent.Heading = e.Heading.Value.ToString(); } unitEvents.Add(unitEvent); } return(Json(unitEvents)); }