Esempio n. 1
0
        public ActionResult Create([Bind(Include = "GroupId,Name,Difficult,WordsCount")] Group group, HttpPostedFileBase file)
        {
            if (ModelState.IsValid)
            {
                if (file != null && file.ContentLength > 0)
                {
                    MemoryStream target = new MemoryStream();
                    file.InputStream.CopyTo(target);
                    group.Image = target.ToArray();
                }
                var identity = User.Identity.GetUserId();
                if (db.User.Where(x => x.IdentityId == identity).Select(x => x.UserId).Count() > 0)
                {
                    group.OwnerId = db.User.Where(x => x.IdentityId == identity).Select(x => x.UserId).First();
                }
                else
                {
                    group.OwnerId = 1;
                }

                db.Group.Add(group);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.OwnerId = new SelectList(db.User, "UserId", "UserId", group.OwnerId);
            return(View(group));
        }
        public ActionResult Create([Bind(Include = "Id,Text,Translate,GroupId,AuthorId")] Grammar grammar, HttpPostedFileBase file)
        {
            if (ModelState.IsValid)
            {
                byte[] bytes = null;
                if (file != null && file.ContentLength > 0)
                {
                    using (var binaryReader = new BinaryReader(file.InputStream))
                    {
                        bytes = binaryReader.ReadBytes(file.ContentLength);
                    }
                }
                if (bytes == null)
                {
                    grammar.Voice = UploadVoice(grammar.Text);
                }
                else
                {
                    grammar.Voice = bytes;
                }
                db.Grammar.Add(grammar);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.GroupId  = new SelectList(db.GrammarGroup.Where(x => x.ParentId != 0), "GroupId", "Name", grammar.GroupId);
            ViewBag.AuthorId = new SelectList(db.User, "UserId", "UserId", grammar.AuthorId);
            return(View(grammar));
        }
Esempio n. 3
0
        private void SaveHistory(int time, DateTime startTime, double percent, TestHistory history)
        {
            var minutes = (DateTime.Now - startTime).TotalMinutes;

            if (minutes < time && history.SuccessPercent >= percent)
            {
                db.TestHistory.Add(history);
                db.SaveChanges();
            }
        }
        public ActionResult Create([Bind(Include = "AnswerId,QuestionId,AnswerText,Rightness")] Answer answer)
        {
            if (ModelState.IsValid)
            {
                db.Answer.Add(answer);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.QuestionId = new SelectList(db.Question, "QuestionId", "QuestText", answer.QuestionId);
            return(View(answer));
        }
        public ActionResult Create([Bind(Include = "QuestionId,TestId,QuestText")] Question question)
        {
            if (ModelState.IsValid)
            {
                db.Question.Add(question);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.TestId = new SelectList(db.Test, "TestId", "Name", question.TestId);
            return(View(question));
        }
Esempio n. 6
0
 public ActionResult Create([Bind(Include = "WordId,Word1,Translate,GroupId,PartOfSpeech,Transcription,Synonyms")] Word word)
 {
     ViewBag.Group = word.GroupId;
     if (ModelState.IsValid)
     {
         word = UploadVoice(word);
         var group = db.Group.Find(word.GroupId);
         group.WordsCount      = group.WordsCount + 1;
         db.Entry(group).State = EntityState.Modified;
         db.Word.Add(word);
         db.SaveChanges();
         return(RedirectToAction("Index", new { GroupId = word.GroupId }));
     }
     return(View(word));
 }
Esempio n. 7
0
        private void SaveUserLvl(string grpName, double percent)
        {
            string userIdentity = User.Identity.GetUserId();
            var    user         = (from u in db.User
                                   where u.IdentityId == userIdentity
                                   select u).First();
            string result = user.ObjLvlListening;

            if (percent >= 80)
            {
                Difficult userLvl = (Difficult)Enum.Parse(typeof(Difficult), user.ObjLvlListening.Replace('-', '_'));
                foreach (Difficult el in Enum.GetValues(typeof(Difficult)))
                {
                    string name  = el.ToString();
                    int    value = (int)el;
                    if (grpName == "Рівень " + name)
                    {
                        if (value > (int)userLvl)
                        {
                            result = name;
                        }
                    }
                }
            }
            result = result.Replace('_', '-');
            user.ObjLvlListening = result;
            db.SaveChanges();
        }
 public ActionResult Create([Bind(Include = "GroupId,Name,Difficult,ParentId")] GrammarGroup grammarGroup)
 {
     if (ModelState.IsValid)
     {
         ELTask task = new ELTask()
         {
             AuthorId = 1, Difficult = grammarGroup.Difficult, Group = "Grammar", GrammarGroup = grammarGroup, Name = grammarGroup.Name, Description = "Виконайте граматичну вправу для заданої групи"
         };
         db.ELTask.Add(task);
         db.GrammarGroup.Add(grammarGroup);
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.ParentId = new SelectList(db.GrammarGroup, "GroupId", "Name", grammarGroup.ParentId);
     return(View(grammarGroup));
 }
        public async Task <ActionResult> ConfirmEmail(string userId, string code)
        {
            if (userId == null || code == null)
            {
                return(View("Error"));
            }
            var result = await UserManager.ConfirmEmailAsync(userId, code);

            var db = new EnglishLearningEntities();

            Models.User user = new User();
            //TODO: try catch может помешать при отлавливании ошибок
            try
            {
                user.IdentityId      = userId;
                user.Level           = "Beginner";
                user.ObjectiveLevel  = "Beginner";
                user.LvlListening    = "Beginner";
                user.LvlReading      = "Beginner";
                user.LvlWriting      = "Beginner";
                user.ObjLvlListening = "Beginner";
                user.ObjLvlReading   = "Beginner";
                user.ObjLvlWriting   = "Beginner";
                user.Tested          = false;
                db.User.Add(user);
                db.SaveChanges();
            }
            catch
            {
                ApplicationUser userToDelete = UserManager.FindById(userId);
                var             login        = UserManager.DeleteAsync(userToDelete);
                return(View("Error"));
            }
            return(View(result.Succeeded ? "ConfirmEmail" : "Error"));
        }
 private void SaveUserLvl(TextTask text)
 {
     if (text.Name.StartsWith("Текст на рівень знань: "))
     {
         var       identity = User.Identity.GetUserId();
         var       user     = db.User.Where(x => x.IdentityId == identity).First();
         string    result   = user.ObjLvlReading;
         Difficult userLvl  = (Difficult)Enum.Parse(typeof(Difficult), user.ObjLvlReading.Replace('-', '_'));
         foreach (Difficult el in Enum.GetValues(typeof(Difficult)))
         {
             string name  = Enum.Format(typeof(Difficult), el, "G");
             int    value = (int)el;
             if (text.Name == "Текст на рівень знань: " + name)
             {
                 if (value > (int)userLvl)
                 {
                     result = name;
                 }
             }
         }
         result             = result.Replace('_', '-');
         user.ObjLvlReading = result;
         db.SaveChanges();
     }
 }
        public bool CheckResult(int id, string value)
        {
            List <Word> words  = Session["questions"] as List <Word>;
            bool        result = CompareResult(words[Convert.ToInt32(Session["Index"])], id, value, Session["Exercise"].ToString());

            if (result)
            {
                Session["AnswerCount"] = Convert.ToInt32(Session["AnswerCount"]) + 1;
                int          userId      = GetCurrentUserId();
                LearningWord learnedWord = (from lw in db.LearningWord
                                            where lw.WordId == id && lw.UserId == userId
                                            select lw).First();
                learnedWord.ExcerciseDate = DateTime.Now;
                if (learnedWord.LearnPercent >= 100 - 15)
                {
                    learnedWord.LearnPercent = 100;
                    learnedWord.LearnedDate  = DateTime.Now.Date;
                }
                else
                {
                    learnedWord.LearnPercent += 15;
                }
                db.SaveChanges();
            }
            return(result);
        }
Esempio n. 12
0
        public ActionResult Create([Bind(Include = "Id,VideoHtml,Genre,Type,Name,AuthorLink,UserId,Difficult,Order")] Video video)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var identity = User.Identity.GetUserId();
                    video.UserId = db.User.Where(x => x.IdentityId == identity).Select(x => x.UserId).First();
                }
                catch {
                    video.UserId = 1;
                }
                db.Video.Add(video);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(video));
        }
        public ActionResult Create([Bind(Include = "LectionId,Name,OwnerId,LectionType,Description,Editable,ExportOwner,Complexity,ComplexityOrder,LectionPath")] Lection lection, HttpPostedFileBase file)
        {
            if (ModelState.IsValid)
            {
                lection.LectionPath = FileOperations.SaveFile(file, Server, pathToSave, extensions);
                lection.LectionText = new byte[] { };
                ELTask task = new ELTask()
                {
                    AuthorId = 1, Difficult = lection.Complexity, Group = "Lection", Lection = lection, Name = lection.Name, Description = "Прочитайте зазначену лекцію"
                };
                db.ELTask.Add(task);
                db.Lection.Add(lection);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.OwnerId     = new SelectList(db.User, "UserId", "UserId", lection.OwnerId);
            ViewBag.LectionType = new SelectList(db.LectionGroup, "LectionGroupId", "Name", lection.LectionType);
            return(View(lection));
        }
        public ActionResult Create([Bind(Include = "TextId,Name,Text,Words,Difficult")] TextTask textTask)
        {
            if (ModelState.IsValid)
            {
                if (textTask.Words.EndsWith(";"))
                {
                    textTask.Words = textTask.Words.TrimEnd(';');
                }
                textTask.AuthorId = 1;
                ELTask task = new ELTask()
                {
                    AuthorId = 1, Difficult = textTask.Difficult, Group = "TextTask", TextTask = textTask, Name = textTask.Name, Description = "Прочитайте текст та вставте в проміжки слова"
                };
                db.ELTask.Add(task);
                db.TextTask.Add(textTask);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(textTask));
        }
 public string CreateTask(ELTask eLTask, string date, HttpPostedFileBase file)
 {
     if (ModelState.IsValid)
     {
         eLTask.DocumentPath = FileOperations.SaveFile(file, Server, pathToSave, extensions);
         eLTask.AuthorId     = GetUser(eLTask);
         if (string.IsNullOrEmpty(eLTask.Name))
         {
             eLTask.Name = "";
         }
         db.ELTask.Add(eLTask);
         UserELTask userTask = new UserELTask();
         DateTime   tempDate;
         try
         {
             tempDate = Convert.ToDateTime(date);
         }
         catch {
             tempDate = DateTime.Now.AddDays(7);
         }
         userTask.Date   = tempDate;
         userTask.ELTask = eLTask;
         var userIdentity = User.Identity.GetUserId();
         int userId       = db.User.Where(x => x.IdentityId == userIdentity).Select(x => x.UserId).First();
         userTask.UserId = userId;
         db.UserELTask.Add(userTask);
         db.SaveChanges();
     }
     return(eLTask.Name);
 }
        public ActionResult Create([Bind(Include = "TestId,Name,OwnerId,Difficult,TaskCount,TestType,Editable,ExportOwner,Time,Text")] Test test, HttpPostedFileBase file, HttpPostedFileBase testText)
        {
            if (ModelState.IsValid)
            {
                test.Voice = FileOperations.SaveFile(file, Server, pathToSave, extensions);
                ELTask task = new ELTask()
                {
                    AuthorId = 1, Difficult = test.Difficult, Group = "Test", Test = test, Name = test.Name, Description = "Пройдіть заданий тест"
                };
                if (testText != null && testText.ContentLength > 0)
                {
                    CreateTestFromFile(testText, test);
                }
                db.ELTask.Add(task);
                db.Test.Add(test);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.OwnerId  = new SelectList(db.User, "UserId", "UserId", test.OwnerId);
            ViewBag.TestType = new SelectList(db.TestGroup, "TestGroupId", "Name", test.TestType);
            return(View(test));
        }
        public int EditWord(int id, bool check)
        {
            LearningWord lw = new LearningWord();

            if (check)
            {
                int userId = GetUser().UserId;
                lw = (from learningWord in db.LearningWord
                      where learningWord.UserId == userId && learningWord.WordId == id
                      select learningWord).First();
                db.LearningWord.Remove(lw);
                db.SaveChanges();
            }
            else
            {
                lw.AddedDate    = DateTime.Now;
                lw.WordId       = id;
                lw.LearnPercent = 0;
                lw.UserId       = GetUser().UserId;
                db.LearningWord.Add(lw);
                db.SaveChanges();
            }
            return(lw.LearningWordId);
        }
        // GET: Profile
        public ActionResult Index()
        {
            var userId = User.Identity.GetUserId();
            var user   = (from u in db.User
                          where u.IdentityId == userId
                          select u).First();

            ViewBag.UserData = user;

            var tasks = from ut in db.UserELTask.Include("ELTask")
                        where ut.UserId == user.UserId && ut.Done == false && ut.ELTask.AuthorId == 1
                        select ut;
            DateTime now      = DateTime.Now;
            var      toDelete = tasks.Where(x => x.Date < now).ToList();
            var      count    = toDelete.Count();

            db.UserELTask.RemoveRange(toDelete);
            if ((tasks.Count() - count) < 7)
            {
                var bannedTasks = tasks.Select(x => x.ELTask.TaskId);

                string[] excludedRepeatGroups = new string[] { "Lection", "Test", "TextTask" };
                var      completedTasks       = from ut in db.UserELTask.Include("ELTask")
                                                where ut.UserId == user.UserId && ut.Done == true &&
                                                ut.ELTask.AuthorId == 1 && excludedRepeatGroups.Contains(ut.ELTask.Group)
                                                select ut.ELTask.TaskId;
                bannedTasks = bannedTasks.Concat(completedTasks);
                var        list = bannedTasks.ToList();
                UserELTask task;
                task = AddNewTaskByGroup("Lection", bannedTasks, user.UserId, user.Level);
                if (task != null)
                {
                    db.UserELTask.Add(task);
                }
                task = AddNewTaskByGroup("Test", bannedTasks, user.UserId, user.Level);
                if (task != null)
                {
                    db.UserELTask.Add(task);
                }
                task = AddNewTaskByGroup("TextTask", bannedTasks, user.UserId, user.LvlReading);
                if (task != null)
                {
                    db.UserELTask.Add(task);
                }
                task = AddNewTaskByGroup("Grammar", bannedTasks, user.UserId, user.LvlWriting);
                if (task != null)
                {
                    db.UserELTask.Add(task);
                }
                task = AddNewTaskByGroup("Other", bannedTasks, user.UserId, user.Level, true);
                if (task != null)
                {
                    db.UserELTask.Add(task);
                }
                task = AddNewTaskByGroup("Word", bannedTasks, user.UserId, user.Level);
                if (task != null)
                {
                    db.UserELTask.Add(task);
                }
            }
            db.SaveChanges();
            return(View(user));
        }