Пример #1
0
        public IHttpActionResult PutNationality(int id, Nationality nationality)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != nationality.Id)
            {
                return(BadRequest());
            }

            db.Entry(nationality).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!NationalityExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Пример #2
0
        public static void EnsureSeedDataForContext(this NationalityContext context)
        {
            if (context.Nationalities.Any())
            {
                return;
            }


            var     html = @"https://www.worldatlas.com/aatlas/ctycodes.htm";
            HtmlWeb web  = new HtmlWeb
            {
                AutoDetectEncoding = false,
                OverrideEncoding   = Encoding.GetEncoding("iso-8859-1")
            };
            var htmldoc = web.Load(html);

            var nodesCountries = htmldoc.DocumentNode.SelectNodes($"//main/div/article/div/table//tr/td");

            var linkCoutries = new List <Nationality>();
            var fifaCodes    = AddFifaCodes();

            for (int i = 5; i < nodesCountries.Count - 1; i++)
            {
                var wikiData =
                    SeedWikipedia.GetWiki(Regex.Replace(nodesCountries[i].InnerText, $"\\r\\n\\s", "").Trim()).Result;

                linkCoutries.Add(item: new Nationality
                {
                    Name = Regex.Replace(nodesCountries[i].InnerText, $"\\r\\n\\s", "").Trim(),
                    CodeCountryTwoChars   = Regex.Replace(nodesCountries[++i].InnerText, $"\\r\\n\\s", "").Trim(),
                    PngImage              = GetImageAsBase64Url(Regex.Replace(nodesCountries[i].InnerText, $"\\r\\n\\s", "").Trim()).Result,
                    CodeCountryThreeChars = nodesCountries[++i].InnerText,
                    Description           = wikiData.Description,
                    WikiLink              = wikiData.Link,
                    FifaCodeCountry       = fifaCodes.FirstOrDefault(f => f.Key == nodesCountries[i].InnerText).Value
                });
                i += 2;
            }

            var wikiScot = SeedWikipedia.GetWiki("Scotland").Result;

            linkCoutries.Add(new Nationality
            {
                Name = "Scotland",
                CodeCountryThreeChars = "SCO",
                CodeCountryTwoChars   = "SC",
                Description           = wikiScot.Description,
                WikiLink        = wikiScot.Link,
                PngImage        = "No data",
                FifaCodeCountry = "SCO"
            });
            wikiScot = SeedWikipedia.GetWiki("Wales").Result;
            linkCoutries.Add(new Nationality
            {
                Name = "Wales",
                CodeCountryThreeChars = "WAL",
                CodeCountryTwoChars   = "WL",
                Description           = wikiScot.Description,
                WikiLink        = wikiScot.Link,
                PngImage        = "No data",
                FifaCodeCountry = "WAL"
            });
            wikiScot = SeedWikipedia.GetWiki("Northern Ireland").Result;
            linkCoutries.Add(new Nationality
            {
                Name = "Northern Ireland",
                CodeCountryThreeChars = "NIR",
                CodeCountryTwoChars   = "NX",
                Description           = wikiScot.Description,
                PngImage        = "No data",
                WikiLink        = wikiScot.Link,
                FifaCodeCountry = "NIR"
            });
            wikiScot = SeedWikipedia.GetWiki("Kosovo").Result;
            linkCoutries.Add(new Nationality
            {
                Name = "Kosovo",
                CodeCountryThreeChars = "KVX",
                CodeCountryTwoChars   = "KV",
                Description           = wikiScot.Description,
                PngImage        = "No data",
                WikiLink        = wikiScot.Link,
                FifaCodeCountry = "KVX"
            });
            context.Nationalities.AddRange(linkCoutries);
            context.SaveChanges();
        }