using System;
using System.ServiceModel;

using BS.Shared.DataContracts;
using DevExpress.XtraReports.UI;

namespace BeWo.Service.ServiceContracts
{
    [ServiceContract]
    public interface IDownloadService
    {
        [FaultContract(typeof(BeWoFault))]
        [OperationContract]
        string PrepareExcelFile(string pFileID, string[] pHeaderCaption, string[][] pContent);

        [FaultContract(typeof(BeWoFault))]
        [OperationContract]
        string PrepareExcelFileCustomerExport(string pFileID, long[] pSortedOids);

        [FaultContract(typeof(BeWoFault))]
        [OperationContract]
        string PrepareExcelFileEmployeeExport(string pFileID, long[] pSortedOids);

        [FaultContract(typeof(BeWoFault))]
        [OperationContract]
        string PrepareExcelFileOrganisationExport(string pFileID, long[] pSortedOids);

        [FaultContract(typeof(BeWoFault))]
        [OperationContract]
        string PrepareExcelFilePersonExport(string pFileID, long[] pSortedOids);

        [FaultContract(typeof(BeWoFault))]
        [OperationContract]
        string PrepareExcelFileSupportConceptExport(string pFileID, long[] pSortedOids);

        [FaultContract(typeof(BeWoFault))]
        [OperationContract]
        string PrepareExcelFileTeamExport(string pFileID, long[] pSortedOids);

        [FaultContract(typeof(BeWoFault))]
        [OperationContract]
        string PrepareExcelFileUserExport(string pFileID, long[] pSortedOids);

        [FaultContract(typeof(BeWoFault))]
        [OperationContract]
        string PrepareExcelFileUserGroupExport(string pFileID, long[] pSortedOids);

        // [FaultContract(typeof(BeWoFault))]
        // [OperationContract]
        // bool ConvertAndStoreFlowDocument(string pFileID, string pFlowDocumentXaml);
        [FaultContract(typeof(BeWoFault))]
        [OperationContract]
        RssFeed ReadRssFeed(string url);

        [FaultContract(typeof(BeWoFault))]
        [OperationContract]
        String CreateTemporaryToken(string link, bool noExpiration);

        [FaultContract(typeof (BeWoFault))]
        [OperationContract]
        FileAttachmentDC GetFileAttachment(long oid);
    }
}