예제 #1
0
        /// <summary>
        /// Gets view models of all the PI schematics
        /// </summary>
        public IEnumerable <SchematicVM> GetSchematicVMs(IEnumerable <ItemVM> items)
        {
            List <SchematicTypeMap> maps         = _context.SchematicTypeMaps.ToList();
            List <Schematic>        schematics   = _context.Schematics.ToList();
            List <SchematicVM>      schematicVMs = new List <SchematicVM>();

            foreach (var schematic in schematics)
            {
                SchematicVM schematicVM = new SchematicVM(schematic);
                var         inputItems  = items.Where(i => maps.Any(m => m.SchematicID == schematic.ID && m.IsInput && i.ID == m.TypeID)).ToList();
                Material    outputItem  = new Material(items.FirstOrDefault(i => maps.Any(m => m.SchematicID == schematic.ID && !m.IsInput && i.ID == m.TypeID)));
                outputItem.Quantity = maps.First(m => m.SchematicID == schematic.ID && !m.IsInput && m.TypeID == outputItem.ID).Quantity;

                schematicVM.Output = outputItem;
                foreach (var input in inputItems)
                {
                    var inputMat = new Material(input);
                    inputMat.Quantity = maps.First(m => m.SchematicID == schematic.ID && m.IsInput && m.TypeID == inputMat.ID).Quantity;
                    schematicVM.Inputs.Add(inputMat);
                }

                schematicVMs.Add(schematicVM);
            }

            return(schematicVMs);
        }
예제 #2
0
        public List <SchematicVM> GetSchematics()
        {
            using (Repository repo = new Repository(new XolarDatabase()))
            {
                List <SchematicVM> result     = new List <SchematicVM>();
                List <Schematic>   schematics = repo.GetSchematics();
                foreach (Schematic sch in schematics)
                {
                    SchematicVM vm = new SchematicVM();
                    vm.id          = sch.Id;
                    vm.name        = sch.Name;
                    vm.imgurl      = sch.Picture.Source;
                    vm.level       = sch.Level;
                    vm.stars       = sch.Stars;
                    vm.description = sch.Description;
                    vm.stat        = new List <stat>();

                    List <TraitImpact> impacts = repo.GetTraitImpacts(sch.Id);
                    foreach (TraitImpact ti in impacts)
                    {
                        stat s = new stat();
                        s.name  = ti.Trait.Description;
                        s.value = ti.Impact;
                        vm.stat.Add(s);
                    }

                    result.Add(vm);
                }
                return(result);
            }
        }
예제 #3
0
        public SchematicVM GetTraits(int id)
        {
            using (Repository repo = new Repository(new XolarDatabase()))
            {
                List <TraitImpact> impacts = repo.GetTraitImpacts(id);

                SchematicVM result = new SchematicVM();
                result.id          = impacts[0].SchematicId;
                result.name        = impacts[0].Schematic.Name;
                result.level       = impacts[0].Schematic.Level;
                result.stars       = impacts[0].Schematic.Stars;
                result.description = impacts[0].Schematic.Description;
                result.stat        = new List <stat>();

                foreach (TraitImpact ti in impacts)
                {
                    stat s = new stat();
                    s.id    = ti.Id;
                    s.name  = ti.Trait.Description;
                    s.value = ti.Impact;
                    result.stat.Add(s);
                }

                return(result);
            }
        }
        public ActionResult LoadSchematicList([DataSourceRequest] DataSourceRequest request, int id)
        {
            using (Repository repo = new Repository(new XolarDatabase()))
            {
                List <SchematicVM> result = new List <SchematicVM>();
                List <Schematic>   schematics;
                if (id > 0)
                {
                    schematics = repo.GetSchematics(id);
                }
                else
                {
                    schematics = repo.GetSchematics();
                }
                foreach (Schematic sch in schematics)
                {
                    SchematicVM vm = new SchematicVM();
                    vm.id          = sch.Id;
                    vm.name        = sch.Name;
                    vm.imgurl      = sch.Picture.Source;
                    vm.level       = sch.Level;
                    vm.stars       = sch.Stars;
                    vm.description = sch.Description;
                    vm.stat        = new List <stat>();

                    List <TraitImpact> impacts = repo.GetTraitImpacts(sch.Id);
                    foreach (TraitImpact ti in impacts)
                    {
                        stat s = new stat();
                        s.name  = ti.Trait.Description;
                        s.value = ti.Impact;
                        vm.stat.Add(s);
                    }

                    result.Add(vm);
                }
                return(Json(result.ToDataSourceResult(request)));
            }
        }