示例#1
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            var scrapper = new Scrapper();

            services
            .AddSingleton(provider => {
                var db = new CelebsDB(Path.Combine(Environment.CurrentDirectory, "data"));

                if (db.Celebs.Count == 0)
                {
                    Task.Run(() => Helpers.LoadData(db, scrapper))
                    .Wait();
                }

                return(db);
            })
            .AddSingleton(provider => scrapper)
            .AddLogging(logging =>
                        logging
                        .AddConsole()
                        .SetMinimumLevel(LogLevel.Debug));

            services
            .AddMvc()
            .SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
        }
示例#2
0
        // GET api/<controller>/5
        public string Get(int id)
        {
            int Token = int.Parse(File.ReadAllText(TokenFile));

            if (id == Token)
            {
                Stopwatch stopwatch = Stopwatch.StartNew();                 //creates and start the instance of Stopwatch
                ICelebsDB DB        = new CelebsDB();
                DB.Reset();
                stopwatch.Stop();
                string soMuch = stopwatch.Elapsed.TotalSeconds.ToString();
                File.WriteAllText(TokenFile, "-1");
                return($"Database has been reset. This took {soMuch} seconds. You happy?");
            }
            else
            {
                File.WriteAllText(TokenFile, "-1");
                return("DataBase was NOT reset. Wise Choice. ");
            }
        }
示例#3
0
        public static async Task LoadData(CelebsDB db, Scrapper scrapper)
        {
            db.Celebs.Clear();

            var celebsList = await scrapper.GetCelebs(5);

            foreach (var celeb in celebsList)
            {
                db.Celebs.Add(
                    celeb.Id,
                    new SimpleDatabase.Celeb(
                        celeb.Id,
                        celeb.Name,
                        celeb.BirthDate,
                        Sex.Unknown,
                        celeb.Titles.ToList(),
                        celeb.Image));
            }

            await db.CommitAsync();
        }
示例#4
0
 public CelebsController(CelebsDB db)
 {
     this.db = db ?? throw new ArgumentNullException(nameof(db));
 }