Пример #1
0
 private void ValidateRequestSettings(IRequestSettings <T> config, Common.Utils.IContactRequest typeRequest)
 {
     TypeSwitch.Do(
         config.mailingProvider,
         TypeSwitch.Case <IIContactRequest>(() => { IContactValidateRequestSettings(config, typeRequest); }),
         TypeSwitch.Default(() => { }));
 }
Пример #2
0
        public HttpClient GetHttpClient(IRequestSettings <T> config, Common.Utils.IContactRequest typeRequest)
        {
            HttpClient client = new HttpClient();

            string username    = requestFrm.ApiUserName == string.Empty ? throw new ArgumentException("[Username] not found in settings, this key es required.") : requestFrm.ApiUserName;
            string password    = requestFrm.ApiUserPassword == string.Empty ? throw new ArgumentException("[Password] not found in settings, this key es required.") : requestFrm.ApiUserPassword;
            string apiversion  = requestFrm.ApiVersion == string.Empty ? throw new ArgumentException("[API-Version] not found in settings, this key es required.") : requestFrm.ApiVersion;
            string appid       = requestFrm.ApiAppId == string.Empty ? throw new ArgumentException("[API-AppId] not found in settings, this key es required.") : requestFrm.ApiAppId;
            string accept      = config.accept == string.Empty ? throw new ArgumentException("[Accept] not found in settings, this key es required.") : config.accept;
            string contenttype = config.contentType == string.Empty ? throw new ArgumentException("[contentType] not found in settings, this key es required.") : config.contentType;

            AuthenticationHeaderValue authorization = new AuthenticationHeaderValue(
                "Basic",
                Convert.ToBase64String(
                    System.Text.ASCIIEncoding.ASCII.GetBytes(
                        string.Format("{0}:{1}", username, password))));

            //Todo
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(contenttype));
            client.DefaultRequestHeaders.Add("Username", username);
            client.DefaultRequestHeaders.Add("Password", password);
            client.DefaultRequestHeaders.Add("API-Version", apiversion);
            client.DefaultRequestHeaders.Add("API-AppId", appid);
            client.DefaultRequestHeaders.Add("Accept", accept);
            client.DefaultRequestHeaders.Add("API-Username", username);
            client.DefaultRequestHeaders.Add("API-Password", password);
            client.DefaultRequestHeaders.Authorization = authorization;



            return(client);
        }
Пример #3
0
        public string GetUriRequest(Common.Utils.IContactRequest typeRequest, IRequestSettings <T> config, Common.Partners.IContact.IContactRequest requestFrmOuter)
        {
            requestFrm = requestFrmOuter;
            string uri = CreatetUriRequest(config.mailingProvider, typeRequest);

            return(uri);
        }
Пример #4
0
        public HttpWebRequest GetWebRequest(Common.Utils.IContactRequest typeRequest, IRequestSettings <T> config, Common.Partners.IContact.IContactRequest requestFrmOuter)
        {
            requestFrm = requestFrmOuter;
            ValidateRequestSettings(config, typeRequest);
            string         uri     = CreatetUriRequest(config.mailingProvider, typeRequest);
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);

            ConfigureRequest(request, config);
            return(request);
        }
Пример #5
0
        private string IContactCreatetUriRequest(T providerSettings, Common.Utils.IContactRequest typeRequest)
        {
            switch (typeRequest)
            {
            case Common.Utils.IContactRequest.AddCampaign:
            {
                return(CreateIContactPostCampaignRequest(providerSettings));
            }

            case Common.Utils.IContactRequest.AddMessage:
            {
                return(CreateIContactPostMessageRequest(providerSettings));
            }

            case Common.Utils.IContactRequest.AddSends:
            {
                return(CreateIContactPostSendsRequest(providerSettings));
            }

            case Common.Utils.IContactRequest.GetCamapign:
            {
                return(CreateIContactGetCampaignRequest(providerSettings));
            }

            case Common.Utils.IContactRequest.GetLists:
            {
                return(CreateIContactGetListsRequest(providerSettings));
            }

            case Common.Utils.IContactRequest.GetMessage:
            {
                return(CreateIContactGetMessageRequest(providerSettings));
            }

            case Common.Utils.IContactRequest.GetSends:
            {
                return(CreateIContactGetSendsRequest(providerSettings));
            }

            case IContactRequest.GetUsers:
            {
                return(CreateIContactGetUsersRequest(providerSettings));
            }

            case IContactRequest.GetFolders:
            {
                return(CreateIContactGetFolderRequest(providerSettings));
            }

            default:
            {
                return(string.Empty);
            }
            }
        }
Пример #6
0
        private string CreatetUriRequest(T mailingProvider, Common.Utils.IContactRequest typeRequest)
        {
            string uri = string.Empty;

            TypeSwitch.Do(
                mailingProvider,
                TypeSwitch.Case <IIContactRequest>(() => { uri = IContactCreatetUriRequest(mailingProvider, typeRequest); }),
                TypeSwitch.Default(() => { uri = string.Empty; }));

            return(uri);
        }
Пример #7
0
        private void IContactValidateRequestSettings(IRequestSettings <T> config, Common.Utils.IContactRequest typeRequest)
        {
            //Tem var
            string username    = requestFrm.ApiUserName == string.Empty ? throw new ArgumentException("[Username] not found in settings, this key es required.") : requestFrm.ApiUserName;
            string password    = requestFrm.ApiUserPassword == string.Empty ? throw new ArgumentException("[Password] not found in settings, this key es required.") : requestFrm.ApiUserPassword;
            string apiversion  = requestFrm.ApiVersion == string.Empty ? throw new ArgumentException("[API-Version] not found in settings, this key es required.") : requestFrm.ApiVersion;
            string appid       = requestFrm.ApiAppId == string.Empty ? throw new ArgumentException("[API-AppId] not found in settings, this key es required.") : requestFrm.ApiAppId;
            string accept      = config.accept == string.Empty ? throw new ArgumentException("[Accept] not found in settings, this key es required.") : config.accept;
            string contenttype = config.contentType == string.Empty ? throw new ArgumentException("[contentType] not found in settings, this key es required.") : config.contentType;

            //checar que no esten las claves.
            if (config.headers.ContainsKey("Username") == false)
            {
                config.headers.Add("Username", username);
            }
            if (config.headers.ContainsKey("Password") == false)
            {
                config.headers.Add("Password", password);
            }
            if (config.headers.ContainsKey("API-Version") == false)
            {
                config.headers.Add("API-Version", apiversion);
            }
            if (config.headers.ContainsKey("API-AppId") == false)
            {
                config.headers.Add("API-AppId", appid);
            }
            if (config.headers.ContainsKey("Accept") == false)
            {
                config.headers.Add("Accept", accept);
            }
            if (config.headers.ContainsKey("contentType") == false)
            {
                config.headers.Add("contentType", contenttype);
            }

            if (
                typeRequest == Common.Utils.IContactRequest.AddMessage ||
                typeRequest == Common.Utils.IContactRequest.AddSends)
            {
                if (config.data == string.Empty)
                {
                    throw new ArgumentException("[Data] not found in settings, this key es required.");
                }

                config.method = "POST";
            }
            else if (typeRequest == Common.Utils.IContactRequest.AddCampaign)
            {
                config.method = "POST";
            }
            else
            {
                config.method = "GET";
            }

            // Config
            string method = config.method == string.Empty ? throw new ArgumentException("[Method] not found in settings, this key es required.") : config.method;

            config.authorization = string.Format("{0} {1}", username, password);
            if (config.headers.ContainsKey("Method") == false)
            {
                config.headers.Add("Method", method);
            }
        }