コード例 #1
0
        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));
        }
コード例 #2
0
        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"));
        }