Exemple #1
0
        public List <(string filePath, VrcMetaData vrcMetaData)> GetVrcMetaDataIfExists(IEnumerable <string> filePaths)
        {
            using (asyncLock.Lock())
            {
                var photos = Photos
                             .Select(p => new
                {
                    p.FilePath,
                    p.World,
                    p.Date,
                    p.Photographer,
                    p.PhotoUsers,
                })
                             .Where(p => filePaths.Contains(p.FilePath))
                             .ToList();

                var results = new List <(string filePath, VrcMetaData vrcMetaData)>();

                foreach (var photo in photos)
                {
                    var filePath    = photo.FilePath;
                    var vrcMetaData = new VrcMetaData
                    {
                        World        = photo.World?.WorldName,
                        Date         = photo.Date,
                        Photographer = photo.Photographer?.UserName
                    };

                    foreach (var(userName, twitterScreenName) in photo.PhotoUsers.Select(pu => (pu.User.UserName, pu.User.TwitterScreenName)))
                    {
                        var user = new KoyashiroKohaku.VrcMetaTool.User(userName)
                        {
                            TwitterScreenName = twitterScreenName
                        };

                        vrcMetaData.Users.Add(user);
                    }

                    results.Add((filePath, vrcMetaData));
                }

                return(results);
            }
        }
Exemple #2
0
        public async Task <List <(string filePath, VrcMetaData vrcMetaData)> > GetVrcMetaDataIfExistsAsync(IEnumerable <string> filePaths)
        {
            var photos = await Photos
                         .Select(p =>
                                 new
            {
                p.FilePath,
                p.World,
                p.Date,
                p.Photographer,
                p.PhotoUsers
            })
                         .ToListAsync()
                         .ConfigureAwait(true);

            var results = new List <(string filePath, VrcMetaData vrcMetaData)>();

            foreach (var photo in photos)
            {
                var filePath    = photo.FilePath;
                var vrcMetaData = new VrcMetaData
                {
                    World        = photo.World?.WorldName,
                    Date         = photo.Date,
                    Photographer = photo.Photographer?.UserName
                };

                foreach (var(userName, twitterScreenName) in photo.PhotoUsers.Select(pu => (pu.User.UserName, pu.User.TwitterScreenName)))
                {
                    var user = new KoyashiroKohaku.VrcMetaTool.User(userName)
                    {
                        TwitterScreenName = twitterScreenName
                    };

                    vrcMetaData.Users.Add(user);
                }

                results.Add((filePath, vrcMetaData));
            }

            return(results);
        }