Example #1
0
        public async Task <bool> InsertTiles(List <TileDto> tileDtos)
        {
            var tiles = new List <Tile>();

            foreach (var t in tileDtos)
            {
                if (string.IsNullOrEmpty(t.Id))
                {
                    t.Id = Guid.NewGuid().ToString();
                }

                if (!string.IsNullOrWhiteSpace(t.Geometry))
                {
                    var tile = new Tile()
                    {
                        Id        = t.Id,
                        CreatedAt = t.CreatedAt,
                        Deleted   = t.Deleted,
                        Geometry  = DbGeometry.FromText(t.Geometry, 4326),
                        ProjectId = t.ProjectId,
                        SubAreaId = t.SubAreaId,
                        X         = t.X,
                        Y         = t.Y
                    };
                    tiles.Add(tile);
                }
                else
                {
                    System.Diagnostics.Trace.TraceError($"Tile with id {t.Id} did not have a valid Geometry property. System cannot create this tile.");
                    return(false);
                }
            }

            try
            {
                _context.Tiles.AddRange(tiles);
                await _context.SaveChangesAsync();

                return(true);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.TraceError(ex.ToString());
                return(false);
            }
        }