/// <summary> /// Помещает логи в MongoDB. /// </summary> /// <param name="logs">Коллекция с логами.</param> public void InsertLog(List <Log> logs) { if (CheckMongoConnection().Result) { if (logs.Count <= 0) { return; } var logCollection = _database.GetCollection <BsonDocument>("logCollection"); var bsonLogs = logs.Select(log => new BsonDocument { { "Date", log.Date }, { "Message", log.Message }, { "LogType", log.LogType } }).ToList(); logCollection.InsertMany(bsonLogs); } else { Console.Error.WriteLineAsync(@"Не удалось вставить лог! Отсутствует подключение к серверу MongoDb!"); LogViewModel.AddNewLog("Не удалось подключиться к серверу MongoDb! Сохранение логов не производится!", DateTime.Now, LogType.Error); } }
/// <summary> /// Смена базы данных MongoDB. /// </summary> /// <param name="databaseName">Название базы данных в сервере MongoDB.</param> public void ChooseDatabase(string databaseName) { if (CheckMongoConnection().Result) { _database = _client.GetDatabase(databaseName); } else { LogViewModel.AddNewLog("Не удалось подключиться к серверу MongoDb! Не удалось выбрать БД!", DateTime.Now, LogType.Error); } }
/// <summary> /// Асинхронно получает все логи из MongoDB. /// </summary> /// <returns>Коллекция с логами приложения за все время.</returns> public async Task <List <Log> > GetAllLogsAsync() { if (await CheckMongoConnection()) { var logCollection = _database.GetCollection <Log>("logCollection"); var logsFromDb = await logCollection.FindAsync(new BsonDocument()); return(logsFromDb.ToList()); } LogViewModel.AddNewLog("Не удалось подключиться к серверу MongoDb! Не удалось извлечь логи!", DateTime.Now, LogType.Error); return(null); }
/// <summary> /// Вставляет документ в MongoDB. /// </summary> /// <param name="document">Документ типа Document.</param> public void InsertDocument(Document document) { if (document != null) { InsertFileData(document.DocumentName, document.DocumentPath, document.DocumentType); InsertDocumentData(document.DocumentHash, document.DocumentAuthor, document.DocumentAuthorGroup, document.DocumentTfVector, document.AddTime, document.DocumentTokens); UpdateOrInsertIdfVector(DocumentActions.MakeIdfVector(document.DocumentTfVector)); LogViewModel.AddNewLog("Документ " + document.DocumentName + " добавлен!", DateTime.Now); } else { LogViewModel.AddNewLog("Документ не был передан для вставки!", DateTime.Now, LogType.Error); } }