public async Task <OperationDetails> DeleteAsync(int id, string userId) { try { // Checking for: does the current user has a role - "admin"? bool isAdmin = BLLRepository.IsAdmin(Database, userId); var speciality = await Database.Speciality.GetAsync(id); if (!isAdmin) { return(new OperationDetails(false, "You can't update this speciality. It can only be updated by Admin.", "Speciality")); } if (speciality != null) { if (speciality.Courses.Count > 0) { return(new OperationDetails(false, "You can't delete this speciality. Before you have to delete depended courses.", "Speciality")); } await Database.Speciality.DeleteAsync(id); await Database.SaveAsync(); return(new OperationDetails(true, "Speciality deleting completed successfully.", "Speciality")); } return(new OperationDetails(false, "Speciality with this Id doesn't exists. Deleting is impossible.", "Speciality")); } catch (Exception ex) { return(new OperationDetails(false, ex.Message, "Speciality")); } }
public string SignUp(string userFirstName, string userLastName, string userDateOfBirth, string userName, string userPassword, string userTryPassword) { BLLRepository <User> rep_createdUser = new BLLRepository <Entities.User>(); BLLRepository <Login> rep_Login = new BLLRepository <Login>(); Entities.User lastUser = new Entities.User(); try { lastUser = rep_createdUser.List().OrderByDescending(x => x.userCodeID).First(); } catch (Exception) { } try { string userCodeID = getNewArticleCodeID(lastUser.userCodeID, "USER-00000"); rep_createdUser.Insert(new Entities.User { userCodeID = userCodeID, userFirstName = userFirstName, userLastName = userLastName, userDateOfBirth = DateTime.Parse(userDateOfBirth), Articles = new List <Article>(), login = new List <Login>() }); rep_Login.Insert(new Entities.Login { loginUserNameID = userName, loginUserPassword = userPassword, user = rep_createdUser.Find(x => x.userCodeID == userCodeID) }); return("success"); } catch (Exception) { return("error"); } }
public async Task <OperationDetails> DeleteAsync(int id, string userId) { try { // Checking for: does the current user has a role - "admin"? bool isAdmin = BLLRepository.IsAdmin(Database, userId); Course course = await Database.Course.GetAsync(id); if (course.UserProfileId != userId && !isAdmin) { return(new OperationDetails(false, "You can't delete this course. It has been created by the other user.", "Course")); } if (course != null) { if (course.CourseAssignments.Count > 0 || course.Subscriptions.Count > 0 || course.Topics.Count > 0) { return(new OperationDetails(false, "You can't delete this course. Before you have to delete depended course assignments, sibscriments and topics.", "Course")); } await Database.Course.DeleteAsync(id); await Database.SaveAsync(); return(new OperationDetails(true, "Course deleting completed successfully.", "Course")); } return(new OperationDetails(false, "Course with this Id doesn't exists. Deleting is impossible.", "Course")); } catch (Exception ex) { return(new OperationDetails(false, ex.Message, "Course")); } }
public async Task <OperationDetails> DeleteAsync(int id, string userId) { try { // Checking for: does the current user has a role - "admin"? bool isAdmin = BLLRepository.IsAdmin(Database, userId); // Checking for: Does the current user have permission for updating questions from the test creator? int courseId = (await Database.Answer.GetAsync(id)).Question.Topic.CourseId; IEnumerable <CourseAssignment> assignments = Database.CourseAssignment.Find(obj => obj.CourseId == courseId); bool isCourseAssigned = (from assign in assignments where assign.UserProfileId == userId select assign).Count() > 0; Course course = await Database.Course.GetAsync(courseId); if (course.UserProfileId != userId && !isAdmin && !isCourseAssigned) { return(new OperationDetails(false, "You can't delete this answer. This answer has been created by other user so apply to the course creator for the permission.", "Answer")); } Answer answer = await Database.Answer.GetAsync(id); if (answer != null) { await Database.Answer.DeleteAsync(id); await Database.SaveAsync(); return(new OperationDetails(true, "Answer deleting completed successfully.", "Answer")); } return(new OperationDetails(false, "Answer with this Id doesn't exists. Deleting is impossible.", "Answer")); } catch (Exception ex) { return(new OperationDetails(false, ex.Message, "Answer")); } }
public async Task <OperationDetails> DeleteAsync(int id, string userId) { try { // Checking for: does the current user has a role - "admin"? bool isAdmin = BLLRepository.IsAdmin(Database, userId); // Checking for: Does the current user have permission for deleting test results? TestResult testResult = await Database.TestResult.GetAsync(id); if (testResult.UserProfileId != userId && !isAdmin) { return(new OperationDetails(false, "You can't delete this test result. This test result has been created by other user so apply to the course creator for the permission.", "TestResult")); } if (testResult != null) { await Database.Question.DeleteAsync(id); await Database.SaveAsync(); return(new OperationDetails(true, "Test result deleting completed successfully.", "TestResult")); } return(new OperationDetails(false, "Test result with this Id doesn't exists. Deleting is impossible.", "TestResult")); } catch (Exception ex) { return(new OperationDetails(false, ex.Message, "TestResult")); } }
public string sentComment(string comment, string usercode, string articlecode) { try { BLLRepository <ArticleComment> rep_Artc_Comment = new BLLRepository <ArticleComment>(); BLLRepository <User> rep_User = new BLLRepository <User>(); BLLRepository <Article> rep_Artc = new BLLRepository <Article>(); User _user = rep_User.Find(x => x.userCodeID == usercode); Article article = rep_Artc.Find(x => x.articleCodeID == articlecode); int insertCount = rep_Artc_Comment.Insert(new ArticleComment { articleComment = comment, articleCommentRefArticleCode = article.articleCodeID, article = article, user = _user }); if (insertCount > 0) { return("success"); } else { return("error"); } } catch (Exception) { return("error"); } }
public async Task <OperationDetails> UpdateAsync(CourseAssignmentDTO item, string userId) { try { // Checking for: does the current user has a role - "admin"? bool isAdmin = BLLRepository.IsAdmin(Database, userId); Course course = await Database.Course.GetAsync(item.CourseId); if (course.UserProfileId != userId && !isAdmin) { return(new OperationDetails(false, "You can't update this course sssignment. This course has been created by other user.", "Course Assignment")); } if (item.Email == null) { return(new OperationDetails(false, "You haven't selected any Email!", "Course assignment")); } // Checking for: is there this user in the DB? var user = await Database.UserManager.FindByEmailAsync(item.Email); if (user == null) { return(new OperationDetails(false, "User with this Email is absent in DB!", "Course assignment")); } // Assign the found value to property - UserProfileId. item.UserProfileId = user.Id; // Find the changing entity in DB by CourseAssignmentId. CourseAssignment courseAssignment = await Database.CourseAssignment.GetAsync(item.CourseAssignmentId); if (courseAssignment != null) { // Checking for: has a user already been assigned on this course? IEnumerable <CourseAssignment> courseAssignments = Database.CourseAssignment.Find( obj => obj.UserProfileId == item.UserProfileId && obj.CourseId == item.CourseId); if (courseAssignments.Count() > 1) { return(new OperationDetails(false, "This user has already been assigned on this course!", "Course Assignment")); } if (courseAssignments.Count() == 1 && courseAssignment.UserProfileId != item.UserProfileId) { return(new OperationDetails(false, "This user has already been assigned on this course!", "Course Assignment")); } // Update the course assignment. courseAssignment.UserProfileId = item.UserProfileId; courseAssignment.IsApproved = item.IsApproved; courseAssignment.AssignmentDate = DateTime.Now; Database.CourseAssignment.Update(courseAssignment); await Database.SaveAsync(); return(new OperationDetails(true, "Course assignment updating completed successfully.", "Course Assignment")); } return(new OperationDetails(false, "Course assignment with this Id doesn't exists.", "Course Assignment")); } catch (Exception ex) { return(new OperationDetails(false, ex.Message, "Course Assignment")); } }
// GET: Comment public ActionResult Comment(string id) { BindInfo(); BLLRepository <Article> rep_Artc = new BLLRepository <Article>(); List <Article> Article = rep_Artc.List(x => x.articleCodeID == id); ViewBag.ArticleDetail = Article[0]; return(View("Index", rep_Artc.List(x => x.articleCodeID == id))); }
public async Task <OperationDetails> UpdateAsync(AnswerDTO item, string userId) { try { // Checking for: Does the current user has a role - "admin"? bool isAdmin = BLLRepository.IsAdmin(Database, userId); // Checking for: Does the current user have permission for updating answers from the test creator? int courseId = (await Database.Question.GetAsync(item.QuestionId)).Topic.CourseId; IEnumerable <CourseAssignment> assignments = Database.CourseAssignment.Find(obj => obj.CourseId == courseId); bool isCourseAssigned = (from assign in assignments where assign.UserProfileId == userId select assign).Count() > 0; Course course = await Database.Course.GetAsync(courseId); if (course.UserProfileId != userId && !isAdmin && !isCourseAssigned) { return(new OperationDetails(false, "You can't update this answer. This course has been created by other user so apply to the course creator for the permission.", "Answer")); } // Get the updated answer from DB by AnswerId. Answer answer = await Database.Answer.GetAsync(item.AnswerId); if (answer != null) { // Check the updated answer. string answerType = (await Database.Question.GetAsync(item.QuestionId)).AnswerType.AnswerTypeDescription; var answers = Database.Answer.Find(obj => obj.QuestionId == item.QuestionId); int countOfExistedProperAnswersInQuestion = (from row in answers where row.IsProper == true select row).Count(); if (answer.IsProper) { countOfExistedProperAnswersInQuestion -= countOfExistedProperAnswersInQuestion; } if (!BLLRepository.CheckCountOfProperAnswers(answerType, item.IsProper, countOfExistedProperAnswersInQuestion, out string result)) { return(new OperationDetails(false, result, "Answer")); } // Update the answer. answer.AnswerText = item.AnswerText?.Trim(); answer.IsProper = item.IsProper; answer.LastModifiedDateTime = DateTime.Now; Database.Answer.Update(answer); await Database.SaveAsync(); return(new OperationDetails(true, "Answer updating completed successfully.", "Answer")); } return(new OperationDetails(false, "Answer with this Id doesn't exists.", "Answer")); } catch (Exception ex) { return(new OperationDetails(false, ex.Message, "Answer")); } }
public async Task <OperationDetails> UpdateAsync(SubscriptionForModeratorDTO item, string userId) { try { // I. Checking for: Does the current user has a role - "admin"? bool isAdmin = BLLRepository.IsAdmin(Database, userId); if (!isAdmin) { return(new OperationDetails(false, "You can't update any moderator subscription. Apply to Admin.", "SubscriptionForModerator")); } // Get updatable subscription from DB. var subscription = await Database.SubscriptionForModerator.GetAsync(item.SubscriptionForModeratorId); if (subscription != null) { // II. Deactivate the active trial subscription if it exists and the updatable subscription is approved. // Get all subscriptions of the current user. IEnumerable <SubscriptionForModerator> subscriptions = Database.SubscriptionForModerator.Find(obj => obj.UserProfileId == subscription.UserProfileId); // Get an active subscription. SubscriptionForModerator activeTrialSubscription = (from sub in subscriptions where sub.StartDate < DateTime.Now && (DateTime.Now - sub.StartDate < TimeSpan.FromDays(sub.SubscriptionPeriod) && sub.IsApproved && sub.IsTrial) select sub).FirstOrDefault(); if (activeTrialSubscription != null && item.IsApproved) { activeTrialSubscription.SubscriptionPeriod = 0; Database.SubscriptionForModerator.Update(activeTrialSubscription); await Database.SaveAsync(); } // III. Update the subscription. subscription.CourseCount = item.CourseCount; subscription.SubscriptionPeriod = item.SubscriptionPeriod; subscription.IsApproved = item.IsApproved; Database.SubscriptionForModerator.Update(subscription); await Database.SaveAsync(); return(new OperationDetails(true, "Subscription updating completed successfully.", "SubscriptionForModerator")); } return(new OperationDetails(false, "Subscription with this Id doesn't exists.", "SubscriptionForModerator")); } catch (Exception ex) { return(new OperationDetails(false, ex.Message, "SubscriptionForModeratorId")); } }
// CRUD methods. public async Task <OperationDetails> CreateAsync(TopicDTO item, string userId) { try { // Checking for: Does the current user has a role - "admin"? bool isAdmin = BLLRepository.IsAdmin(Database, userId); // Checking for: Does the current user have a permission from the test creator for creating topics? bool isCourseAssigned = Database.CourseAssignment.Find(obj => obj.UserProfileId == userId && obj.CourseId == item.CourseId && obj.IsApproved).Count() > 0; Course course = await Database.Course.GetAsync(item.CourseId); if (course.UserProfileId != userId && !isAdmin && !isCourseAssigned) { return(new OperationDetails(false, "You can't create this topic. This course has been created by the other user so apply to the course creator for the permission.", "Topic")); } // Checking for: Has the topic with the same name already existed in DB? IEnumerable <Topic> topics = Database.Topic.Find(obj => obj.CourseId == item.CourseId && obj.TopicTitle.Trim() == item.TopicTitle.Trim()); if (topics.ToList().Count == 0) { if (course.IsFree) { item.IsFree = true; } Topic topic = new Topic { CourseId = item.CourseId, TopicTitle = item.TopicTitle.Trim(), Description = item.Description?.Trim(), TopicNumber = item.TopicNumber, LastModifiedDateTime = DateTime.Now, IsFree = item.IsFree }; Database.Topic.Create(topic); await Database.SaveAsync(); return(new OperationDetails(true, "Topic adding completed successfully.", "Topic")); } else { return(new OperationDetails(false, "Topic with the same name has already existed in DB.", "Topic")); } } catch (Exception ex) { return(new OperationDetails(false, ex.Message, "Topic")); } }
public async Task <OperationDetails> UpdateAsync(CourseDTO item, string userId) { try { // Checking for: is the course speciality approved? if (!(await Database.Speciality.GetAsync(item.SpecialityId)).IsApproved) { return(new OperationDetails(false, "The specialty of the course being created is not approved.", "Speciality")); } // Checking for: does the current user has a role - "admin"? bool isAdmin = BLLRepository.IsAdmin(Database, userId); Course course = await Database.Course.GetAsync(item.CourseId); if (course.UserProfileId != userId && !isAdmin) { return(new OperationDetails(false, "You can't update this subject. It has been created by the other user.", "Subject")); } if (course != null) { // Checking for: does the course with the same name already exist in DB? IEnumerable <Course> courses = Database.Course.Find(obj => obj.SpecialityId == item.SpecialityId && obj.CourseTitle.Trim() == item.CourseTitle.Trim()); if (courses.Count() > 0 && item.CourseTitle.Trim() != course.CourseTitle.Trim()) { return(new OperationDetails(false, "Course with the same name has already existed in DB.", "Course")); } course.CourseTitle = item.CourseTitle.Trim(); course.Description = item.Description?.Trim(); course.CourseTestQuestionsNumber = item.CourseTestQuestionsNumber; course.TopicTestQuestionsNumber = item.TopicTestQuestionsNumber; course.TimeToAnswerOneQuestion = item.TimeToAnswerOneQuestion; course.AttemptsNumber = item.AttemptsNumber; course.PassingScore = item.PassingScore; course.LastModifiedDateTime = DateTime.Now; course.IsApproved = item.IsApproved; course.IsFree = item.IsFree; Database.Course.Update(course); await Database.SaveAsync(); return(new OperationDetails(true, "Course updating completed successfully.", "Course")); } return(new OperationDetails(false, "Course with this Id doesn't exists.", "Course")); } catch (Exception ex) { return(new OperationDetails(false, ex.Message, "Course")); } }
public async Task <IList <QuestionDTO> > GetRandomQuestionsForCourse(int courseId) { // AutoMapper Setup. var iMapper = BLLAutoMapper.GetMapper; try { List <Question> source = Database.Question.Find(question => question.Topic.CourseId == courseId).ToList(); List <QuestionDTO> allCourseQuestions = iMapper.Map <List <Question>, List <QuestionDTO> >(source); int questionCount = (await Database.Course.GetAsync(courseId)).CourseTestQuestionsNumber; return(BLLRepository.RandomQuestionList(allCourseQuestions, questionCount)); } catch (Exception ex) { throw new Exception(ex.Message); } }
// CRUD methods. public async Task <OperationDetails> CreateAsync(SubscriptionForModeratorDTO item, string userId) { try { // Get all subscriptions of the current user. IEnumerable <SubscriptionForModerator> subscriptions = Database.SubscriptionForModerator.Find(obj => obj.UserProfileId == item.UserProfileId); // Get an active subscription. SubscriptionForModerator activeSubscription = (from sub in subscriptions where sub.StartDate < DateTime.Now && (DateTime.Now - sub.StartDate < TimeSpan.FromDays(sub.SubscriptionPeriod) && sub.IsApproved) select sub).FirstOrDefault(); // Create a new subscription. SubscriptionForModerator subscription = new SubscriptionForModerator { UserProfileId = item.UserProfileId, CourseCount = item.CourseCount, SubscriptionPeriod = item.SubscriptionPeriod, StartDate = DateTime.Now, IsTrial = item.IsTrial, IsApproved = item.IsApproved }; if (activeSubscription != null) { if (!activeSubscription.IsTrial) { subscription.StartDate = DateTime.Now + TimeSpan.FromDays(activeSubscription.SubscriptionPeriod - (DateTime.Now - activeSubscription.StartDate).Days); } } Database.SubscriptionForModerator.Create(subscription); // Add a moderator role. if (!BLLRepository.IsModerator(Database, item.UserProfileId)) { await Database.UserManager.AddToRoleAsync(item.UserProfileId, "moderator"); } await Database.SaveAsync(); return(new OperationDetails(true, "Subscription adding completed successfully.", "SubscriptionForModerator")); } catch (Exception ex) { return(new OperationDetails(false, ex.Message, "SubscriptionForModerator")); } }
public string sendArticle(string title, string articlecontent, string loginUserCode, string categoryCode) { try { BLLRepository <User> rep_user = new BLLRepository <Entities.User>(); BLLRepository <Categories> rep_ctg = new BLLRepository <Entities.Categories>(); BLLRepository <Article> rep_artc = new BLLRepository <Entities.Article>(); Entities.User user = rep_user.Find(x => x.userCodeID == loginUserCode); Entities.Categories ctg = rep_ctg.Find(x => x.categoryCode == categoryCode); Article lastArticle = null; string LastArticleCodeID = ""; try { lastArticle = rep_artc.List().OrderByDescending(x => x.articleCodeID).First(); LastArticleCodeID = lastArticle.articleCodeID; } catch (Exception) { } string ArticleCodeID; ArticleCodeID = getNewArticleCodeID(LastArticleCodeID, "ARTC-00000"); int insertCount = rep_artc.Insert(new Entities.Article { articleCodeID = ArticleCodeID, articleContent = articlecontent, articleSharedDate = DateTime.Now, articleTitle = title, category = ctg, user = user, comments = new List <ArticleComment>(), likes = new List <ArticleLikes>() }); //BLLRepository<ArticleComment> rep_artCommt = new BLLRepository<Entities.ArticleComment>(); //BLLRepository<ArticleLikes> rep_artLike = new BLLRepository<Entities.ArticleLikes>(); //rep_artCommt.Insert() return("success"); } catch (Exception) { return("error"); } }
public async Task <OperationDetails> UpdateAsync(SpecialityDTO item, string userId) { try { // Checking for: is the speciality subject approved? if (!(await Database.Subject.GetAsync(item.SubjectId)).IsApproved) { return(new OperationDetails(false, "The subject of the specialty being updated is not approved.", "Speciality")); } // Checking for: does the current user has a role - "admin"? bool isAdmin = BLLRepository.IsAdmin(Database, userId); var speciality = await Database.Speciality.GetAsync(item.SpecialityId); if (!isAdmin) { return(new OperationDetails(false, "You can't update this speciality. It can only be updated by Admin.", "Speciality")); } if (speciality != null) { // Checking for: does the speciality with the same name already exist in DB? IEnumerable <Speciality> specialities = Database.Speciality.Find(obj => obj.SubjectId == item.SubjectId && obj.SpecialityName.Trim() == item.SpecialityName.Trim()); if (specialities.ToList().Count > 0 && item.SpecialityName.Trim() != speciality.SpecialityName.Trim()) { return(new OperationDetails(false, "Speciality with the same name has already existed in DB.", "Speciality")); } // Update speciality. speciality.SpecialityName = item.SpecialityName.Trim(); speciality.Description = item.Description?.Trim(); speciality.LastModifiedDateTime = DateTime.Now; speciality.IsApproved = item.IsApproved; Database.Speciality.Update(speciality); await Database.SaveAsync(); return(new OperationDetails(true, "Speciality updating completed successfully.", "Speciality")); } return(new OperationDetails(false, "Speciality with this Id doesn't exists.", "Speciality")); } catch (Exception ex) { return(new OperationDetails(false, ex.Message, "Speciality")); } }
// GET: Home public ActionResult Index() { //DBBuild CreateDB = new DBBuild(); // Database Create et. //CreateDB.InsertTest(); try { if (Session["LoginUser"] != null) { Login login = (Login)Session["LoginUser"]; User user = login.user; ViewBag.FullName = user.userFirstName + " " + user.userLastName; } } catch (Exception) { } // CreateDB.InsertTest(); // 1 kere çelıştırıldı primary key hata verir sonraki çalıştırılmalarda.. //CreateDB.UpdateTest(); BLLRepository <Article> rep_Artc = new BLLRepository <Article>(); return(View(rep_Artc.List().OrderByDescending(x => x.articleSharedDate).ToList())); }
public async Task <OperationDetails> DeleteAsync(int id, string userId) { try { // I. Checks. // Checking for: does the current user has a role - "admin"? bool isAdmin = BLLRepository.IsAdmin(Database, userId); // Checking for: Does the current user have a permission from the test creator for creating topics? Topic topic = await Database.Topic.GetAsync(id); bool isCourseAssigned = Database.CourseAssignment.Find(obj => obj.UserProfileId == userId && obj.CourseId == topic.CourseId && obj.IsApproved).Count() > 0; Course course = await Database.Course.GetAsync(topic.CourseId); if (course.UserProfileId != userId && !isAdmin && !isCourseAssigned) { return(new OperationDetails(false, "You can't delete this topic. This course has been created by the other user so apply to the course creator for the permission.", "Topic")); } // II. Delete the subscription. if (topic != null) { if (topic.Questions.Count > 0) { return(new OperationDetails(false, "You can't delete this topic. Before you have to delete depended questions.", "Topic")); } await Database.Topic.DeleteAsync(id); await Database.SaveAsync(); return(new OperationDetails(true, "Topic deleting completed successfully.", "Topic")); } return(new OperationDetails(false, "Topic with this Id doesn't exists. Deleting is impossible.", "Topic")); } catch (Exception ex) { return(new OperationDetails(false, ex.Message, "Topic")); } }
public string updateArticle(string title, string articlecontent, string articleCode) { try { BLLRepository <Article> rep_artc = new BLLRepository <Entities.Article>(); Article findArticle = null; try { findArticle = rep_artc.Find(x => x.articleCodeID == articleCode); } catch (Exception) { } findArticle.articleContent = articlecontent; findArticle.articleTitle = title; int updateCount = rep_artc.Update(); return("success"); } catch (Exception) { return("error"); } }
public async Task <OperationDetails> UpdateAsync(QuestionDTO item, string userId) { try { // Checking for: Does the current user has a role - "admin"? bool isAdmin = BLLRepository.IsAdmin(Database, userId); int courseId = (await Database.Topic.GetAsync(item.TopicId)).CourseId; // Checking for: Does the current user have permission for updating questions from the test creator? IEnumerable <CourseAssignment> assignments = Database.CourseAssignment.Find(obj => obj.CourseId == courseId); bool isCourseAssigned = (from assign in assignments where assign.UserProfileId == userId select assign).Count() > 0; Course course = await Database.Course.GetAsync(courseId); if (course.UserProfileId != userId && !isAdmin && !isCourseAssigned) { return(new OperationDetails(false, "You can't update this question. This course has been created by other user so apply to the course creator for the permission.", "Question")); } Question question = await Database.Question.GetAsync(item.QuestionId); if (question != null) { // Update the question. question.AnswerTypeId = item.AnswerTypeId; question.QuestionText = item.QuestionText?.Trim(); question.ResourceRef = item.ResourceRef; question.QuestionWeight = item.QuestionWeight; question.LastModifiedDateTime = DateTime.Now; Database.Question.Update(question); await Database.SaveAsync(); return(new OperationDetails(true, "Question updating completed successfully.", "Question")); } return(new OperationDetails(false, "Question with this Id doesn't exists.", "Question")); } catch (Exception ex) { return(new OperationDetails(false, ex.Message, "Question")); } }
// GET: Home public ActionResult Article(string id) { DBBuild CreateDB = new DBBuild(); // Database Create et. //CreateDB.InsertTest(); try { if (Session["LoginUser"] != null) { Login login = (Login)Session["LoginUser"]; User user = login.user; ViewBag.FullName = user.userFirstName + " " + user.userLastName; } } catch (Exception) { } BLLRepository <Article> rep_Artc = new BLLRepository <Article>(); // ViewBag.ArticleDetail = rep_Artc.List(x => x.category.categoryName == id); return(View("Index", rep_Artc.List(x => x.category.categoryName == id))); }
public string setLike(string userCode, string articleCode, bool like) { try { BLLRepository <User> rep_user = new BLLRepository <User>(); BLLRepository <Article> rep_article = new BLLRepository <Article>(); Entities.User user = rep_user.Find(x => x.userCodeID == userCode); Entities.Article article = rep_article.Find(x => x.articleCodeID == articleCode); if (like) //Like işlemi yapılacak { BLLRepository <ArticleLikes> rep_artLike = new BLLRepository <ArticleLikes>(); rep_artLike.Insert(new ArticleLikes { article = article, user = user }); return("liked"); } else // Unlike işlemi yapılacak { BLLRepository <ArticleLikes> rep_artLike = new BLLRepository <ArticleLikes>(); ArticleLikes articlelike = new ArticleLikes(); List <ArticleLikes> artLikeLİst = rep_artLike.List(); try { articlelike = rep_artLike.List(x => x.article.articleCodeID == article.articleCodeID & x.user.userCodeID == user.userCodeID).First(); } catch (Exception) { } if (articlelike.articleLikesID != null) // like kaydı bulunmuş ise { rep_artLike.Remove(articlelike); } return("unliked"); } } catch (Exception) { return("error"); } }
public async Task <OperationDetails> DeleteAsync(int id, string userId) { try { // I. Checks. // Checking for: Does the current user have a permission from the test creator for changing subscriptions? bool isAdmin = BLLRepository.IsAdmin(Database, userId); // Get the deletable subscription from DB. Subscription subscription = await Database.Subscription.GetAsync(id); bool isCourseAssigned = Database.CourseAssignment.Find(obj => obj.UserProfileId == userId && obj.CourseId == subscription.CourseId && obj.IsApproved).Count() > 0; Course course = await Database.Course.GetAsync(subscription.CourseId); if (course.UserProfileId != userId && !isAdmin && !isCourseAssigned) { return(new OperationDetails(false, "You can't delete this course subscription. This course has been created by the other user so apply to the course creator for the permission.", "Subscription")); } // II. Delete the subscription. if (subscription != null) { await Database.Subscription.DeleteAsync(id); await Database.SaveAsync(); return(new OperationDetails(true, "Subscription deleting completed successfully.", "Subscription")); } return(new OperationDetails(false, "Subscription with this Id doesn't exists.", "Subscription")); } catch (Exception ex) { return(new OperationDetails(false, ex.Message, "Subscription")); } }
public async Task <OperationDetails> DeleteAsync(int id, string userId) { try { // Checking for: Does the current user has a role - "admin"? bool isAdmin = BLLRepository.IsAdmin(Database, userId); if (!isAdmin) { return(new OperationDetails(false, "You can't delete any moderator subscription. Apply to Admin.", "SubscriptionForModerator")); } var subscription = await Database.SubscriptionForModerator.GetAsync(id); if (subscription != null) { // Delete the subscription. await Database.SubscriptionForModerator.DeleteAsync(id); // Question: // // // Do I have to delete "moderator"-role? // // //string currentUserId = (await Database.SubscriptionForModerator.GetAsync(id)).UserProfileId; //await Database.UserManager.RemoveFromRoleAsync(currentUserId, "moderator"); await Database.SaveAsync(); return(new OperationDetails(true, "Subscription deleting completed successfully.", "SubscriptionForModerator")); } return(new OperationDetails(false, "Subscription with this Id doesn't exists.", "SubscriptionForModerator")); } catch (Exception ex) { return(new OperationDetails(false, ex.Message, "SubscriptionForModerator")); } }
public async Task <OperationDetails> UpdateAsync(SubjectDTO item, string userId) { try { // Checking for: does the current user has a role - "admin"? bool isAdmin = BLLRepository.IsAdmin(Database, userId); Subject subject = await Database.Subject.GetAsync(item.SubjectId); if (!isAdmin) { return(new OperationDetails(false, "You can't update this subject. It can only be updated by Admin.", "Subject")); } if (subject != null) { // Checking for: does the subject with the same name already exist in DB? IEnumerable <Subject> subjects = Database.Subject.Find(obj => obj.SubjectName.Trim() == item.SubjectName.Trim()); if (subjects.ToList().Count > 0 && item.SubjectName.Trim() != subject.SubjectName.Trim()) { return(new OperationDetails(false, "Subject with the same name has already existed in DB.", "Subject")); } subject.SubjectName = item.SubjectName.Trim(); subject.Description = item.Description?.Trim(); subject.LastModifiedDateTime = DateTime.Now; subject.IsApproved = item.IsApproved; Database.Subject.Update(subject); await Database.SaveAsync(); return(new OperationDetails(true, "Subject updating completed successfully.", "Subject")); } return(new OperationDetails(false, "Subject with this Id doesn't exists.", "Subject")); } catch (Exception ex) { return(new OperationDetails(false, ex.Message, "Subject")); } }
public async Task <OperationDetails> DeleteAsync(int id, string userId) { try { // Checking for: does the current user has a role - "admin"? bool isAdmin = BLLRepository.IsAdmin(Database, userId); int courseId = (await Database.CourseAssignment.GetAsync(id)).CourseId; Course course = await Database.Course.GetAsync(courseId); if (course.UserProfileId != userId && !isAdmin) { return(new OperationDetails(false, "You can't delete this course assignment. This course has been created by other user.", "Course Assignment")); } var courseAssignment = await Database.CourseAssignment.GetAsync(id); if (courseAssignment != null) { try { await Database.CourseAssignment.DeleteAsync(id); await Database.SaveAsync(); } catch (Exception ex) { return(new OperationDetails(false, ex.Message, "")); } return(new OperationDetails(true, "Course assignment deleting completed successfully.", "Course Assignment")); } return(new OperationDetails(false, "Course assignment with this Id doesn't exists. Deleting is impossible.", "Course Assignment")); } catch (Exception ex) { return(new OperationDetails(false, ex.Message, "")); } }
public async Task <OperationDetails> CreateAsync(CourseAssignmentDTO item, string userId) { try { // I. Checks. // Checking for: does the current user has a role - "admin"? bool isAdmin = BLLRepository.IsAdmin(Database, userId); Course course = await Database.Course.GetAsync(item.CourseId); if (course.UserProfileId != userId && !isAdmin) { return(new OperationDetails(false, "You can't create this course assignment. This course has been created by other user.", "Course Assignment")); } if (item.Email == null) { return(new OperationDetails(false, "You haven't selected any Email!", "Course assignment")); } // Checking for: is there this user in the DB? var user = await Database.UserManager.FindByEmailAsync(item.Email); if (user == null) { return(new OperationDetails(false, "User with this Email is absent in DB!", "Course assignment")); } // Assign the found value to property - UserProfileId. item.UserProfileId = user.Id; // Checking for: has a user already been assigned on this course? IEnumerable <CourseAssignment> courseAssignments = Database.CourseAssignment.Find( obj => obj.UserProfileId == item.UserProfileId && obj.CourseId == item.CourseId); if (courseAssignments.Count() > 0) { return(new OperationDetails(false, "This user has already been assigned on this course!", "Course assignment")); } // II. Create a new course assignment. CourseAssignment courseAssignment = new CourseAssignment { UserProfileId = item.UserProfileId, CourseId = item.CourseId, IsApproved = item.IsApproved, AssignmentDate = DateTime.Now }; // Add a moderator role. if (!BLLRepository.IsModerator(Database, item.UserProfileId)) { await Database.UserManager.AddToRoleAsync(item.UserProfileId, "moderator"); } Database.CourseAssignment.Create(courseAssignment); await Database.SaveAsync(); return(new OperationDetails(true, "Course adding completed successfully.", "Course Assignment")); } catch (Exception ex) { return(new OperationDetails(false, ex.Message, "Course Assignment")); } }