Esempio n. 1
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            var viewModel = this.DataContext as BuildListViewModel;

            // If viewModel is not null it means that the user navigated back to this page and the viewModel is already loaded.
            if (viewModel == null)
            {
                string selectedIndex = string.Empty;
                string projectName = string.Empty;

                if (this.NavigationContext.QueryString.TryGetValue("projectName", out projectName))
                {
                    viewModel = new BuildListViewModel(string.Format(CultureInfo.InvariantCulture, "Projects('{0}')", projectName));
                }
                else
                {
                    viewModel = new BuildListViewModel();
                }

                if (this.State.ContainsKey("CurrentPageNumber"))
                {
                    viewModel.PageNumber = (int)this.State["CurrentPageNumber"];
                }

                if (this.State.ContainsKey("CurrentQuery"))
                {
                    viewModel.Query = (string)this.State["CurrentQuery"];
                }

                viewModel.LoadData();

                this.DataContext = viewModel;
            }
        }
Esempio n. 2
0
        public ActionResult BuildList(List <string> cpuSeries, List <string> gpuSeries, List <string> ramType, List <string> storageType,
                                      int?page, string seriesCpuString = "", string seriesGpuString = "",
                                      string storageTypeString         = "", string ramTypeString   = "")
        {
            var          builds      = context.Build.ToList();
            List <Build> buildsFound = new List <Build>();
            List <Build> buildsOut   = new List <Build>();
            int          filtred     = 0;

            // OCENY
            int amountOfBuilds = builds.Count() + 1;

            double[] sum     = new double[amountOfBuilds];
            double[] average = new double[amountOfBuilds];
            double[] count   = new double[amountOfBuilds];

            for (int i = 0; i < amountOfBuilds; i++)
            {
                sum[i]   = 0.0d;
                count[i] = 0.0d;
            }

            foreach (Build b in builds)
            {
                foreach (Rate r in b.Rates)
                {
                    sum[r.BuildId] += r.Grade;
                    count[r.BuildId]++;
                }
            }

            for (int i = 0; i < amountOfBuilds; i++)
            {
                if (count[i] != 0d)
                {
                    average[i] = sum[i] / count[i] * 1.0d;
                }
            }
            if (Request.IsAuthenticated)
            {
                var userName = User.Identity.GetUserName();
                if (userName != "admin")
                {
                    builds = context.Build.Where(a => a.Hidden == false).ToList();
                }
            }
            else
            {
                builds = context.Build.Where(a => a.Hidden == false).ToList();
            }

            // CPU
            if (cpuSeries != null)
            {
                foreach (var serie in cpuSeries)
                {
                    buildsOut = builds.Where(a => a.Cpu.Product.Series.Name == serie).ToList();
                    foreach (var buildsout in buildsOut)
                    {
                        buildsFound.Add(buildsout);
                    }
                }
                filtred = 1;
            }
            else if (seriesCpuString != "")
            {
                string[]      cpuSeriesT    = seriesCpuString.Split('_');
                List <string> tempCpuSeries = new List <string>();
                foreach (var serie in cpuSeriesT)
                {
                    buildsOut = builds.Where(a => a.Cpu.Product.Series.Name == serie).ToList();
                    if (serie != "")
                    {
                        tempCpuSeries.Add(serie);
                    }
                    foreach (var buildsout in buildsOut)
                    {
                        buildsFound.Add(buildsout);
                    }
                }
                cpuSeries = tempCpuSeries;
                filtred   = 1;
            }

            if (filtred == 1)
            {
                builds.Clear();
                foreach (var add in buildsFound)
                {
                    builds.Add(add);
                }
                buildsFound.Clear();
                filtred = 0;
            }

            // GPU
            if (builds.Count() > 0)
            {
                if (gpuSeries != null)
                {
                    foreach (var serie in gpuSeries)
                    {
                        buildsOut = builds.Where(a => a.Gpu.Product.Series.Name == serie).ToList();
                        foreach (var buildsout in buildsOut)
                        {
                            buildsFound.Add(buildsout);
                        }
                    }
                    filtred = 1;
                }
                else if (seriesGpuString != "")
                {
                    string[]      gpuSeriesT    = seriesGpuString.Split('_');
                    List <string> tempGpuSeries = new List <string>();
                    foreach (var serie in gpuSeriesT)
                    {
                        buildsOut = builds.Where(a => a.Gpu.Product.Series.Name == serie).ToList();
                        if (serie != "")
                        {
                            tempGpuSeries.Add(serie);
                        }
                        foreach (var buildsout in buildsOut)
                        {
                            buildsFound.Add(buildsout);
                        }
                    }
                    gpuSeries = tempGpuSeries;
                    filtred   = 1;
                }
            }

            if (filtred == 1)
            {
                builds.Clear();
                foreach (var add in buildsFound)
                {
                    builds.Add(add);
                }
                buildsFound.Clear();
                filtred = 0;
            }

            // RAM
            if (builds.Count() > 0)
            {
                if (ramType != null)
                {
                    foreach (var ram in ramType)
                    {
                        buildsOut = builds.Where(a => a.Ram.RamType.Name == ram).ToList();
                        foreach (var buildsout in buildsOut)
                        {
                            buildsFound.Add(buildsout);
                        }
                    }
                    filtred = 1;
                }
                else if (ramTypeString != "")
                {
                    string[]      ramTypeT    = ramTypeString.Split('_');
                    List <string> tempRamType = new List <string>();
                    foreach (var ram in ramTypeT)
                    {
                        buildsOut = builds.Where(a => a.Ram.RamType.Name == ram).ToList();
                        if (ram != "")
                        {
                            tempRamType.Add(ram);
                        }
                        foreach (var buildsout in buildsOut)
                        {
                            buildsFound.Add(buildsout);
                        }
                    }
                    ramType = tempRamType;
                    filtred = 1;
                }
            }

            if (filtred == 1)
            {
                builds.Clear();
                foreach (var add in buildsFound)
                {
                    builds.Add(add);
                }
                buildsFound.Clear();
                filtred = 0;
            }

            // STORAGE
            if (builds.Count() > 0)
            {
                if (storageType != null)
                {
                    foreach (var type in storageType)
                    {
                        buildsOut = builds.Where(a => a.Storage.Type == type).ToList();
                        foreach (var buildsout in buildsOut)
                        {
                            buildsFound.Add(buildsout);
                        }
                    }
                    filtred = 1;
                }
                else if (storageTypeString != "")
                {
                    string[]      storageTypeT    = storageTypeString.Split('_');
                    List <string> tempStorageType = new List <string>();
                    foreach (var type in storageTypeT)
                    {
                        buildsOut = builds.Where(a => a.Storage.Type == type).ToList();
                        if (type != "")
                        {
                            tempStorageType.Add(type);
                        }
                        foreach (var buildsout in buildsOut)
                        {
                            buildsFound.Add(buildsout);
                        }
                    }
                    storageType = tempStorageType;
                    filtred     = 1;
                }
            }

            if (filtred == 1)
            {
                builds.Clear();
                foreach (var add in buildsFound)
                {
                    builds.Add(add);
                }
                buildsFound.Clear();
                filtred = 0;
            }


            int pageSize   = 5;
            int pageNumber = (page ?? 1);

            List <string> emptyList = new List <string> {
                ""
            };

            if (cpuSeries == null)
            {
                cpuSeries = emptyList;
            }
            if (gpuSeries == null)
            {
                gpuSeries = emptyList;
            }
            if (ramType == null)
            {
                ramType = emptyList;
            }
            if (storageType == null)
            {
                storageType = emptyList;
            }

            var buildListViewModel = new BuildListViewModel()
            {
                PagedList = builds.ToPagedList(pageNumber, pageSize),
                Average   = average,
                Count     = count,

                BuildFormCheckedViewModel = new BuildFormCheckedViewModel()
                {
                    CpuSeriesChecked        = cpuSeries,
                    GpuSeriesChecked        = gpuSeries,
                    RamTypeChecked          = ramType,
                    StorageTypeChecked      = storageType,
                    CpuManufacturersChecked = emptyList
                }
            };

            return(View(buildListViewModel));
        }