Beispiel #1
0
        /// <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);
            }
        }
Beispiel #2
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);
        }