Верните статус с true на false после редактирования в .Net Core

#asp.net-core #repository-pattern #asp.net-core-identity

Вопрос:

Я использую .Net Core 5

У меня есть пример: Статус сообщения будет True: Одобрено и False: Ожидание.

Когда я публикую сообщение и оно одобрено, я хочу отредактировать свое сообщение, а затем вернуть его обратно в значение False: Ожидание.

Так в чем же здесь решение? Вы не могли бы мне помочь?

Я обновлю свой код ниже:

Отправить Статью

 public ArticleFacultyViewModel SubmitArticle(ArticleFacultyViewModel articleFacultyViewModel)
    {
        var doesArticleExists = _dbContext.Articles.Include(a => a.Faculty)
            .Where(a => a.Title == articleFacultyViewModel.Article.Title amp;amp;
                        a.Faculty.Id == articleFacultyViewModel.Article.FacultyId);

        if (doesArticleExists.Any())
        {
            // Message
        }
        else
        {
            var activeSemester = _semesterRepository.GetActiveSemester();
            var articleResult = _dbContext.Articles.Add(articleFacultyViewModel.Article);
            _dbContext.SaveChanges();
            _semesterRepository.AddArticleSemester(articleResult.Entity.Id, activeSemester.Id);
            return null;
        }

        var model = new ArticleFacultyViewModel
        {
            Article = articleFacultyViewModel.Article,
            Faculties = _dbContext.Faculties.ToList(),
            StatusMessage = "Error: Article already exists in "   _dbContext.Faculties
                .SingleOrDefault(f => f.Id == articleFacultyViewModel.Article.FacultyId).FacultyName.ToString()
        };

        return model;
    }
 

Ответ №1:

Статус статьи разрешен мной моему менеджеру, они рассмотрят и утвердят (Верно) для нее или Отклонят (Ложно) в представлении Deltail этой статьи. Значение по умолчанию для статьи при отправке равно False

Похоже, вы хотите изменить статус статьи в методе редактирования статей, верно? Если это так, то после поиска существующей статьи из базы данных вы можете изменить статус, затем вызовите метод SaveChanges() для сохранения изменений, после этого вам также следует изменить статус статьи в модели представления ArticleFacultyViewModel.

Попробуйте выполнить следующие действия, чтобы изменить свой код:

 public ArticleFacultyViewModel EditArticle(ArticleFacultyViewModel articleFacultyViewModel)
    {
        var doesArticleExists = _dbContext.Articles.Include(a => a.Faculty)
            .Where(a => a.Title == articleFacultyViewModel.Article.Title amp;amp;
                        a.Faculty.Id == articleFacultyViewModel.Article.FacultyId);
        var articleInDb = GetArticleById(articleFacultyViewModel.Article.Id);
        if (doesArticleExists.Any() amp;amp; articleInDb.Title != articleFacultyViewModel.Article.Title)
        {
            //if find the exist article
            //change the article status.
            doesArticleExists.FirstOrDefault().status = true;
            //call the SaveChanges method to save changes.
            _dbContext.SaveChanges();             

            //change article's status in the ArticleFacultyViewModel     
            articleFacultyViewModel.Article.Status = true;


            // Message
        }
        else
        {
            articleInDb.Title = articleFacultyViewModel.Article.Title;
            articleInDb.Content = articleFacultyViewModel.Article.Content;

            _dbContext.SaveChanges();
            return null;
        }

        var model = new ArticleFacultyViewModel
        {
            Article = articleFacultyViewModel.Article,
            Faculties = _dbContext.Faculties.ToList(),
            StatusMessage = "Error: Article already exists in "   _dbContext.Faculties
                .SingleOrDefault(f => f.Id == articleFacultyViewModel.Article.FacultyId).FacultyName.ToString()
        };

        return model;
    }
 

Комментарии:

1. @HuyNguyen, пожалуйста, проверьте обновленное содержимое, после поиска существующей статьи из базы данных вы можете изменить статус, затем вызовите метод SaveChanges() для сохранения изменений, после этого вам также следует изменить статус статьи в модели представления ArticleFacultyViewModel.