public async Task <ActionResult> CalculateRouteAsync(AlgorithmStarterVM asvm)
        {
            asvm.DaysPeriod = asvm.DaysPeriod.Where(d => d.Start.HasValue).ToList();
            // Write back to settings
            if (System.IO.File.Exists(ConfigPath))
            {
                System.IO.File.Delete(ConfigPath);
            }
            System.IO.File.WriteAllText(ConfigPath, JsonConvert.SerializeObject(asvm));

            asvm.Days   = asvm.DaysPeriod.Select(p => (p.Start.Value, p.End.Value)).ToList();
            asvm.Beta0 -= asvm.TimePerChild;
            var result = await Client.PostAsJsonAsync("api/algorithm/StartRouteCalculation", asvm);

            return(RedirectToAction("Results"));
        }
        public ActionResult Index()
        {
            var model         = new AlgorithmStarterVM();
            var visitResponse = Client.GetAsync("api/visit").Result;
            var visits        = JArray.Parse(visitResponse.Content.ReadAsStringAsync().Result).ToObject <VisitVM[]>();
            var santaResponse = Client.GetAsync("api/santa").Result;
            var santas        = JArray.Parse(santaResponse.Content.ReadAsStringAsync().Result).ToObject <SantaVM[]>();

            if (System.IO.File.Exists(ConfigPath))
            {
                model = JsonConvert.DeserializeObject <AlgorithmStarterVM>(System.IO.File.ReadAllText(ConfigPath));
            }

            model.StarterIds = visits.Select(v => new SelectListItem
            {
                Value = v.Id.ToString(),
                Text  = v.ToString()
            });
            model.AlgorithmTypes = new[] {
                AlgorithmType.Hybrid,
                AlgorithmType.LocalSolver,
                AlgorithmType.GeneticAlgorithm,
                AlgorithmType.GoogleRouting,
                AlgorithmType.ILP,
            }.Select(t => new SelectListItem
            {
                Value = t.ToString(),
                Text  = t.ToString()
            });


            var possibleYears = visits.Select(v => v.Year).Distinct();

            model.PossibleYears = possibleYears;
            return(View(model));
        }