/// <summary> /// Save data to database /// </summary> /// <param name="geoPoint">GeoPoint value</param> /// <param name="item">OpenStreetMapItem value</param> /// <returns>Save database task</returns> public async Task <bool> SaveDataAsync(GeoPoint geoPoint, OpenStreetMapItem item) { using (var context = new GeoContext()) { var entity = await context.GeoData.FindAsync(geoPoint.Uuid); if (entity != null) { return(false); } entity = new GeoEntity { Uuid = geoPoint.Uuid, Latitude = geoPoint.Latitude, Longitude = geoPoint.Longitude, PlaceId = item.PlaceId, DisplayName = item.DisplayName, City = item.Address?.City, Country = item.Address?.Country, CountryCode = item.Address?.CountryCode, County = item.Address?.County, State = item.Address?.State }; await context.GeoData.AddAsync(entity); return(await context.SaveChangesAsync() > 0); } }
/// <summary> /// Save OpenStreetMap item to cache /// </summary> /// <param name="id">Identifier</param> /// <param name="item">OpenStreetMap item value</param> /// <returns>Save Task</returns> public async Task SetOpenStreetMapAsync(string id, OpenStreetMapItem item) { var conn = await _connectionMultiplexer; var db = conn.GetDatabase(); var jsonData = JsonConvert.SerializeObject(item); await db.StringSetAsync("OSM-" + id, jsonData); }