Мне нужно сделать метод, который меняет статус с ложного на истинный в моем MongoDB C # - PullRequest
1 голос
/ 20 мая 2019

Я создаю новый веб-сайт для внутреннего использования, где я делаю метод, который изменяет статус с False на True в моем MongoDB. Прямо сейчас он говорит «IsClosed: false», если запрос все еще имеет активный доступ, когда мой планировщик обнаружил, что он прошел в течение расчетного времени, он должен отозвать свой доступ и изменить статус с «False» на «True» .

Это новая система, которая предоставляет и аннулирует доступ к нашим базам данных и нашим серверам, где наш менеджер должен одобрить его, а затем у нас есть планировщик, который содержит права на отзыв и предоставление доступа пользователям

 public static List<RequestAccess> CloseRequests(string requestId)
        {
            var filter = Builders<RequestAccess>.Filter;
            var idfilter = filter.Eq(x => x._id, ObjectId.Parse(requestId));
            var updater = Builders<RequestAccess>.Update;
            var isClosedUpdater = updater.Set(x => x.IsClosed, true);

            var list = RequestCollection.UpdateMany(idfilter, isClosedUpdater);

            return list;
        }

Это мое предположение о том, как это сделать, но я не уверен, правильно ли это или что-то еще

Изменить статус с False на True

Ошибки ??: "Невозможно преобразовать тип выражения 'MongoDB.Driver.UpdateResult' в тип возвращаемого значения 'SystemCollections.Generic.List'

1 Ответ

0 голосов
/ 21 мая 2019

Я бы хотел предложить решение с использованием MongoDB.Entities библиотеки-оболочки. с его помощью делать такие вещи очень просто.

using MongoDB.Entities;

namespace StackOverflow
{
    public class RequestAccess : Entity
    {
        public bool IsClosed { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            new DB("test");

            var result = CloseRequest("xxxxxxx");
        }

        public static RequestAccess CloseRequest(string requestId)
        {
            DB.Update<RequestAccess>()
              .Match(x => x.ID == requestId)
              .Set(x => x.IsClosed, true)
              .Execute();

            return DB.Find<RequestAccess>(requestId);
        }
    }
}

Я думаю, что код не требует пояснений. если вам нужны дальнейшие разъяснения, дайте мне знать. удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...