using System.IO;
using System.ServiceModel;
using System.ServiceModel.Web;

[ServiceContract]
public interface IDMT
{
    [OperationContract]
    //Add WebInvoke attribute due to it is necessary to use multiple parametters in the method definition.
    [WebInvoke(
        Method = "POST",
        RequestFormat = WebMessageFormat.Json,
        ResponseFormat = WebMessageFormat.Json,
        BodyStyle = WebMessageBodyStyle.Wrapped,
        UriTemplate = "/DownloadSource")]
    Stream DownloadSource(Stream parameters);


    [OperationContract]
    //Add WebInvoke attribute due to it is necessary to use multiple parametters in the method definition.
    [WebInvoke(
        Method = "POST", 
        RequestFormat = WebMessageFormat.Json, 
        ResponseFormat = WebMessageFormat.Json,
        BodyStyle = WebMessageBodyStyle.Wrapped,
        UriTemplate = "/SaveSource")]
    Stream SaveSource(Stream parameters);


    [OperationContract]
    //Add WebInvoke attribute due to it is necessary to use multiple parametters in the method definition.
    [WebInvoke(
        Method = "POST",
        RequestFormat = WebMessageFormat.Json,
        ResponseFormat = WebMessageFormat.Json,
        BodyStyle = WebMessageBodyStyle.Wrapped,
        UriTemplate = "/RemoveScript")]
    Stream RemoveScript(Stream parameters);

    [OperationContract]
    //Add WebInvoke attribute due to it is necessary to use multiple parametters in the method definition.
    [WebInvoke(
        Method = "POST",
        RequestFormat = WebMessageFormat.Json,
        ResponseFormat = WebMessageFormat.Json,
        BodyStyle = WebMessageBodyStyle.Wrapped,
        UriTemplate = "/RemoveSourceFiles")]
    Stream RemoveSourceFiles(Stream parameters);

    
    [OperationContract]
    //Add WebInvoke attribute due to it is necessary to use multiple parametters in the method definition.
    [WebInvoke(
        Method = "POST", 
        RequestFormat = WebMessageFormat.Json, 
        ResponseFormat = WebMessageFormat.Json,
        BodyStyle = WebMessageBodyStyle.Wrapped,
        UriTemplate = "/UploadSourceFiles")]
    Stream UploadSourceFiles(Stream parameters);
}
