public ActionResult Upload(HttpPostedFileBase postedFile, int Id) { if (postedFile != null) { string path = Server.MapPath("~/Uploads/"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } postedFile.SaveAs(path + Path.GetFileName(postedFile.FileName)); ViewBag.Message = "File uploaded successfully."; } var path1 = Server.MapPath("~/Uploads/") + postedFile.FileName; var lista = CSVToList(path1); Chapter ch = db.Chapters.Find(Id); foreach (var a in lista) { Console.WriteLine(a.Word1 + a.Word2); if (!ch.FlashCards.Exists(c => c.Word1 == a.Word1 && c.Word2 == a.Word1)) { ch.FlashCards.Add(a); } } db.Entry(ch).State = EntityState.Modified; db.SaveChanges(); System.IO.File.Delete(path1); return(RedirectToAction("Details" + "/" + Id)); }
public ActionResult AddChapter(string Id, string Name) { Course course = db.Courses.Find(Int32.Parse(Id)); int rc = course.Chapters.FindLastIndex(a => a.ID > 0); rc++; course.Chapters.Add(new Chapter { ID = rc, Name = Name, UserID = User.Identity.Name });; db.Entry(course).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Details" + "/" + Id)); }
public bool Add(Object o) { try { switch (o) { case User u: _fscontext.Add(o); _fscontext.SaveChanges(); return(true); case DeckOfCards d: d.Subject = _fscontext.Subjects.Single(x => x.SubjectID == d.Subject.SubjectID); d.User = _fscontext.Users.Single(x => x.Username == d.User.Username); List <Card> cards = d.Cards; _fscontext.Add(d); _fscontext.SaveChanges(); int lastDeckOfCardsID = _fscontext.DecksOfCards.Max(x => x.DeckOfCardsID); foreach (Card c in cards) { c.DeckOfCards.DeckOfCardsID = lastDeckOfCardsID; _fscontext.Add(c); } return(true); case Card c: c.DeckOfCards = _fscontext.DecksOfCards.Single(x => x.DeckOfCardsID == c.DeckOfCards.DeckOfCardsID); _fscontext.Add(c); _fscontext.SaveChanges(); return(true); case Like l: l.User = _fscontext.Users.Single(x => x.Username == l.User.Username); l.DeckOfCards = _fscontext.DecksOfCards.Single(x => x.DeckOfCardsID == l.DeckOfCards.DeckOfCardsID); Like lajkovao = _fscontext.Likes.Where(x => x.User.Username == l.User.Username && x.DeckOfCards.DeckOfCardsID == l.DeckOfCards.DeckOfCardsID).Cast <Like>().FirstOrDefault(); if (lajkovao != null) { return(false); } _fscontext.Add(l); _fscontext.SaveChanges(); return(true); case Comment c: c.User = _fscontext.Users.Single(x => x.Username == c.User.Username); c.DeckOfCards = _fscontext.DecksOfCards.Single(x => x.DeckOfCardsID == c.DeckOfCards.DeckOfCardsID); _fscontext.Add(c); _fscontext.SaveChanges(); return(true); case SubComment s: s.Comment = _fscontext.Comments.Single(x => x.CommentID == s.Comment.CommentID); s.SubCommentedBy = _fscontext.Users.Single(x => x.Username == s.SubCommentedBy.Username); _fscontext.Add(s); _fscontext.SaveChanges(); return(true); default: return(false); } } catch (Exception) { return(false); } }
public ActionResult Index(int?page, int?nr, int?know) { Random rnd = new Random(); var Chapter = db.Chapters.Find(nr); var flashCards = Chapter.FlashCards.ToList(); int pageSize = 1; int pageNumber = page.GetValueOrDefault(0); ViewData["nr"] = nr; pageNumber--; if (know == null) { String userid = User.Identity.GetUserName(); List <Profile> profile = db.Profiles.ToList(); Profile profil = profile.Find(x => x.UserName == userid); Test test = new Test(); db.Tests.Add(test); db.SaveChanges(); profil.Tests.Add(test); pageNumber = rnd.Next(flashCards.Count); db.Entry(profil).State = EntityState.Modified; db.SaveChanges(); } else if (know == 0) { String userid = User.Identity.GetUserName(); List <Profile> profile = db.Profiles.ToList(); Profile profil = profile.Find(x => x.UserName == userid); List <Test> tests = db.Tests.ToList(); var test = tests.OrderByDescending(a => a.ID).First(); int nrq = test.Questions.Count + 1; test.Questions.Add(new Question { ID = nrq, flashCard = flashCards[pageNumber], Score = 0 }); List <Answer> answers = db.Answers.Where(a => a.UserID == User.Identity.Name).ToList(); Answer answer = answers.Find(a => a.FlashCard.ID == flashCards[pageNumber].ID); if (answer == null) { if (db.Answers.Count() == 0) { Answer answer1 = new Answer { ID = 0, FlashCard = flashCards[pageNumber], UserID = User.Identity.Name, CorrectAnswers = 1 }; db.Answers.Add(answer1); } else { int a = db.Answers.OrderByDescending(b => b.ID).Select(b => b.ID).First(); Answer answer1 = new Answer { ID = a, FlashCard = flashCards[pageNumber], UserID = User.Identity.Name, CorrectAnswers = 1 }; db.Answers.Add(answer1); } } else { answer.CorrectAnswers = 0; db.Entry(answer).State = EntityState.Modified; } profil.Tests.Add(test); db.Entry(profil).State = EntityState.Modified; db.Entry(test).State = EntityState.Modified; db.SaveChanges(); List <int> ids = new List <int>(); foreach (var a in test.Questions.Where(b => b.Score == 1)) { ids.Add(flashCards.IndexOf(a.flashCard)); } int i = 0; do { i++; pageNumber = rnd.Next(flashCards.Count); }while (ids.Contains(pageNumber) && i < 100); } else if (know == 1) { String userid = User.Identity.GetUserName(); List <Profile> profile = db.Profiles.ToList(); Profile profil = profile.Find(x => x.UserName == userid); List <Test> tests = db.Tests.ToList(); var test = tests.OrderByDescending(a => a.ID).First(); int nrq = test.Questions.Count + 1; Console.WriteLine(flashCards[pageNumber].Word1 + " " + flashCards[pageNumber].Word2); Question question = new Question { ID = nrq, flashCard = flashCards[pageNumber], Score = 1 }; List <Answer> answers = db.Answers.Where(a => a.UserID == User.Identity.Name).ToList(); Answer answer = answers.Find(a => a.FlashCard.ID == flashCards[pageNumber].ID); if (answer == null) { if (db.Answers.Count() == 0) { Answer answer1 = new Answer { ID = 0, FlashCard = flashCards[pageNumber], UserID = User.Identity.Name, CorrectAnswers = 1 }; db.Answers.Add(answer1); } else { int a = db.Answers.OrderByDescending(b => b.ID).Select(b => b.ID).First(); Answer answer1 = new Answer { ID = a, FlashCard = flashCards[pageNumber], UserID = User.Identity.Name, CorrectAnswers = 1 }; db.Answers.Add(answer1); } } else { answer.CorrectAnswers = +1; db.Entry(answer).State = EntityState.Modified; } db.Questions.Add(question); test.Questions.Add(question); profil.Tests.Add(test); db.Entry(profil).State = EntityState.Modified; db.Entry(test).State = EntityState.Modified; db.SaveChanges(); List <int> ids = new List <int>(); foreach (var a in test.Questions.Where(b => b.Score == 1)) { ids.Add(flashCards.IndexOf(a.flashCard)); } int i = 0; do { i++; pageNumber = rnd.Next(flashCards.Count); }while (ids.Contains(pageNumber) && i < 100); } pageNumber++; if (know == null) { return(View(flashCards.ToPagedList(pageNumber, pageSize))); } else { String userid = User.Identity.GetUserName(); List <Profile> profile = db.Profiles.ToList(); Profile profil = profile.Find(x => x.UserName == userid); List <Test> tests = db.Tests.ToList(); var test = tests.OrderByDescending(a => a.ID).First(); if (test.Questions.Count >= 20) { return(RedirectToAction("Stats/" + test.ID)); } } return(View(flashCards.ToPagedList(pageNumber, pageSize))); }