Exemplo n.º 1
0
 public ActionResult ShowArea()
 {
     //string userId1 = User.Identity.GetUserId();
     //PersonalArea area1 = db.PersonalAreas.Where(a => a.AspNetUserId.CompareTo(userId1) == 0).First();
     //db.PersonalAreas.Remove(area1);
     //db.SaveChanges();
     //return RedirectToAction("Index");
     if (User.Identity.IsAuthenticated)
     {
         ViewBag.teacher = false;
         if (User.IsInRole("teacher"))
         {
             PersonalArea areaTeacher = new PersonalArea()
             {
                 AspNetUserId = User.Identity.GetUserId(), Person = User.Identity.Name
             };
             ViewBag.teacher = true;
             return(View(areaTeacher));
         }
         string             userId       = User.Identity.GetUserId();
         PersonalArea       area         = db.PersonalAreas.Where(a => a.AspNetUserId.CompareTo(userId) == 0).First();
         CoursesInAreaModel coursesModel = MakeCoursesModel(area);
         ViewBag.coursesModel = coursesModel;
         List <KeyValuePair <int, int> > redGreen = new List <KeyValuePair <int, int> >();
         foreach (var course in area.Courses)
         {
             StudyViewModel studyModel = GetNextParagraph(area, course.Id);
             redGreen.Add(new KeyValuePair <int, int>(course.Id, studyModel.Paragraph.NumInCourse));
         }
         ViewBag.RedGreen = redGreen;
         return(View(area));
     }
     return(RedirectToAction("Index"));
 }
Exemplo n.º 2
0
        static public bool deleteAreaTable(PersonalArea product)
        {
            SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["dboBreadUnits"].ConnectionString);
            string        query      = "DELETE FROM [dbo].[PersonalArea] WHERE ID = @ID";

            SqlCommand cmd = new SqlCommand(query, connection);

            cmd.CommandTimeout = 0;
            cmd.CommandType    = CommandType.Text;
            cmd.Parameters.Add("@ID", SqlDbType.Int).Value = product.ID;

            try
            {
                connection.Open();
                cmd.ExecuteNonQuery();
                return(true);
            }
            catch (Exception e)
            {
                exception = e.Message;
                return(false);
            }
            finally
            {
                if (connection.State == ConnectionState.Open)
                {
                    connection.Close();
                    SqlConnection.ClearPool(connection);
                    connection.Dispose();
                }
            }
        }
Exemplo n.º 3
0
        public ActionResult DeleteCourseFromPersonalArea(int courseId)
        {
            string       userId = User.Identity.GetUserId();
            PersonalArea area   = db.PersonalAreas.Where(p => p.AspNetUserId.CompareTo(userId) == 0).First();
            // area.Courses.Remove(db.Courses.Find(courseId));
            //
            CourseStructure corStr = area.CourseStructures.Where(c => c.IdCourse == courseId).First();

            area.CourseStructures.Remove(area.CourseStructures.Where(c => c.IdCourse == courseId).First());
            db.CourseStructures.Remove(corStr);
            area.Courses.Remove(db.Courses.Find(courseId));
            db.Entry(area).State = System.Data.Entity.EntityState.Modified;
            db.SaveChanges();

            CoursesInAreaModel coursesModel = MakeCoursesModel(area);

            ViewBag.coursesModel = coursesModel;
            List <KeyValuePair <int, int> > redGreen = new List <KeyValuePair <int, int> >();

            foreach (var course in area.Courses)
            {
                StudyViewModel studyModel = GetNextParagraph(area, course.Id);
                redGreen.Add(new KeyValuePair <int, int>(course.Id, studyModel.Paragraph.NumInCourse));
            }
            ViewBag.RedGreen = redGreen;
            return(View(area));
        }
Exemplo n.º 4
0
        public ActionResult StudyOnCourse(int courseId)
        {
            string         userId = User.Identity.GetUserId();
            PersonalArea   area   = db.PersonalAreas.Where(p => p.AspNetUserId.CompareTo(userId) == 0).First();
            StudyViewModel model  = GetNextParagraph(area, courseId);

            return(View(model));
        }
Exemplo n.º 5
0
 public ActionResult AddCourseToArea(int courseId)
 {
     if (User.Identity.IsAuthenticated)
     {
         ViewBag.teacher = false;
         if (User.IsInRole("teacher"))
         {
             PersonalArea areaTeacher = new PersonalArea()
             {
                 AspNetUserId = User.Identity.GetUserId(), Person = User.Identity.Name
             };
             ViewBag.teacher = true;
             return(View(areaTeacher));
         }
         string       userId       = User.Identity.GetUserId();
         PersonalArea area         = db.PersonalAreas.Where(a => a.AspNetUserId.CompareTo(userId) == 0).First();
         bool         alreadyStudy = false;
         foreach (var course in area.Courses)
         {
             if (course.Id == courseId)
             {
                 alreadyStudy = true;
             }
         }
         if (alreadyStudy)
         {
             CoursesInAreaModel coursesModel1 = MakeCoursesModel(area);
             ViewBag.coursesModel = coursesModel1;
             List <KeyValuePair <int, int> > redGreen1 = new List <KeyValuePair <int, int> >();
             foreach (var course in area.Courses)
             {
                 StudyViewModel studyModel = GetNextParagraph(area, course.Id);
                 redGreen1.Add(new KeyValuePair <int, int>(course.Id, studyModel.Paragraph.NumInCourse));
             }
             ViewBag.RedGreen = redGreen1;
             return(View(area));
         }
         CourseStructure courseStr = CreateCourseStructure(courseId);
         area.CourseStructures.Add(courseStr);
         area.Courses.Add(db.Courses.Find(courseId));
         db.SaveChanges();
         CoursesInAreaModel coursesModel = MakeCoursesModel(area);
         ViewBag.coursesModel = coursesModel;
         List <KeyValuePair <int, int> > redGreen = new List <KeyValuePair <int, int> >();
         foreach (var course in area.Courses)
         {
             StudyViewModel studyModel = GetNextParagraph(area, course.Id);
             redGreen.Add(new KeyValuePair <int, int>(course.Id, studyModel.Paragraph.NumInCourse));
         }
         ViewBag.RedGreen = redGreen;
         return(View(area));
     }
     else
     {
         return(RedirectToAction("Login", "Account"));
     }
 }
Exemplo n.º 6
0
        public ActionResult TableDelete(int id)
        {
            var    user   = UserManager.FindById(User.Identity.GetUserId());
            string userID = user.Login;

            PersonalArea persarea = Read.getAreaTable().Where(x => x.UserID == userID).ToList().First(y => y.ID == id);

            @ViewBag.ProdName = persarea.Product;
            return(PartialView());
        }
Exemplo n.º 7
0
        static public bool updateAreaTable(PersonalArea product)
        {
            SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["dboBreadUnits"].ConnectionString);
            string        query      = "UPDATE [dbo].[PersonalArea] " +
                                       "SET " +
                                       "[UserID] = @UserID," +
                                       "[Product] = @Product," +
                                       "[ProductGroup] = @ProductGroup," +
                                       "[Carbohydrates] = @Carbohydrates," +
                                       "[GrammInUnit] = @GrammInUnit," +
                                       "[BreadUnits] = @BreadUnits, " +
                                       "[DateCreate] = @DateCreate," +
                                       "[RecipeID] = @RecipeID " +
                                       "WHERE ID = @ID";

            SqlCommand cmd = new SqlCommand(query, connection);

            cmd.CommandTimeout = 0;
            cmd.CommandType    = CommandType.Text;

            cmd.Parameters.Add("@ID", SqlDbType.Int).Value                = product.ID;
            cmd.Parameters.Add("@UserID", SqlDbType.NVarChar).Value       = product.UserID;
            cmd.Parameters.Add("@Product", SqlDbType.NVarChar).Value      = product.Product;
            cmd.Parameters.Add("@ProductGroup", SqlDbType.NVarChar).Value = product.ProductGroupName;
            cmd.Parameters.Add("@Carbohydrates", SqlDbType.Float).Value   = product.Carbohydrates;
            cmd.Parameters.Add("@GrammInUnit", SqlDbType.Int).Value       = product.GrammInUnit;
            cmd.Parameters.Add("@BreadUnits", SqlDbType.Float).Value      = product.BreadUnits;
            cmd.Parameters.Add("@DateCreate", SqlDbType.DateTime).Value   = product.DateCreate;
            cmd.Parameters.Add("@RecipeID", SqlDbType.Int).Value          = product.RecipeID;

            try
            {
                connection.Open();
                cmd.ExecuteNonQuery();
                return(true);
            }
            catch (Exception e)
            {
                exception = e.Message;
                return(false);
            }
            finally
            {
                if (connection.State == ConnectionState.Open)
                {
                    connection.Close();
                    SqlConnection.ClearPool(connection);
                    connection.Dispose();
                }
            }
        }
Exemplo n.º 8
0
        public ActionResult TableDeleteConfirmed(int id)
        {
            var    user   = UserManager.FindById(User.Identity.GetUserId());
            string userID = user.Login;

            try
            {
                PersonalArea persarea = Read.getAreaTable().Where(x => x.UserID == userID).ToList().First(y => y.ID == id);
                Delete.deleteAreaTable(persarea);
            }
            catch { }

            return(View("~/Views/Area/Index.cshtml"));
        }
Exemplo n.º 9
0
        public static bool insertArea(PersonalArea Area)
        {
            SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["dboBreadUnits"].ConnectionString);
            bool          result     = false;

            string query = @"INSERT INTO [dbo].[PersonalArea]
           ([UserID],[Product],[ProductGroup],[Carbohydrates],[GrammInUnit],[BreadUnits],[DateCreate], [RecipeID] )
            VALUES
           (@UserID, @Product,@ProductGroup,@Carbohydrates,@GrammInUnit,@BreadUnits,@DateCreate, @RecipeID)";

            SqlCommand cmd = new SqlCommand(query, connection);

            cmd.CommandType    = CommandType.Text;
            cmd.CommandTimeout = 0;

            cmd.Parameters.Add("@ID", SqlDbType.Int).Value                = Area.ID;
            cmd.Parameters.Add("@UserID", SqlDbType.NVarChar).Value       = Area.UserID;
            cmd.Parameters.Add("@Product", SqlDbType.NVarChar).Value      = Area.Product;
            cmd.Parameters.Add("@ProductGroup", SqlDbType.NVarChar).Value = Area.ProductGroupName;
            cmd.Parameters.Add("@Carbohydrates", SqlDbType.Float).Value   = Area.Carbohydrates;
            cmd.Parameters.Add("@GrammInUnit", SqlDbType.Float).Value     = Area.GrammInUnit;
            cmd.Parameters.Add("@BreadUnits", SqlDbType.Float).Value      = Area.BreadUnits;
            cmd.Parameters.Add("@DateCreate", SqlDbType.DateTime).Value   = Area.DateCreate;
            cmd.Parameters.Add("@RecipeID", SqlDbType.Float).Value        = Area.RecipeID;

            try
            {
                connection.Open();
                cmd.ExecuteNonQuery();
                result = true;
            }
            catch (Exception e)
            {
                exception = e.Message;
                return(false);
            }
            finally
            {
                if (connection.State == ConnectionState.Open)
                {
                    connection.Close();
                    SqlConnection.ClearPool(connection);
                    connection.Dispose();
                }
            }

            return(result);
        }
Exemplo n.º 10
0
        private void button7_Click(object sender, EventArgs e)
        {
            if (label10.Visible)
            {
                label10.Visible = false;
            }


            //Проверка введенного логина и пароля


            string         query = "SELECT * FROM Registration WHERE Login = '******' AND Password = '******'";
            SqlDataAdapter sqlDA = new SqlDataAdapter(query, sqlConnection);
            DataTable      dT    = new DataTable();

            sqlDA.Fill(dT);
            if (dT.Rows.Count == 1)
            {
                PersonalArea frm = new PersonalArea
                {
                    asd = textBox2.Text
                };
                frm.Show();
                this.Hide();
            }
            else if (!string.IsNullOrEmpty(textBox3.Text) && !string.IsNullOrEmpty(textBox3.Text))
            {
                label10.Visible = true;

                label10.Text = "Поле 'Логин' должно быть заполнен!";
            }
            else if (!string.IsNullOrEmpty(textBox2.Text) && !string.IsNullOrEmpty(textBox2.Text))
            {
                label10.Visible = true;

                label10.Text = "Введите пароль!";
            }
            else
            {
                label10.Visible = true;

                label10.Text = "Поля 'Пароль' и 'Логин' должны быть заполнены";
            }
        }
Exemplo n.º 11
0
        public CoursesInAreaModel MakeCoursesModel(PersonalArea area)
        {
            CoursesInAreaModel coursesModel = new CoursesInAreaModel();
            Dictionary <int, List <Triplet> > dictionary = new Dictionary <int, List <Triplet> >();

            foreach (var course in area.Courses)
            {
                var            paragraphs = db.Paragraphs.Where(p => p.CourseId == course.Id).ToList();
                var            sort       = paragraphs.OrderBy(p => p.NumInCourse).ToList();
                List <Triplet> pars       = new List <Triplet>();
                foreach (var paragraph in sort)
                {
                    pars.Add(new Triplet()
                    {
                        Name = paragraph.Name, UrlImg = paragraph.ImgUrl, ParagraphId = paragraph.Id
                    });
                }
                dictionary.Add(course.Id, pars);
            }
            coursesModel.courses = dictionary;
            return(coursesModel);
        }
Exemplo n.º 12
0
        public StudyViewModel GetNextParagraph(PersonalArea area, int courseId)
        {
            var structure     = area.CourseStructures.Where(c => c.IdCourse == courseId).First();
            var parStructures = db.ParagraphStructures.Where(p => p.CourseStructureId == structure.Id);
            List <ParagraphStructure> sortParag = parStructures.OrderBy(p => p.NumInCourse).ToList();

            foreach (var par in sortParag)
            {
                var testStructures            = db.TestStructures.Where(t => t.ParagraphStructureId == par.Id);
                List <TestStructure> testSort = testStructures.OrderBy(t => t.NumInParagraph).ToList();
                foreach (var test in testSort)
                {
                    bool isTestPassed  = true;
                    var  queStructures = db.QuestionStructures.Where(q => q.TestStructureId == test.Id);
                    List <QuestionStructure> queSort = queStructures.OrderBy(q => q.NumInTest).ToList();
                    foreach (var que in queSort)
                    {
                        if (que.Passed == false)
                        {
                            isTestPassed = false;
                        }
                    }
                    if (!isTestPassed)
                    {
                        List <Test>    tests = db.Tests.Where(t => t.ParagraphId == par.IdParagraph).ToList();
                        StudyViewModel model = new StudyViewModel()
                        {
                            Paragraph = db.Paragraphs.Find(par.IdParagraph), Tests = tests
                        };
                        return(model);
                    }
                }
            }
            return(new StudyViewModel()
            {
                Paragraph = db.Paragraphs.Find(sortParag.Last().IdParagraph), Tests = new List <Test>()
            });
        }
Exemplo n.º 13
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            ApplicationDbContext context = new ApplicationDbContext();
            var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context));

            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    if (model.IsTeacher)
                    {
                        userManager.AddToRole(user.Id, "teacher");
                    }
                    else
                    {
                        userManager.AddToRole(user.Id, "user");
                    }
                    CourseContext db   = new CourseContext();
                    PersonalArea  area = new PersonalArea();
                    area.Person = user.UserName;
                    var userN = context.Users.Where(u => u.Email == user.Email && u.UserName == user.UserName).First();
                    area.AspNetUserId = userN.Id;
                    db.PersonalAreas.Add(area);
                    db.SaveChanges();
                    // генерируем токен для подтверждения регистрации
                    //string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // создаем ссылку для подтверждения
                    //var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // отправка письма
                    //await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");
                    var result1 = await SignInManager.PasswordSignInAsync(model.Email, model.Password, false, shouldLockout : false);

                    switch (result1)
                    {
                    case SignInStatus.Success:
                        ApplicationUser user1 = UserManager.FindByEmail(model.Email);
                        if (UserManager.IsInRole(user.Id, "admin"))
                        {
                            return(RedirectToActionPermanent("Index", "Admin"));
                        }
                        if (UserManager.IsInRole(user.Id, "teacher"))
                        {
                            return(RedirectToActionPermanent("Index", "Teacher"));
                        }
                        return(RedirectToLocal(model.Email));

                    case SignInStatus.LockedOut:
                        return(View("Lockout"));

                    case SignInStatus.Failure:
                    default:
                        ModelState.AddModelError("", "Invalid login attempt.");
                        return(View(model));
                    }
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Exemplo n.º 14
0
        public ActionResult CheckTest(int testId, int number, bool isTheEnd, int testPoints, int allPoints, string text, Dictionary <int, string> answers)
        {
            AnswerViewModel answer = new AnswerViewModel()
            {
                AllPoints = allPoints, IsTheEnd = isTheEnd, TestId = testId, Text = text, TestPoints = testPoints, NumInTest = number
            };

            if (answer.NumInTest != 0)
            {
                Question question1 = db.Questions.Where(q => q.NumInTest == number && q.TestId == answer.TestId).First();
                answer.Question = question1;
                answers.Add(number, text);
                answer.answers = answers;
                if (answer.Question.Answer.ToLower().CompareTo(answer.Text.ToLower()) == 0)
                {
                    int point = answer.AllPoints + answer.Question.Points;
                    answer.AllPoints = point;
                }
            }
            int numInTest = answer.NumInTest + 1;

            answer.NumInTest = numInTest;
            if (numInTest > db.Questions.Where(q => q.TestId == answer.TestId).Count())
            {
                string       userId   = User.Identity.GetUserId();
                PersonalArea area     = db.PersonalAreas.Where(p => p.AspNetUserId.CompareTo(userId) == 0).First();
                Test         test1    = db.Tests.Find(answer.TestId);
                int          idPar    = test1.ParagraphId;
                Paragraph    parag    = db.Paragraphs.Find(idPar);
                int          courseId = parag.CourseId;
                ViewBag.CourseId = courseId;
                if (answer.TestPoints == answer.AllPoints)
                {
                    var structure     = area.CourseStructures.Where(c => c.IdCourse == courseId).First();
                    var parStructures = db.ParagraphStructures.Where(p => p.CourseStructureId == structure.Id);
                    List <ParagraphStructure> sortParag = parStructures.OrderBy(p => p.NumInCourse).ToList();
                    foreach (var par in sortParag)
                    {
                        var testStructures            = db.TestStructures.Where(t => t.ParagraphStructureId == par.Id);
                        List <TestStructure> testSort = testStructures.OrderBy(t => t.NumInParagraph).ToList();
                        foreach (var test in testSort)
                        {
                            if (test.IdTest == answer.TestId)
                            {
                                var queStructures = db.QuestionStructures.Where(q => q.TestStructureId == test.Id);
                                List <QuestionStructure> queSort = queStructures.OrderBy(q => q.NumInTest).ToList();
                                foreach (var que in queSort)
                                {
                                    que.Passed          = true;
                                    db.Entry(que).State = System.Data.Entity.EntityState.Modified;
                                }
                            }
                        }
                    }
                    db.SaveChanges();
                }
                answer.IsTheEnd = true;
                return(View(answer));
            }
            Question question = db.Questions.Where(q => q.NumInTest == numInTest && q.TestId == answer.TestId).First();

            answer.Question = question;
            answer.Text     = "";
            return(View(answer));
        }