Example #1
0
        async Task makeAndCreateCompetency()
        {
            IDMachine ID     = new IDMachine();
            var       repoC  = _UOW.GetRepositoryAsync <Competency>();
            var       repoCD = _UOW.GetRepositoryAsync <CompetencyDisposition>();
            var       repoKS = _UOW.GetRepositoryAsync <KSPair>();
            IEnumerable <Competency> allCompsIE = await repoC.GetListAsync();

            List <Competency> allComps = allCompsIE.ToList();
            IEnumerable <CompetencyDisposition> allCDsIE = await repoCD.GetListAsync();

            List <CompetencyDisposition> allCDs  = allCDsIE.ToList();
            IEnumerable <KSPair>         allKSIE = await repoKS.GetListAsync();

            List <KSPair> allKS = allKSIE.ToList();
            List <CompetencyDisposition> forMyNewCompDISP = new List <CompetencyDisposition>();

            foreach (var item in DispositionList)
            {
                CompetencyDisposition newCD = new CompetencyDisposition()
                {
                    Disposition = item
                };
                forMyNewCompDISP.Add(newCD);
                allCDs.Add(newCD);
            }
            List <KSPair> forMyNewCompKS = new List <KSPair>();

            for (int i = 0; i < KnowledgeElementList.Count; i++)
            {
                KSPair newKS = new KSPair {
                    KnowledgeElement = KnowledgeElementList[i],
                    SkillLevel       = SkillLevelList[i]
                };
                forMyNewCompKS.Add(newKS);
                allKS.Add(newKS);
            }
            //  new KSPair{
            //             Id =1,
            //             KnowledgeElement = knowledgeElements[0],
            //             SkillLevel = skillLevels[5],
            //         },
            AtomicCompetency newComp = new AtomicCompetency {
                Id                    = ID.getNewID(allComps),
                Name                  = CompetencyName,
                Description           = CompetencyDescription,
                CompetencyDispostions = forMyNewCompDISP,
                KSPairs               = forMyNewCompKS
            };
            await repoC.AddAsync(newComp);

            int whytIsThisAnInt = _UOW.SaveChanges();
        }
Example #2
0
        public async Task <IActionResult> OnPostAsync()
        {
            _logger.LogInformation("IN ON POST ASYNC");

            _logger.LogInformation(knowledgeElementList.Count.ToString());
            _logger.LogInformation(SkillLevelList.Count.ToString());

            await HttpContext.Session.LoadAsync();

            var repok = _UOW.GetRepositoryAsync <KnowledgeElement>();
            var repos = _UOW.GetRepositoryAsync <SkillLevel>();
            var repod = _UOW.GetRepositoryAsync <Disposition>();
            var repoc = _UOW.GetRepositoryAsync <Competency>();

            _logger.LogInformation("ON POST REPO");

            IEnumerable <KnowledgeElement> ListofKE = await repok.GetListAsync();

            IEnumerable <SkillLevel> ListofKS = await repos.GetListAsync();

            IEnumerable <Disposition> ListofDisp = await repod.GetListAsync();

            _logger.LogInformation("ON POST Enumrable");

            List <KnowledgeElement> TempKnowledgeElementList = ListofKE.ToList();
            List <SkillLevel>       TempSkillLevelList       = ListofKS.ToList();
            List <Disposition>      TempDispositionList      = ListofDisp.ToList();

            _logger.LogInformation("ON POST TEMP LIST");



            foreach (Disposition i in TempDispositionList)
            {
                foreach (int x in DispositionIndicies)
                {
                    if (i.Id == x)
                    {
                        dispositionList.Add(i);
                    }
                }
            }

            for (int i = 0; i < KSPairsIndicies.Length; i++)
            {
                //Even indices are my knowledges
                if (i % 2 == 0)
                {
                    foreach (var item in TempKnowledgeElementList)
                    {
                        if (item.Id == KSPairsIndicies[i])
                        {
                            knowledgeElementList.Add(item);
                        }
                    }
                }
                else
                {//The Odd indices are skills
                    foreach (var item in TempSkillLevelList)
                    {
                        if (item.Id == KSPairsIndicies[i])
                        {
                            SkillLevelList.Add(item);
                        }
                    }
                }
            }
            _logger.LogInformation(SkillLevelList.Count.ToString());
            _logger.LogInformation(knowledgeElementList.Count.ToString());
            //    foreach(KnowledgeElement i in TempKnowledgeElementList)
            //    {
            //        foreach(int x in KSPairsIndicies)
            //        {
            //            if(i.Id==x&&x%2==0)
            //            {
            //                knowledgeElementList.Add(i);
            //            }
            //        }
            //    }

            //    foreach(SkillLevel i in TempSkillLevelList)
            //    {
            //        foreach(int x in KSPairsIndicies)
            //        {
            //            if(i.Id==x&&x%2==1)
            //            {
            //                SkillLevelList.Add(i);
            //            }
            //        }
            //    }
            List <CompetencyDisposition> CDList = new List <CompetencyDisposition>();

            foreach (var CDDisp in dispositionList)
            {
                CompetencyDisposition CDDispObject = new CompetencyDisposition()
                {
                    Disposition = CDDisp
                };
                CDList.Add(CDDispObject);
            }
            List <KSPair> KSList = new List <KSPair>();

            for (int i = 0; i < SkillLevelList.Count(); i++)
            {
                KSPair KSDispList = new KSPair()
                {
                    SkillLevel       = SkillLevelList[i],
                    KnowledgeElement = knowledgeElementList[i]
                };
                KSList.Add(KSDispList);
            }

            AtomicCompetency MyCompetency = new AtomicCompetency()
            {
                Name                  = CompetencyName,
                Description           = CompetencyDescription,
                CompetencyDispostions = CDList,
                KSPairs               = KSList
            };



            await repoc.AddAsync(MyCompetency);

            int q = _UOW.SaveChanges();

            //is my session variable null?
            if (string.IsNullOrEmpty(HttpContext.Session.GetString(SerializedCompetencyJSONKey)))
            {
                //if so, make a new one
                Cbvm = new CompetencyBuilderViewModel();
                //fill it with what i want
                Cbvm.CompetencyName        = CompetencyName;
                Cbvm.CompetencyDescription = CompetencyDescription;
                Cbvm.DispositionIndicies   = DispositionIndicies;
                //pack it up
                var serialized = JsonSerializer.Serialize(Cbvm);
                //send it out
                HttpContext.Session.SetString(SerializedCompetencyJSONKey, serialized);
            }
            else
            {
                //open my object
                var serializedin = HttpContext.Session.GetString(SerializedCompetencyJSONKey);
                Cbvm = JsonSerializer.Deserialize <CompetencyBuilderViewModel>(serializedin);
                //fill it with what i want
                Cbvm.CompetencyName = CompetencyName;
                _logger.LogInformation($"IN POST PAGE 2, Session out: {Cbvm.CompetencyName}");
                Cbvm.CompetencyDescription = CompetencyDescription;
                _logger.LogInformation($"IN POST PAGE 2, Session out: {Cbvm.CompetencyDescription}");
                Cbvm.DispositionIndicies = DispositionIndicies;
                _logger.LogInformation($"IN POST PAGE 2, Session out: {Cbvm.DispositionIndicies}");
                //pack it up
                var serializedout = JsonSerializer.Serialize(Cbvm);
                _logger.LogInformation($"IN POST PAGE 2, Serialized out: {serializedout.ToString()}");
                //send it out
                HttpContext.Session.SetString(SerializedCompetencyJSONKey, serializedout);
            }
            return(RedirectToPage("/Competencies/Index"));
        }