/// <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); }
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); } }
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))); } }