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(); }
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")); }