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")); }
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(); } } }
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)); }
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)); }
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")); } }
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()); }
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(); } } }
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")); }
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); }
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 = "Поля 'Пароль' и 'Логин' должны быть заполнены"; } }
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); }
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>() }); }
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)); }
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)); }