public async Task <RequestUserInfo> GetUserInfoByAuthToken(string authToken) { var sessionItems = await mongoContext.GetItemsAsync(MongoDbCollection.activeSessions, new BsonDocument(MongoDbFields.AuthToken, authToken), new[] { MongoDbFields.UserId }); var session = sessionItems.FirstOrDefault(); if (session == null) { return(null); } var users = await mongoContext.GetItemsAsync(MongoDbCollection.users, new BsonDocument(MongoDbFields.Id, session[MongoDbFields.UserId].ToString())); var user = users.FirstOrDefault(); if (user == null) { return(null); } var userEntity = user.ToUser(); return(new RequestUserInfo(userEntity.Id, userEntity.Login, userEntity.CreateTime, userEntity.DVRName)); }
public async Task <IEnumerable <CapturedVideoInfo> > GetVideos(DateTime from, DateTime to, string dvrName, int count) { var videos = await mongoContext.GetItemsAsync(MongoDbCollection.uploadedVideoFiles, new BsonDocument(MongoDbQueryOperators.And, new BsonArray { new BsonDocument(MongoDbFields.VideoStartDateLocal, new BsonDocument(MongoDbQueryOperators.Gte, from)), new BsonDocument(MongoDbFields.VideoStartDateLocal, new BsonDocument(MongoDbQueryOperators.Lte, to)), new BsonDocument(MongoDbFields.DVRName, dvrName) })); if (videos == null || !videos.Any()) { throw new ApplicationException($"Videos for {dvrName} in {from} - {to} were not found."); } var videosFromDb = videos.TakeLast(count).Select(x => x.ToUploadedVideoFile()); return(videosFromDb.Select(x => new CapturedVideoInfo { CameraName = x.CameraName, Date = x.VideoStartDateLocal, UrlPath = x.FilePath })); }