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");
            }
        }
Example #3
0
        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"));
            }
        }
Example #4
0
        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");
            }
        }
Example #7
0
        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)));
        }
Example #9
0
        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"));
            }
        }
Example #12
0
        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"));
            }
        }
Example #13
0
        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");
     }
 }
Example #20
0
        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"));
            }
        }
Example #26
0
        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, ""));
            }
        }
Example #27
0
        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"));
            }
        }