예제 #1
0
        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);
        }
예제 #2
0
        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;
        }