Esempio n. 1
0
    public async Task Update(int year, int day)
    {
        var session     = GetSession();
        var baseAddress = new Uri("https://adventofcode.com/");

        var context = BrowsingContext.New(Configuration.Default
                                          .WithDefaultLoader()
                                          .WithCss()
                                          .WithDefaultCookies()
                                          );

        context.SetCookie(new Url(baseAddress.ToString()), "session=" + session);

        var calendar = await DownloadCalendar(context, baseAddress, year);

        var problem = await DownloadProblem(context, baseAddress, year, day);

        var dir = Dir(year, day);

        if (!Directory.Exists(dir))
        {
            Directory.CreateDirectory(dir);
        }

        var years = Assembly.GetEntryAssembly().GetTypes()
                    .Where(t => t.GetTypeInfo().IsClass&& typeof(Solver).IsAssignableFrom(t))
                    .Select(tsolver => SolverExtensions.Year(tsolver));

        UpdateProjectReadme(years.Min(), years.Max());
        UpdateReadmeForYear(calendar);
        UpdateSplashScreen(calendar);
        UpdateReadmeForDay(problem);
        UpdateInput(problem);
        UpdateRefout(problem);
        UpdateSolutionTemplate(problem);
    }