/// <summary> /// проверяем в темповой колекции наявность этого обьекта, /// если нету, то создаем новый и помещаем в темповую колекцию, /// если есть, то проверяем на навяность заполненых свойств и дописуем которых нет /// и в конце передаем на проверку полного обьекта /// </summary> public static void CreateLog(string messageId, DateTime requestDate, string request, DateTime responseDate, string response, LogFile logFile) { var isEmpty = @"{""isEmpty"":true}"; var log = TempLogsList.FirstOrDefault(o => o.MessageId == messageId); if (log == null) { var newlog = new Log() { MessageId = messageId, RequestDate = requestDate, Request = request != "" ? BsonDocument.Parse(request) : BsonDocument.Parse(isEmpty), Response = response != "" ? BsonDocument.Parse(response) : BsonDocument.Parse(isEmpty), ResponseDate = responseDate, LogFileId = logFile.Id }; TempLogsList.Add(newlog); } else if (request != "") { log.RequestDate = requestDate; log.Request = request != "" ? BsonDocument.Parse(request) : BsonDocument.Parse(isEmpty); } else if (response != "") { log.ResponseDate = responseDate; log.Response = response != "" ? BsonDocument.Parse(response) : BsonDocument.Parse(isEmpty); } if (log != null) { RemovefromTempList(log); } }
/// <summary> /// проверка на полноту обьекта, если полный, /// то переносим в главнуюю колекцию, которая будет идти в БД, /// а с темповой удаляем /// </summary> private static void RemovefromTempList(Log log) { if (log.MessageId != "" && log.Request != "" && log.Response != "") { LogsList.Add(log); TempLogsList.Remove(log); } }