diff --git a/.deepsource.toml b/.deepsource.toml index 0d718cce..58550223 100644 --- a/.deepsource.toml +++ b/.deepsource.toml @@ -8,8 +8,4 @@ name = "csharp" name = "javascript" [analyzers.meta] - plugins = ["angular"] - - - [analyzers.meta] - runtime_version = "3.x.x" \ No newline at end of file + plugins = ["angular"] \ No newline at end of file diff --git a/Core/Resgrid.Model/MapIconTypes.cs b/Core/Resgrid.Model/MapIconTypes.cs index 405314c3..a371a3eb 100644 --- a/Core/Resgrid.Model/MapIconTypes.cs +++ b/Core/Resgrid.Model/MapIconTypes.cs @@ -58,83 +58,83 @@ public static string ConvertTypeToName(MapIconTypes type) case MapIconTypes.Search: return "search"; case MapIconTypes.Blast: - return ""; + return "blast"; case MapIconTypes.CarAccident: - return ""; + return "caraccident"; case MapIconTypes.CrimeScene: - return ""; + return "crimescene"; case MapIconTypes.Earthquake: - return ""; + return "earthquake"; case MapIconTypes.EmergencyPhone: - return ""; + return "emergencyphone"; case MapIconTypes.Fire: - return ""; + return "fire"; case MapIconTypes.FirstAid: - return ""; + return "firstaid"; case MapIconTypes.Flood: - return ""; + return "flood"; case MapIconTypes.Tools: - return ""; + return "tools"; case MapIconTypes.LineDown: - return ""; + return "linedown"; case MapIconTypes.Industry: - return ""; + return "industry"; case MapIconTypes.PowerOutage: - return ""; + return "poweroutage"; case MapIconTypes.Radiation: - return ""; + return "radiation"; case MapIconTypes.Shooting: - return ""; + return "shooting"; case MapIconTypes.Poison: - return ""; + return "poison"; case MapIconTypes.Gathering: - return ""; + return "gathering"; case MapIconTypes.TreeDown: - return ""; + return "treedown"; case MapIconTypes.Worksite: - return ""; + return "worksite"; case MapIconTypes.Workshop: - return ""; + return "workshop"; case MapIconTypes.Aircraft: - return ""; + return "aircraft"; case MapIconTypes.Ambulance: - return ""; + return "ambulance"; case MapIconTypes.Bulldozer: - return ""; + return "bulldozer"; case MapIconTypes.Bus: - return ""; + return "bus"; case MapIconTypes.Car: - return ""; + return "car"; case MapIconTypes.CarTwo: - return ""; + return "car2"; case MapIconTypes.Check: - return ""; + return "check"; case MapIconTypes.Flag: - return ""; + return "flag"; case MapIconTypes.FourByFour: - return ""; + return "fourbyfour"; case MapIconTypes.Group: - return ""; + return "group"; case MapIconTypes.Helicopter: - return ""; + return "helicopter"; case MapIconTypes.Motorcycle: - return ""; + return "motorcycle"; case MapIconTypes.Pickup: - return ""; + return "pickup"; case MapIconTypes.Camper: - return ""; + return "camper"; case MapIconTypes.Plowtruck: - return ""; + return "plowtruck"; case MapIconTypes.Tires: - return ""; + return "tires"; case MapIconTypes.Truck: - return ""; + return "truck"; case MapIconTypes.Van: - return ""; + return "van"; case MapIconTypes.Velocimeter: - return ""; + return "velocimeter"; case MapIconTypes.Watercraft: - return ""; + return "watercraft"; } return ""; diff --git a/Core/Resgrid.Services/DepartmentLinksService.cs b/Core/Resgrid.Services/DepartmentLinksService.cs index d824cb94..f9b48d6c 100644 --- a/Core/Resgrid.Services/DepartmentLinksService.cs +++ b/Core/Resgrid.Services/DepartmentLinksService.cs @@ -29,12 +29,33 @@ public async Task> GetAllLinksForDepartmentAsync(int depart { var links = await _departmentLinksRepository.GetAllLinksForDepartmentAsync(departmentId); - return links.ToList(); + if (links != null && links.Any()) + { + foreach (var link in links) + { + link.Department = await _departmentsRepository.GetByIdAsync(link.DepartmentId); + link.LinkedDepartment = await _departmentsRepository.GetByIdAsync(link.DepartmentLinkId); + } + + return links.ToList(); + } + + return new List(); } public async Task GetLinkByIdAsync(int linkId) { - return await _departmentLinksRepository.GetByIdAsync(linkId); + var link = await _departmentLinksRepository.GetByIdAsync(linkId); + + if (link != null) + { + link.Department = await _departmentsRepository.GetByIdAsync(link.DepartmentId); + link.LinkedDepartment = await _departmentsRepository.GetByIdAsync(link.DepartmentLinkId); + + return link; + } + + return null; } public async Task SaveAsync(DepartmentLink link, CancellationToken cancellationToken = default(CancellationToken)) diff --git a/Docker/resgrid.env b/Docker/resgrid.env index e55ca099..17a544db 100644 --- a/Docker/resgrid.env +++ b/Docker/resgrid.env @@ -73,6 +73,10 @@ RESGRID__MappingConfig__GoogleMapsJSKey= # https://developers.google.com/maps/documentation/geocoding/get-api-key RESGRID__MappingConfig__GoogleMapsApiKey= +# MapTiler API Key +# https://www.maptiler.com/ +RESGRID__MappingConfig__OSMKey= + # what 3 words api key # https://developer.what3words.com/public-api RESGRID__MappingConfig__What3WordsApiKey= diff --git a/Providers/Resgrid.Providers.Geo/GeoLocationProvider.cs b/Providers/Resgrid.Providers.Geo/GeoLocationProvider.cs index 2669f3a7..b86da87d 100644 --- a/Providers/Resgrid.Providers.Geo/GeoLocationProvider.cs +++ b/Providers/Resgrid.Providers.Geo/GeoLocationProvider.cs @@ -240,15 +240,15 @@ public async Task GetCoordinatesFromW3W(string words) try { var client = new RestClient("https://api.what3words.com"); - var request = new RestRequest($"/v2/forward?key={Config.MappingConfig.What3WordsApiKey}&lang=en&addr={words}", Method.Get); + var request = new RestRequest($"/v3/convert-to-coordinates?key={Config.MappingConfig.What3WordsApiKey}&addr={words}", Method.Get); var response = await client.ExecuteAsync(request); - if (response.Data != null && response.Data.geometry != null) + if (response.Data != null && response.Data.coordinates != null) { var coords = new Coordinates(); - coords.Latitude = response.Data.geometry.lat; - coords.Longitude = response.Data.geometry.lng; + coords.Latitude = response.Data.coordinates.lat; + coords.Longitude = response.Data.coordinates.lng; return coords; } @@ -268,15 +268,15 @@ public async Task GetCoordinatesFromW3WAsync(string words) try { var client = new RestClient("https://api.what3words.com"); - var request = new RestRequest($"/v2/forward?key={Config.MappingConfig.What3WordsApiKey}&lang=en&addr={words}", Method.Get); + var request = new RestRequest($"/v3/convert-to-coordinates?key={Config.MappingConfig.What3WordsApiKey}&addr={words}", Method.Get); var response = await client.ExecuteAsync(request); - if (response.Data != null && response.Data.geometry != null) + if (response.Data != null && response.Data.coordinates != null) { var coords = new Coordinates(); - coords.Latitude = response.Data.geometry.lat; - coords.Longitude = response.Data.geometry.lng; + coords.Latitude = response.Data.coordinates.lat; + coords.Longitude = response.Data.coordinates.lng; return coords; } @@ -296,7 +296,7 @@ public async Task GetW3WFromCoordinates(Coordinates coordinates) try { var client = new RestClient("https://api.what3words.com"); - var request = new RestRequest($"/v2/reverse?key={Config.MappingConfig.What3WordsApiKey}&coords={$"{coordinates.Latitude},{coordinates.Longitude}"}", Method.Get); + var request = new RestRequest($"/v3/convert-to-3wa?key={Config.MappingConfig.What3WordsApiKey}&coords={$"{coordinates.Latitude},{coordinates.Longitude}"}", Method.Get); var response = await client.ExecuteAsync(request); diff --git a/Providers/Resgrid.Providers.Geo/W3WResponse.cs b/Providers/Resgrid.Providers.Geo/W3WResponse.cs index 0f1e01bf..57ece5fd 100644 --- a/Providers/Resgrid.Providers.Geo/W3WResponse.cs +++ b/Providers/Resgrid.Providers.Geo/W3WResponse.cs @@ -6,10 +6,9 @@ public class W3WResponse { public string type { get; set; } public string words { get; set; } - public Geometry geometry { get; set; } + public Geometry coordinates { get; set; } public string language { get; set; } public string map { get; set; } - public dynamic crs { get; set; } public dynamic bounds { get; set; } } @@ -17,10 +16,9 @@ public class ReverseW3WResponse { public string type { get; set; } public string words { get; set; } - public Geometry geometry { get; set; } + public Geometry coordinates { get; set; } public string language { get; set; } public string map { get; set; } - public dynamic crs { get; set; } public dynamic bounds { get; set; } } diff --git a/Web/Resgrid.Web.ServicesCore/Controllers/v4/MappingController.cs b/Web/Resgrid.Web.ServicesCore/Controllers/v4/MappingController.cs index 7f4f52a2..bbee8dcf 100644 --- a/Web/Resgrid.Web.ServicesCore/Controllers/v4/MappingController.cs +++ b/Web/Resgrid.Web.ServicesCore/Controllers/v4/MappingController.cs @@ -258,9 +258,12 @@ public async Task> GetMapDataAndMarkers() { var type = callTypes.FirstOrDefault(x => x.Type == call.Type); - if (type != null && type.MapIconType.HasValue) - info.ImagePath = ((MapIconTypes)type.MapIconType.Value).ToString(); - } + if (type != null && type.MapIconType.HasValue) + info.ImagePath = MapIcons.ConvertTypeToName((MapIconTypes)type.MapIconType.Value); + } + // if (type != null && type.MapIconType.HasValue) + // info.ImagePath = ((MapIconTypes)type.MapIconType.Value).ToString(); + //} if (!String.IsNullOrEmpty(call.GeoLocationData) && call.GeoLocationData.Length > 1) { diff --git a/Web/Resgrid.WebCore/Areas/User/Apps/src/app/componetns/map/map.component.ts b/Web/Resgrid.WebCore/Areas/User/Apps/src/app/componetns/map/map.component.ts index 9a8a1003..bf547f68 100644 --- a/Web/Resgrid.WebCore/Areas/User/Apps/src/app/componetns/map/map.component.ts +++ b/Web/Resgrid.WebCore/Areas/User/Apps/src/app/componetns/map/map.component.ts @@ -243,7 +243,7 @@ export class MapComponent implements OnInit { if (!this.map) { var osm = L.tileLayer( - this.leafletosmurl, + this.leafletosmurl+window['rgOsmKey'], { maxZoom: 19, attribution: this.mapattribution, @@ -308,7 +308,7 @@ export class MapComponent implements OnInit { { icon: L.icon({ iconUrl: - '/images/mapping/' + markerInfo.ImagePath + '.png', + '/images/Mapping/' + markerInfo.ImagePath + '.png', iconSize: [32, 37], iconAnchor: [16, 37], }), @@ -327,7 +327,7 @@ export class MapComponent implements OnInit { { icon: L.icon({ iconUrl: - '/images/mapping/' + markerInfo.ImagePath + '.png', + '/images/Mapping/' + markerInfo.ImagePath + '.png', iconSize: [32, 37], iconAnchor: [16, 37], }),