using System.Collections.Generic;
using System.ServiceModel;

using BS.Shared.DataContracts;

namespace BeWo.Service.ServiceContracts
{
    [ServiceContract]
    public interface IMailService
    {
        // [FaultContract(typeof(BeWoFault))]
        // [OperationContract]
        // void DeleteMail(long pOid, long pVersion);
        [FaultContract(typeof(BeWoFault))]
        [OperationContract]
        void DeleteMail(long pEmployeeOid, MailDC pMail);

        [FaultContract(typeof(BeWoFault))]
        [OperationContract]
        List<MailDC> GetIncomingMails(long pEmployeeOid);

        [FaultContract(typeof(BeWoFault))]
        [OperationContract]
        List<MailDC> GetOutgoingMails(long pEmployeeOid);

        [FaultContract(typeof(BeWoFault))]
        [OperationContract]
        void MoveMailToRecycleBin(long pEmployeeOid, MailDC pMail);

        [FaultContract(typeof(BeWoFault))]
        [OperationContract]
        long SendMail(MailDC pMail);

        [FaultContract(typeof (BeWoFault))]
        [OperationContract]
        bool SendEMail(string subject, string body);

		[FaultContract(typeof(BeWoFault))]
		[OperationContract]
		bool SendEMailWithSender(string senderName, string senderEMail, string subject, string body);
    }
}