Пример #1
0
        public async Task <IActionResult> LoadSpotsXML()
        {
            var xml = new XmlDocument();

            using (FileStream fs = new FileStream("spots.kml", FileMode.Open))
            {
                xml.Load(fs);

                var root = xml.DocumentElement.FirstChild;

                var r = new Regex("\"(?<src>.*?)\"");

                int i = 0;
                // var names = new List<string>();
                foreach (XmlNode node in root.ChildNodes)
                {
                    i++;
                    if (node.Name != "Placemark")
                    {
                        continue;
                    }
                    // names.Add(node?["name"]?.InnerText ?? "");
                    var name = node?["name"].InnerText ?? "";
                    if (name == "")
                    {
                        continue;
                    }

                    var coords = node?["Point"]?["coordinates"]?.InnerText.Split(",");

                    var image = node?["description"]?.InnerText ?? "";
                    var match = r.Match(image);

                    var entry = new SkatePlace()
                    {
                        Name        = name + i.ToString(),
                        Lat         = double.Parse(coords[1]),
                        Lng         = double.Parse(coords[0]),
                        Type        = "Stair",
                        Description = "Imported from open-data",
                        Image       = match?.Groups["src"].Value ?? ""
                    };

                    // return new JsonResult(entry);
                    this._db.SkatePlaces.Add(entry);
                }

                await this._db.SaveChangesAsync();

                // return new JsonResult(names);
                return(Ok());
            }
        }
Пример #2
0
        public async Task <IActionResult> AddPoint([FromBody] SkatePlace place)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            var user      = this._accessor.HttpContext.User;
            var userEntry = this._db.Users.Include(u => u.Places).FirstOrDefault(u => u.UserName == user.Identity.Name);

            if (userEntry == null)
            {
                return(Unauthorized());
            }

            this._db.Add(place);
            await this._db.SaveChangesAsync();

            userEntry.Places.Add(place);
            await this._db.SaveChangesAsync();

            return(new JsonResult(place));
        }