public IActionResult Index(bool newBuild = false) { if (newBuild) { HttpContext.Session.Clear(); } var build = new Build(); var selectedPcParts = new List <PcPart>(); if (HttpContext.Session.Keys.Any()) { if (HttpContext.Session.Keys.Contains("Build")) { build = GetBuild(); } selectedPcParts = GetSelectedPcParts(); } if (!build.Finished) { if (selectedPcParts.Count != 0) { _parts = _pcBuildLogic.GetPartsByType(build, selectedPcParts.Last()._Type).AsList(); } else { _parts = _pcBuildLogic.GetPartsByType(build, PcPart.PcType.Null).AsList(); } var partsObject = _parts; HttpContext.Session.SetString("Parts", JsonConvert.SerializeObject(partsObject)); } int progress = 0; if (selectedPcParts.Count() != 0) { progress = _pcBuildLogic.GetProgress(selectedPcParts.Last()._Type); } var model = new PcBuildIndexViewModel { PcParts = _parts, SelectedPcParts = selectedPcParts, BuildFinished = build.Finished, Progress = progress }; return(View(model)); }
public void TestGetProgress() { Assert.IsTrue(_logic.GetProgress(PcPart.PcType.Motherboard) == 29); }