public async Task <ActionResult <FeatTree> > GetFeatTree(string id) { var data = new FeatTree(); FeatLogic fl = new FeatLogic(); data = fl.GetFeatRequirements(id); //DndFeat featdb = _context.DndFeat.Where(x => x.Id == id).FirstOrDefault(); //if (featdb == null) //{ // Console.WriteLine(string.Format("log - get spell class - id = {0}", id)); // return NotFound(); //}; //data.RootFeatid = featdb.Id; //data.RootFeatName = featdb.Name; //featdb = null; //var queryRequired = _context.DndFeatrequiresfeat.Where(frf => frf.SourceFeatId == id) // .Join( // _context.DndFeat, // frf => frf.RequiredFeatId, // f => f.Id, // (frf, f) => new BasicFeat // { // id = f.Id, // name = f.Name // }) // //.OrderBy(g => g.ClassId) // .ToList(); //var queryRequireBy = _context.DndFeatrequiresfeat.Where(frf => frf.RequiredFeatId == id) //.Join( // _context.DndFeat, // frf => frf.SourceFeatId, // f => f.Id, // (frf, f) => new BasicFeat // { // id = f.Id, // name = f.Name // }) ////.OrderBy(g => g.ClassId) //.ToList(); //data.requiredFeats = queryRequired; //data.FeatsRequiredBy = queryRequireBy; //queryRequired = null; //queryRequireBy = null; //Console.WriteLine(string.Format("log - get spell class - id = {0}", id)); return(data); }
public FeatTree GetFeatRequirements(string id) { FeatQuery fq = new FeatQuery(); List<DndFeat> feat = GetFeat(id); List<DndFeatrequiresfeat> queryRequired = fq.Query_dndFeatRequiredFeat(feat.First().Id); List<DndFeatrequiresfeat> queryRequiredBy = fq.Query_dndFeatRequiredBy(feat.First().Id); FeatTree data = new FeatTree(); data.RootFeatid = feat.First().Id; data.RootFeatName = feat.First().Name; foreach (var item in queryRequired) { var thisfeat = GetFeat(item.Id.ToString()); foreach (var each in thisfeat) { var bf = new BasicFeat { id = each.Id, name = each.Name }; data.requiredFeats.Add(bf); } } foreach (var item in queryRequiredBy) { var thisfeat = GetFeat(item.Id.ToString()); foreach (var each in thisfeat) { var bf = new BasicFeat { id = each.Id, name = each.Name }; data.FeatsRequiredBy.Add(bf); } } return data; }