public ActionResult FinishLearning(string IDList) { UserDatasController UDController = new UserDatasController(); Kanji_PracticeController KPController = new Kanji_PracticeController(); string userName = User.Identity.GetUserName(); var userID = db.UserData.Where(ud => ud.UserName == userName). Select(ud => ud.ID).First(); UserData userData = db.UserData.Find(userID); if (userData.KanjiList == "") { userData.KanjiList += IDList; } else { userData.KanjiList += "," + IDList; } UDController.Edit(userData); List <string> IDtoList = IDList.Split(',').ToList(); foreach (var kanjiId in IDtoList) { Kanji_Practice kpData = new Kanji_Practice { UserName = userName, KanjiID = Int32.Parse(kanjiId), LastPracticed = DateTime.Now, RepeatInterval = 1 }; KPController.Create(kpData); } return(RedirectToAction("Index")); }
public ActionResult FinishPracticing(string IDString, string goodString, string okayString, string badString) { List <int> IDList = IDString.Split(',').Select(id => Int32.Parse(id)).ToList(); List <int> GoodList = new List <int>(); List <int> OkayList = new List <int>(); List <int> BadList = new List <int>(); if (goodString != "_Good" && goodString.Contains(',')) { GoodList = goodString.Split(',').Select(id => Int32.Parse(id)).ToList(); } else if (goodString != "_Good") { GoodList.Add(Int32.Parse(goodString)); } if (okayString != "_Okay" && okayString.Contains(',')) { OkayList = okayString.Split(',').Select(id => Int32.Parse(id)).ToList(); } else if (okayString != "_Okay") { OkayList.Add(Int32.Parse(okayString)); } if (badString != "_Bad" && badString.Contains(',')) { BadList = badString.Split(',').Select(id => Int32.Parse(id)).ToList(); } else if (badString != "_Bad") { BadList.Add(Int32.Parse(badString)); } Kanji_PracticeController KPController = new Kanji_PracticeController(); List <Kanji_Practice> kanji_PracticeList = db.Kanji_Practice.Where(kp => IDList.Contains(kp.ID)).ToList(); foreach (var kanjiPractice in kanji_PracticeList) { if (kanjiPractice.RepeatInterval <= db.RepeatInterval.Count() + 1) { if (GoodList.Contains(kanjiPractice.KanjiID)) { kanjiPractice.RepeatInterval += 1; double interval = db.RepeatInterval.Where(ri => ri.ID == kanjiPractice.RepeatInterval).Select(ri => ri.Interval).First(); kanjiPractice.LastPracticed = DateTime.Now.AddDays(interval); //TODO fix multiple instances of EntityChanger db.SaveChanges(); //VPController.Edit(vocabularyPractice); } if (OkayList.Contains(kanjiPractice.KanjiID)) { double interval = db.RepeatInterval.Where(ri => ri.ID == kanjiPractice.RepeatInterval).Select(ri => ri.Interval).First(); kanjiPractice.LastPracticed = DateTime.Now.AddDays(interval); //TODO fix multiple instances of EntityChanger db.SaveChanges(); //VPController.Edit(vocabularyPractice); } if (BadList.Contains(kanjiPractice.KanjiID)) { if (kanjiPractice.RepeatInterval > 1) { kanjiPractice.RepeatInterval -= 1; } double interval = db.RepeatInterval.Where(ri => ri.ID == kanjiPractice.RepeatInterval).Select(ri => ri.Interval).First(); kanjiPractice.LastPracticed = DateTime.Now.AddDays(interval); //TODO fix multiple instances of EntityChanger db.SaveChanges(); //VPController.Edit(vocabularyPractice); } } } return(RedirectToAction("Index")); }