Ejemplo n.º 1
0
        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
            }));
        }