// 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); }
// 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. "); } }
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(); }
public CelebsController(CelebsDB db) { this.db = db ?? throw new ArgumentNullException(nameof(db)); }