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 IActionResult SendPcPart(PcBuildIndexViewModel viewModel) { var parts = HttpContext.Session.GetString("Parts"); var _parts = JsonConvert.DeserializeObject <List <PcPart> >(parts); var pcPart = _parts.Find(PcPart => PcPart.Id == viewModel.SelectedPcPartId); HttpContext.Session.SetString(pcPart._Type.ToString(), JsonConvert.SerializeObject(pcPart)); var build = GetBuild(); if (build != null) { build = _pcBuildLogic.AddBuild(build, pcPart); } AddBuild(build); return(RedirectToAction("Index")); }