Пример #1
0
        public R <(IPlaylist list, string id), LocalStr> GetPlaylist(string listId)
        {
            var checkName = Util.IsSafeFileName(listId);

            if (!checkName.Ok)
            {
                return(checkName.Error);
            }

            if (!database.TryGet(listId, out var id, out var list))
            {
                return(ErrorListNotFound(listId));
            }
            return(list, id);
        }
Пример #2
0
        public R <(Playlist list, string id), LocalStr> ReadFull(string listId)
        {
            lock (ioLock) {
                var id = ToRealId(listId);

                if (playlistCache.TryGet(id, out Playlist list))
                {
                    return(list, id);
                }

                var result = ReadFullFromFile(IdToFile(id));

                if (!result.Ok)
                {
                    return(result.Error);
                }

                playlistCache.Update(id, result.Value.list);
                return(result.Value.list, id);
            }
        }