//------------------------------------------------------------------------------
// <auto-generated>
//     此代码由工具生成。
//     运行时版本:4.0.30319.42000
//
//     对此文件的更改可能会导致不正确的行为，并且如果
//     重新生成代码，这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------

namespace PushPlatform.Common.SmsService {
    
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ServiceModel.ServiceContractAttribute(ConfigurationName="SmsService.ISMSService")]
    public interface ISMSService {
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISMSService/SendMessage", ReplyAction="http://tempuri.org/ISMSService/SendMessageResponse")]
        int SendMessage(System.Guid ProjectID, string Mobile, string SendContext, System.Nullable<System.DateTime> SendDate);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISMSService/SendMessage", ReplyAction="http://tempuri.org/ISMSService/SendMessageResponse")]
        System.Threading.Tasks.Task<int> SendMessageAsync(System.Guid ProjectID, string Mobile, string SendContext, System.Nullable<System.DateTime> SendDate);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISMSService/SendMessageForWait", ReplyAction="http://tempuri.org/ISMSService/SendMessageForWaitResponse")]
        int SendMessageForWait(System.Guid id);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISMSService/SendMessageForWait", ReplyAction="http://tempuri.org/ISMSService/SendMessageForWaitResponse")]
        System.Threading.Tasks.Task<int> SendMessageForWaitAsync(System.Guid id);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISMSService/SendEmail", ReplyAction="http://tempuri.org/ISMSService/SendEmailResponse")]
        int SendEmail(System.Guid projectId, string recipients, string content, System.Nullable<System.DateTime> sendDate);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISMSService/SendEmail", ReplyAction="http://tempuri.org/ISMSService/SendEmailResponse")]
        System.Threading.Tasks.Task<int> SendEmailAsync(System.Guid projectId, string recipients, string content, System.Nullable<System.DateTime> sendDate);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISMSService/ValidateMessage", ReplyAction="http://tempuri.org/ISMSService/ValidateMessageResponse")]
        bool ValidateMessage(System.Guid ProjectID, string Mobile, string Message);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISMSService/ValidateMessage", ReplyAction="http://tempuri.org/ISMSService/ValidateMessageResponse")]
        System.Threading.Tasks.Task<bool> ValidateMessageAsync(System.Guid ProjectID, string Mobile, string Message);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISMSService/pushMessageToApp", ReplyAction="http://tempuri.org/ISMSService/pushMessageToAppResponse")]
        string pushMessageToApp(System.Guid projectId, string[] phoneTypeList, int templateType, string templateTitle, string templateBody, string templateTransmissionContent);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISMSService/pushMessageToApp", ReplyAction="http://tempuri.org/ISMSService/pushMessageToAppResponse")]
        System.Threading.Tasks.Task<string> pushMessageToAppAsync(System.Guid projectId, string[] phoneTypeList, int templateType, string templateTitle, string templateBody, string templateTransmissionContent);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISMSService/PushMessageToList", ReplyAction="http://tempuri.org/ISMSService/PushMessageToListResponse")]
        string PushMessageToList(System.Guid projectId, string[] phoneTypeList, string[] clientIds, int templateType, string templateTitle, string templateBody, string templateTransmissionContent);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISMSService/PushMessageToList", ReplyAction="http://tempuri.org/ISMSService/PushMessageToListResponse")]
        System.Threading.Tasks.Task<string> PushMessageToListAsync(System.Guid projectId, string[] phoneTypeList, string[] clientIds, int templateType, string templateTitle, string templateBody, string templateTransmissionContent);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISMSService/PushMessageToSingle", ReplyAction="http://tempuri.org/ISMSService/PushMessageToSingleResponse")]
        string PushMessageToSingle(System.Guid projectId, string[] phoneTypeList, string clientId, int templateType, string templateTitle, string templateBody, string templateTransmissionContent);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISMSService/PushMessageToSingle", ReplyAction="http://tempuri.org/ISMSService/PushMessageToSingleResponse")]
        System.Threading.Tasks.Task<string> PushMessageToSingleAsync(System.Guid projectId, string[] phoneTypeList, string clientId, int templateType, string templateTitle, string templateBody, string templateTransmissionContent);
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public interface ISMSServiceChannel : PushPlatform.Common.SmsService.ISMSService, System.ServiceModel.IClientChannel {
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class SMSServiceClient : System.ServiceModel.ClientBase<PushPlatform.Common.SmsService.ISMSService>, PushPlatform.Common.SmsService.ISMSService {
        
        public SMSServiceClient() {
        }
        
        public SMSServiceClient(string endpointConfigurationName) : 
                base(endpointConfigurationName) {
        }
        
        public SMSServiceClient(string endpointConfigurationName, string remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public SMSServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public SMSServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(binding, remoteAddress) {
        }
        
        public int SendMessage(System.Guid ProjectID, string Mobile, string SendContext, System.Nullable<System.DateTime> SendDate) {
            return base.Channel.SendMessage(ProjectID, Mobile, SendContext, SendDate);
        }
        
        public System.Threading.Tasks.Task<int> SendMessageAsync(System.Guid ProjectID, string Mobile, string SendContext, System.Nullable<System.DateTime> SendDate) {
            return base.Channel.SendMessageAsync(ProjectID, Mobile, SendContext, SendDate);
        }
        
        public int SendMessageForWait(System.Guid id) {
            return base.Channel.SendMessageForWait(id);
        }
        
        public System.Threading.Tasks.Task<int> SendMessageForWaitAsync(System.Guid id) {
            return base.Channel.SendMessageForWaitAsync(id);
        }
        
        public int SendEmail(System.Guid projectId, string recipients, string content, System.Nullable<System.DateTime> sendDate) {
            return base.Channel.SendEmail(projectId, recipients, content, sendDate);
        }
        
        public System.Threading.Tasks.Task<int> SendEmailAsync(System.Guid projectId, string recipients, string content, System.Nullable<System.DateTime> sendDate) {
            return base.Channel.SendEmailAsync(projectId, recipients, content, sendDate);
        }
        
        public bool ValidateMessage(System.Guid ProjectID, string Mobile, string Message) {
            return base.Channel.ValidateMessage(ProjectID, Mobile, Message);
        }
        
        public System.Threading.Tasks.Task<bool> ValidateMessageAsync(System.Guid ProjectID, string Mobile, string Message) {
            return base.Channel.ValidateMessageAsync(ProjectID, Mobile, Message);
        }
        
        public string pushMessageToApp(System.Guid projectId, string[] phoneTypeList, int templateType, string templateTitle, string templateBody, string templateTransmissionContent) {
            return base.Channel.pushMessageToApp(projectId, phoneTypeList, templateType, templateTitle, templateBody, templateTransmissionContent);
        }
        
        public System.Threading.Tasks.Task<string> pushMessageToAppAsync(System.Guid projectId, string[] phoneTypeList, int templateType, string templateTitle, string templateBody, string templateTransmissionContent) {
            return base.Channel.pushMessageToAppAsync(projectId, phoneTypeList, templateType, templateTitle, templateBody, templateTransmissionContent);
        }
        
        public string PushMessageToList(System.Guid projectId, string[] phoneTypeList, string[] clientIds, int templateType, string templateTitle, string templateBody, string templateTransmissionContent) {
            return base.Channel.PushMessageToList(projectId, phoneTypeList, clientIds, templateType, templateTitle, templateBody, templateTransmissionContent);
        }
        
        public System.Threading.Tasks.Task<string> PushMessageToListAsync(System.Guid projectId, string[] phoneTypeList, string[] clientIds, int templateType, string templateTitle, string templateBody, string templateTransmissionContent) {
            return base.Channel.PushMessageToListAsync(projectId, phoneTypeList, clientIds, templateType, templateTitle, templateBody, templateTransmissionContent);
        }
        
        public string PushMessageToSingle(System.Guid projectId, string[] phoneTypeList, string clientId, int templateType, string templateTitle, string templateBody, string templateTransmissionContent) {
            return base.Channel.PushMessageToSingle(projectId, phoneTypeList, clientId, templateType, templateTitle, templateBody, templateTransmissionContent);
        }
        
        public System.Threading.Tasks.Task<string> PushMessageToSingleAsync(System.Guid projectId, string[] phoneTypeList, string clientId, int templateType, string templateTitle, string templateBody, string templateTransmissionContent) {
            return base.Channel.PushMessageToSingleAsync(projectId, phoneTypeList, clientId, templateType, templateTitle, templateBody, templateTransmissionContent);
        }
    }
}
