using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using EQNetwork.Objects;
using EQNetwork.Interfaces;
using EQNetwork.Utility;

namespace EQNetwork.Services
{
    public partial class ContentFileService : IContentFileService
    {
        public EQTask Get(int contentFileId, Action<ContentFile, EQException> onComplete) { return _api.ContentFile_Get(contentFileId, onComplete); }
        public EQTask Get(string filename, Action<ContentFile, EQException> onComplete) { return _api.ContentFile_Get(filename, onComplete); }

        public EQTask Create(ContentFile contentFile, Action<ContentFile, EQException> onComplete) { return _api.ContentFile_Create(contentFile, onComplete); }
        public EQTask CreateFromUrl(ContentFile contentFile, string url, Action<ContentFile, EQException> onComplete) { return _api.ContentFile_CreateFromUrl(contentFile, url, onComplete); }

        public EQTask Update(ContentFile contentFile, Action<ContentFile, EQException> onComplete) { return _api.ContentFile_Update(contentFile, onComplete); }
        public EQTask UpdateSortBy(int contentFileId, float? sortBy, Action<EQException> onComplete) { return _api.ContentFile_UpdateSortBy(contentFileId, sortBy, onComplete); }

        public EQTask Delete(ContentFile contentFile, Action<EQException> onComplete) { return _api.ContentFile_Delete(contentFile, onComplete); }
        public EQTask Delete(int contentFileId, Action<EQException> onComplete) { return _api.ContentFile_Delete(contentFileId, onComplete); }

        public EQTask ChangeCollection(int contentFileId, int old_CollectionId, int new_CollectionId, Action<EQException> onComplete) { return _api.ContentFile_ChangeCollection(contentFileId, old_CollectionId, new_CollectionId, onComplete); }
        public EQTask FlagAsInappropriate(int contentFileId, Action<EQException> onComplete) { return _api.ContentFile_FlagAsInappropriate(contentFileId, onComplete); }

        public EQTask ListPosts(string filename, PagingParameters pagingParameters, Action<List<Post>, bool, EQException> onComplete) { return _api.ContentFile_ListPosts(filename, pagingParameters, onComplete); }

        public EQTask SocialAdd(int contentFileId, string action, Db.SocialService? exclude, bool? force, Action<EQException> onComplete) { return _api.ContentFile_SocialAdd(contentFileId, action, exclude, force, onComplete); }
        public EQTask SocialRemove(int contentFileId, string action, bool? force, Action<EQException> onComplete) { return _api.ContentFile_SocialRemove(contentFileId, action, force, onComplete); }

        public EQTask MarkAsViewed(int contentFileId, Action<EQException> onComplete) { return _api.ContentFile_Viewed(contentFileId, onComplete); }
    }
}
