public bool ListIsValid(string idCampaign) { bool result = false; try { // todo IResponse response = new IContactPostSendsResponse(); var settings = GetProductSettingEntity(idCampaign); IContactRequest requestFrm = FillIContactRequest(settings); config.mailingProvider = requestFrm; HttpWebRequest request = GetRequest(Common.Utils.IContactRequest.GetLists, config, requestFrm); response = GetResponse(request); if (response.StatusCode == HttpStatusCode.OK) { result = true; } } catch (Exception e) { string messageException = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name); telemetria.Critical(messageException); } return(result); }
public HttpClient GetHttpClient(IRequestSettings <T> config, 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); }
private void ValidateRequestSettings(IRequestSettings <T> config, IContactRequest typeRequest) { TypeSwitch.Do( config.mailingProvider, TypeSwitch.Case <IIContactRequest>(() => { IContactValidateRequestSettings(config, typeRequest); }), TypeSwitch.Default(() => { })); }
public string GetUriRequest(IContactRequest typeRequest, IRequestSettings <T> config, IContactRequest requestFrmOuter) { requestFrm = requestFrmOuter; string uri = CreatetUriRequest(config.mailingProvider, typeRequest); return(uri); }
public IResponse GetList(string Id, IContactRequest requestFrm) { config.mailingProvider = requestFrm; IResponse response = new IContactGetListResponse(); HttpWebRequest request = GetRequest(KindAds.Common.Utils.IContactRequest.GetLists, config, requestFrm); return(response); }
public HttpWebRequest GetWebRequest(IContactRequest typeRequest, IRequestSettings <T> config, IContactRequest requestFrmOuter) { requestFrm = requestFrmOuter; ValidateRequestSettings(config, typeRequest); string uri = CreatetUriRequest(config.mailingProvider, typeRequest); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); ConfigureRequest(request, config); return(request); }
public IContactRequest FillIContactRequest(ICollection <ProductSettingsEntity> settings) { IContactRequest request = new IContactRequest(ProviderEnvironment.Production); foreach (var item in settings) { switch (item.SettingName) { case "icontactAccountId": { request.AccountId = item.SettingName.Equals("icontactAccountId") ? item.SettingValue : string.Empty; } break; case "icontactApiAppId": { request.ApiAppId = item.SettingName.Equals("icontactApiAppId") ? item.SettingValue : string.Empty; } break; case "icontactUserName": { request.ApiUserName = item.SettingName.Equals("icontactUserName") ? item.SettingValue : string.Empty; } break; case "icontactUserPassword": { request.ApiUserPassword = item.SettingName.Equals("icontactUserPassword") ? item.SettingValue : string.Empty; } break; case "icontactClientFolderId": { request.ClientFolderId = item.SettingName.Equals("icontactClientFolderId") ? item.SettingValue : string.Empty; } break; case "icontactIdCampaign": { request.IdCampaign = item.SettingName.Equals("icontactIdCampaign") ? item.SettingValue : string.Empty; } break; case "icontactIdList": { request.ListId = item.SettingName.Equals("icontactIdList") ? item.SettingValue : string.Empty; } break; } } return(request); }
private string CreatetUriRequest(T mailingProvider, IContactRequest typeRequest) { string uri = string.Empty; TypeSwitch.Do( mailingProvider, TypeSwitch.Case <IIContactRequest>(() => { uri = IContactCreatetUriRequest(mailingProvider, typeRequest); }), TypeSwitch.Default(() => { uri = string.Empty; })); return(uri); }
public JsonResult GetListIContact() { IContactRequest request = (IContactRequest)Session["IContactRequest"]; IContactService <ICampaign, IContactGetListsResponse> IContactProvider = new IContactService <ICampaign, IContactGetListsResponse>(); IResponse response = IContactProvider.GetLists(request); IContactGetListsResponse data = (IContactGetListsResponse)response; SelectList lista = new SelectList(data.lists, "listId", "name"); return(Json(lista)); }
public JsonResult ValidateApiAppId(string ApiAppId, string UserName, string UserPassword, string AccountId, string ClientFolderId, string ApiToken, string idSite, string idProvider, string wildCard) { Session["ApiToken"] = ApiToken; Session["AccountId"] = wildCard; Session["WildCard"] = wildCard; string mailingProvider = Session["PartnerSelecc"].ToString(); // Make request IContactRequest request = new IContactRequest(ProviderEnvironment.Production); // Set data request.ApiAppId = ApiAppId; request.ApiUserName = UserName; request.ApiUserPassword = UserPassword; request.AccountId = AccountId; request.ClientFolderId = ClientFolderId; //Encapsulate IContactRequest Session["IContactRequest"] = request; request.ApiAppId = ApiAppId; request.ApiUserName = UserName; request.ApiUserPassword = UserPassword; request.AccountId = AccountId; request.ClientFolderId = ClientFolderId; var site = _siteService.GetSiteByIdSite(idSite); bool result = false; bool _isPushCrew = false; bool _isSubscribers = false; bool _isMailChimp = false; bool _isCampaignMonitor = false; bool _isAweber = false; bool _isGetResponse = false; bool _isSendGrid = false; bool _isActiveCampaign = false; bool _isActiveIContact = false; IValidateProvider resultValidation = new ValidateProvider(EnumMailProviders.IContact); switch (mailingProvider) { case Utils.Constants.PROVIDER_ICONTACT: { IContactService <ICampaign, IContactGetListsResponse> contactService = new IContactService <ICampaign, IContactGetListsResponse>(); resultValidation = contactService.ValidateApiToken(request); _isActiveIContact = true; } break; } return(Json(new { message = resultValidation.Message, success = resultValidation.IsValid, isPushCrew = _isPushCrew, isSubscribers = _isSubscribers, isMailChimp = _isMailChimp, isCampaignMonitor = _isCampaignMonitor, isAweber = _isAweber, isGetResponse = _isGetResponse, isSendGrid = _isSendGrid, IsActiveCampaign = _isActiveCampaign, IsActiveIContact = _isActiveIContact })); }
private void IContactValidateRequestSettings(IRequestSettings <T> config, 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; //Add to header config.headers.Add("Username", username); config.headers.Add("Password", password); config.headers.Add("API-Version", apiversion); config.headers.Add("API-AppId", appid); config.headers.Add("Accept", accept); config.headers.Add("contentType", contenttype); if ( typeRequest == IContactRequest.AddMessage || typeRequest == 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 == 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); config.headers.Add("Method", method); }
public IResponse GetLists(IContactRequest requestFrm) { config.mailingProvider = requestFrm; IResponse response = new IContactGetListsResponse(); try { HttpWebRequest request = GetRequest(Common.Utils.IContactRequest.GetLists, config, requestFrm); response = GetResponse(request); } catch (Exception e) { var messageException = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name); telemetria.Critical(messageException); } return(response); }
private string IContactCreatetUriRequest(T providerSettings, IContactRequest typeRequest) { switch (typeRequest) { case IContactRequest.AddCampaign: { return(CreateIContactPostCampaignRequest(providerSettings)); } case IContactRequest.AddMessage: { return(CreateIContactPostMessageRequest(providerSettings)); } case IContactRequest.AddSends: { return(CreateIContactPostSendsRequest(providerSettings)); } case IContactRequest.GetCamapign: { return(CreateIContactGetCampaignRequest(providerSettings)); } case IContactRequest.GetLists: { return(CreateIContactGetListsRequest(providerSettings)); } case IContactRequest.GetMessage: { return(CreateIContactGetMessageRequest(providerSettings)); } case IContactRequest.GetSends: { return(CreateIContactGetSendsRequest(providerSettings)); } default: { return(string.Empty); } } }
public IResponse CreateSends(IContactPostSendsRequest requestBody, IContactRequest requestFrm) { config.mailingProvider = requestFrm; IResponse response = new IContactPostSendsResponse(); try { IContactPostSendsRequestWithoutScheduledTime requestBodyWS = new IContactPostSendsRequestWithoutScheduledTime() { messageId = requestBody.messageId, includeListIds = requestBody.includeListIds }; IContactPostSendsRequest[] requestArrayBody = new IContactPostSendsRequest[] { requestBody }; IContactPostSendsRequestWithoutScheduledTime[] requestArrayBodyWithoutScheduleTime = new IContactPostSendsRequestWithoutScheduledTime[] { requestBodyWS }; //Checamos si tiene fecha if (requestBody.scheduledTime == string.Empty) { var jsonResolver = new PropertyRenameAndIgnoreSerializerContractResolver(); jsonResolver.IgnoreProperty(typeof(IContactPostSendsRequestWithoutScheduledTime), "scheduledTime"); jsonResolver.IgnoreProperty(typeof(IContactPostSendsRequestWithoutScheduledTime), "BaseUrl"); jsonResolver.IgnoreProperty(typeof(IContactPostSendsRequestWithoutScheduledTime), "scheduled"); var serializerSettings = new JsonSerializerSettings(); serializerSettings.ContractResolver = jsonResolver; config.data = JsonConvert.SerializeObject(requestArrayBodyWithoutScheduleTime, serializerSettings); } else { IContactPostSendsRequestWithoutScheduledTime[] requestArrayBodyWS = new IContactPostSendsRequestWithoutScheduledTime[] { requestBodyWS }; config.data = new JavaScriptSerializer().Serialize(requestArrayBodyWS); } //Realiza la peticion HttpWebRequest request = GetRequest(KindAds.Common.Utils.IContactRequest.AddSends, config, requestFrm); response = GetResponse(request); } catch (Exception e) { var messageException = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name); telemetria.Critical(messageException); } return(response); }
public IResponse CreateCampaign(IContactPostCampaignRequest requestBody, IContactRequest requestFrm) { IResponse response = new IContactPostCampaignsResponse(); try { config.mailingProvider = requestFrm; IContactPostCampaignRequest[] requestArrayBody = new IContactPostCampaignRequest[] { requestBody }; config.data = new JavaScriptSerializer().Serialize(requestArrayBody); HttpWebRequest request = GetRequest(KindAds.Common.Utils.IContactRequest.AddCampaign, config, requestFrm); response = GetResponse(request); } catch (Exception e) { var messageException = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name); telemetria.Critical(messageException); } return(response); }
public IValidateProvider ValidateApiToken(IContactRequest requestFrm) { IValidateProvider validateProvider = new ValidateProvider(EnumMailProviders.IContact); bool resultado = false; try { config.mailingProvider = requestFrm; IResponse response = new IContactGetListsResponse(); HttpWebRequest request = GetRequest(KindAds.Common.Utils.IContactRequest.GetLists, config, requestFrm); response = GetResponse(request); resultado = response.StatusCode == 0 ? true : false; validateProvider.Validate(response.StatusCode == 0 ? true : false, response.StatusCode); } catch (Exception e) { var messageException = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name); telemetria.Critical(messageException); } return(validateProvider); }
public async Task <ActionResult> CreateProduct(Models.Publisher.CreateProductModel _createProduct, HttpPostedFileBase fileup) { if (ModelState.IsValid) { var productType = new Guid(Session["ProductTypeSelecc"].ToString()); var partner = new Guid(Session["PartnerSelecc"].ToString()); if (partner.Equals(new Guid(Utils.Constants.PROVIDER_DEFAULT_ADSMONETIZATION))) { var productTypeString = Session["ProductTypeSelecc"].ToString(); var site = new Guid(Session["SiteSelecc"].ToString()); var userId = Microsoft.AspNet.Identity.IdentityExtensions.GetUserId(User.Identity); var userDetail = _accessService.GetUserDetailByIdUser(new Guid(userId).ToString()); //llenamos el modelo MoneyAdsViewModel viewModel = _createProduct.adsManager.viewModel; viewModel.defaultAd.IdSite = site.ToString(); viewModel.defaultAd.name = _createProduct.Name; viewModel.defaultAd.typeSelected = "1"; CreateAds(viewModel); return(RedirectToAction("Settings", "MoneyAds")); } else if (partner.Equals(new Guid(Utils.Constants.PROVIDER_STICKY_ADSMONETIZATION))) { var productTypeString = Session["ProductTypeSelecc"].ToString(); var site = new Guid(Session["SiteSelecc"].ToString()); var userId = Microsoft.AspNet.Identity.IdentityExtensions.GetUserId(User.Identity); var userDetail = _accessService.GetUserDetailByIdUser(new Guid(userId).ToString()); //llenamos el modelo MoneyAdsViewModel viewModel = _createProduct.adsManager.viewModel; viewModel.defaultAd.IdSite = site.ToString(); viewModel.defaultAd.name = _createProduct.Name; viewModel.defaultAd.typeSelected = "2"; CreateAds(viewModel); return(RedirectToAction("Settings", "MoneyAds")); } else { var apiToken = Session["ApiToken"].ToString(); var price = Session["ProceSelecc"] == null ? _createProduct.PriceSelecc : Convert.ToDouble(Session["PriceSelecc"].ToString()); var site = new Guid(Session["SiteSelecc"].ToString()); var userId = Microsoft.AspNet.Identity.IdentityExtensions.GetUserId(User.Identity); var userDetail = _accessService.GetUserDetailByIdUser(new Guid(userId).ToString()); if (partner.Equals(new Guid(Utils.Constants.PROVIDER_MAIL_CHIMP))) { var listMailChimp = (string)TempData["ListMCSelecc"]; var templateMailChimp = Convert.ToInt32(TempData["TemplateMCSelecc"]); _createProduct.ListMCSelecc = listMailChimp; _createProduct.TemplateMCSelecc = templateMailChimp; } else if (partner.Equals(new Guid(Utils.Constants.PROVIDER_CAMPAIGN_MONITOR))) { var listCampaignMonitor = (string)TempData["ListCMSelecc"]; var client = (string)TempData["ClientCMSelecc"]; var segment = (string)TempData["SegmentCMSelecc"]; _createProduct.ListCMSelecc = listCampaignMonitor; _createProduct.ClientCMSelecc = client; _createProduct.SegmentCMSelecc = segment; } else if (partner.Equals(new Guid(Utils.Constants.PROVIDER_AWEBER))) { var listAWeber = (string)TempData["ListAWSelecc"]; _createProduct.providerAWeberApiResult = (ProviderAWeberApiResult)Session["ProviderAWeberApiResult"]; _createProduct.ListAWSelecc = listAWeber; } else if (partner.Equals(new Guid(Utils.Constants.PROVIDER_GETRESPONSE))) { _createProduct.ListGRSelecc = (string)TempData["ListsGRSelecc"]; _createProduct.FromFieldGRSelecc = (string)TempData["FromFieldSelecc"]; } else if (partner.Equals(new Guid(Utils.Constants.PROVIDER_SEND_GRID))) { _createProduct.ListSGSelecc = (string)TempData["ListsSGSelecc"]; _createProduct.SenderSGSelecc = (string)TempData["SenderSGSelecc"]; _createProduct.UnsubscribeGroupSGSelecc = (string)TempData["UnsubscribeGroupSGSelecc"]; } else if (partner.Equals(new Guid(Utils.Constants.PROVIDER_ACTIVE_CAMPAIGN))) { _createProduct.ListACSelecc = (string)TempData["ListsACSelecc"]; _createProduct.URLACSelecc = (string)Session["WildCard"]; } else if (partner.Equals(new Guid(Utils.Constants.PROVIDER_ICONTACT))) { _createProduct.ListICSelecc = (string)TempData["ListsICSelecc"]; _createProduct.IContact.ListId = _createProduct.ListICSelecc; //Generar campaña IContactService <ICampaign, IContactPostCampaignsResponse> iContactProvider = new IContactService <ICampaign, IContactPostCampaignsResponse>(); IContactRequest requestFrm = (IContactRequest)Session["IContactRequest"]; IContactPostCampaignRequest requestBody = new IContactPostCampaignRequest(); IContactPostCampaignsResponse responseCampaign = new IContactPostCampaignsResponse(); // Fill object requestBody.fromEmail = requestFrm.ApiUserName; requestBody.name = _createProduct.Name; requestBody.fromName = requestFrm.ApiUserName; responseCampaign = (IContactPostCampaignsResponse)iContactProvider.CreateCampaign(requestBody, requestFrm); _createProduct.IContact.IdCampaign = responseCampaign.campaigns[0].campaignId; } else if (partner.Equals(new Guid(Utils.Constants.PROVIDER_SENDINBLUE))) { _createProduct.ListSBSelecc = (string)TempData["ListsSBSelecc"]; _createProduct.SendinBlue.ListIds = new List <int> { Convert.ToInt32(_createProduct.ListSBSelecc) }; } else if (partner.Equals(new Guid(Utils.Constants.PROVIDER_ONE_SIGNAL))) { _createProduct.ListAppOSSelecc = (string)TempData["ListsAppOSSelecc"]; _createProduct.AuthAppOSSelecc = (string)TempData["AuthAppOSSelecc"]; } else if (partner.Equals(new Guid(Utils.Constants.PROVIDER_MAILJET))) { _createProduct.ListMJSelecc = (string)TempData["ListsMJSelecc"]; _createProduct.SegmentMJSelecc = (string)TempData["SegmentMJSelecc"]; } _createProduct.PriceSelecc = price; _createProduct.Token = apiToken; _createProduct.ProductTypeSelect = productType; _createProduct.ParterTypeSelect = partner; _createProduct.SiteTypeSelecc = site; //_createProduct.IsPremium = userDetail != null ? userDetail.IsPremium : false; if (_productService.SaveProduct(_createProduct, userId, GetFileUpload(fileup))) { ViewBag.Message = "Congratulations!!!"; } else { ViewBag.Message = "Error"; } } } await FillProductTypeAsync(); await FillCategory(); FillPrice(); await FillSites(); FillProductPremium(_createProduct); return(View(_createProduct)); }
public HttpWebRequest GetRequest(KindAds.Common.Utils.IContactRequest type, IRequestSettings <IIContactRequest> config, IContactRequest requestFrm) { HttpWebRequest request = requestManager.GetWebRequest(type, config, requestFrm); return(request); }
public IResponse CreateMessageToHttpClient(IContactPostMessageRequest requestBody, IContactRequest requestFrm) { config.mailingProvider = requestFrm; IResponse response = new IContactPostMessagesResponse(); try { IContactPostMessageRequest[] requestArrayBody = new IContactPostMessageRequest[] { requestBody }; config.data = new JavaScriptSerializer().Serialize(requestArrayBody); Dictionary <string, string> messageDictionary = CreateMessageDictionary(requestBody); string uri = requestManager.GetUriRequest(Common.Utils.IContactRequest.AddMessage, config, requestFrm); HttpClient client = requestManager.GetHttpClient(config, Common.Utils.IContactRequest.AddMessage); response = GetResponseHttpClient(client, requestArrayBody, messageDictionary, uri); } catch (Exception e) { var messageException = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name); telemetria.Critical(messageException); } return(response); }