/// <summary> /// Initialises the client from Environment Variables. /// </summary> public FaxClient(HttpMessageHandler messageHandler = null, ApiRoot apiRoot = ApiRoot.InterFAX_Default) { var username = Environment.GetEnvironmentVariable(UsernameConfigKey); var password = Environment.GetEnvironmentVariable(PasswordConfigKey); Initialise(username, password, apiRoot: apiRoot, messageHandler: messageHandler); }
public async Task <IList <Property> > GetPropertyListFromApiAsync() { var request = new RestRequest(Method.GET); var response = await _client.ExecuteAsync(request); ApiRoot apiRootCollection = JsonConvert.DeserializeObject <ApiRoot>(response.Content); if (apiRootCollection == null) { return(new List <Property>()); } var propertyList = apiRootCollection.properties.Select(item => new Property { Id = item.id ?? 0, Address = item.address?.ToString(), GrossYield = item.financial?.GetGrossYield(), ListPrice = item.financial?.listPrice ?? 0, MonthlyRent = item.financial?.monthlyRent ?? 0, YearBuilt = item.physical?.yearBuilt?.ToString(CultureInfo.InvariantCulture) }).ToList(); return(propertyList); }
public static string AddMovies(string title, string summary, string picture, string genre, double rating) { Movies movie = new Movies(); movie.Title = title; movie.Summary = summary; movie.Picture = picture; movie.Genre = genre; movie.Rating = rating; string json = JsonConvert.SerializeObject(movie); HttpWebRequest req = (HttpWebRequest)WebRequest.Create($"{ApiRoot.Apiroot()}/movies"); req.Method = "POST"; req.ContentType = "application/json"; using (var streamWriter = new StreamWriter(req.GetRequestStream())) { streamWriter.Write(json); streamWriter.Flush(); streamWriter.Close(); }; var httpResponse = (HttpWebResponse)req.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { return(streamReader.ReadToEnd()); } }
public static string DeleteSavedMovie(int id, int peopleId, int movieId) { Wishlist deletedMovie = new Wishlist(); deletedMovie.Id = id; deletedMovie.Pid = peopleId; deletedMovie.Mid = movieId; string json = JsonConvert.SerializeObject(deletedMovie); // MessageBox.Show($"{json}"); // System.Diagnostics.Debug.WriteLine($"**************** --- {json}"); HttpWebRequest req = (HttpWebRequest)WebRequest.Create($"{ApiRoot.Apiroot()}/wishlist/{id}"); req.Method = "DELETE"; req.ContentType = "application/json"; using (var streamWriter = new StreamWriter(req.GetRequestStream())) { streamWriter.Write(json); streamWriter.Flush(); streamWriter.Close(); }; var httpResponse = (HttpWebResponse)req.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { return(streamReader.ReadToEnd()); } }
public static string AddUsers(string fName, string lName, string password, string email, string uName) { Users user = new Users(); user.Fname = fName; user.Lname = lName; user.Passwrd = password; user.Email = email; user.Uname = uName; string json = JsonConvert.SerializeObject(user); HttpWebRequest req = (HttpWebRequest)WebRequest.Create($"{ApiRoot.Apiroot()}/users"); req.Method = "POST"; req.ContentType = "application/json"; using (var streamWriter = new StreamWriter(req.GetRequestStream())) { streamWriter.Write(json); streamWriter.Flush(); streamWriter.Close(); }; var httpResponse = (HttpWebResponse)req.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { return(streamReader.ReadToEnd()); } }
public static async Task <ApiRoot> ReadApiRoot(string strUri = "") { if (!string.IsNullOrEmpty(strUri)) { _strApiRootUri = strUri; } try { Task <System.IO.Stream> streamTask = _client.GetStreamAsync(_strApiRootUri); ApiRoot apiRoot = await JsonSerializer.DeserializeAsync <ApiRoot>(await streamTask); _apiRoot = new ApiRoot(apiRoot); return(apiRoot); } catch (Exception ex) { #if SHOW_DEBUG Console.WriteLine("\nException Caught!"); Console.WriteLine("Message :{0} ", ex.Message); #endif //return null; throw ex; } }
protected override void Execute(CodeActivityContext context) { ITracingService tracing = context.GetExtension <ITracingService>(); IWorkflowContext workflowContext = context.GetExtension <IWorkflowContext>(); IOrganizationService service = context.GetExtension <IOrganizationServiceFactory>().CreateOrganizationService(workflowContext.InitiatingUserId); FuncLibrary aux = new FuncLibrary(); find_marketingautomationintegration sendGridAccount = aux.GetMailchimpInfo(service); Apihelper.InitializeClient(sendGridAccount.find_SendGridIntegration); ApiRoot apiRoot = new ApiRoot(); List list = service.Retrieve(MarketingList.Get(context).LogicalName, MarketingList.Get(context).Id, new ColumnSet("find_sendgridid")).ToEntity <List>(); Campaign campaign = service.Retrieve(Campaign.Get(context).LogicalName, Campaign.Get(context).Id, new ColumnSet("name")).ToEntity <Campaign>(); EntityReference memberReference = new EntityReference(MemberType.Get(context), new Guid(MemberId.Get(context))); find_metric metric = GetMetricByCampaign(service, campaign); if (HasMetricDetailsToMember(service, metric, memberReference)) { return; } CreateMetricDetails(service, metric, memberReference); SyncMemberTypeToSendGrid(service, memberReference, list, apiRoot, tracing); }
private Report GetReportOfMetric(ApiRoot root, string server, Campaign campaign) { Task <Report> t = Task.Run(() => root.GetReportsEmail(server, campaign.find_mailChimpCampaignID)); t.Wait(); return(t.IsCompleted ? t.Result : throw new Exception()); }
private EmailActivity GetlastActivityByMetricDetail(ApiRoot root, string server, Campaign campaign, string md5Mail) { Task <EmailActivity> t = Task.Run(() => root.GetEmailActivity(server, campaign.find_mailChimpCampaignID, md5Mail)); t.Wait(); return(t.IsCompleted ? t.Result : throw new Exception()); }
private void UpdateAsync(IPluginExecutionContext context, IOrganizationService service, ITracingService tracingService) { CrmEarlyBound.Campaign target = ((Entity)context.InputParameters["Target"]).ToEntity <CrmEarlyBound.Campaign>(); CrmEarlyBound.Campaign campaign = service.Retrieve(target.LogicalName, target.Id, new ColumnSet("name", "find_platformmarketing", "find_fromname", "find_subject", "find_mailchimpcampaignid", "find_sendgridid")).ToEntity <CrmEarlyBound.Campaign>(); if (target.Attributes.ContainsKey("find_crm_integration_count")) { if (campaign.find_PlatformMarketing == false) { tracingService.Trace("a"); OrganizationRequest request = new OrganizationRequest("find_SyncMailchimpToCrm"); request.Parameters["Campaign"] = target.ToEntityReference(); service.Execute(request); } else { OrganizationRequest request = new OrganizationRequest("find_SyncSendgridToCrm"); request.Parameters["Campaign"] = target.ToEntityReference(); service.Execute(request); } } else if (target.Attributes.ContainsKey("find_mailchimp_integration_count")) { List <List> listsToUpdate = GetAllMarketingListsAssociatedToCampaign(service, target); if (listsToUpdate.Count == 0) { target.find_mailchimp_integration_count = 0; return; } FuncLibrary aux = new FuncLibrary(); find_marketingautomationintegration mailChimpAccount = aux.GetMailchimpInfo(service); ApiRoot root = new ApiRoot(); if (campaign.find_PlatformMarketing == false) { ProcessMailChimpListsAndCampaign(service, campaign, mailChimpAccount, root, listsToUpdate); } else { ProcessSendGridLists(service, campaign, mailChimpAccount, root, listsToUpdate); } foreach (List list in listsToUpdate) { list.find_mailchimp_integration_count++; service.Update(list); } } else if (target.Attributes.ContainsKey("find_mail_integration_started")) { target.find_crm_integration_count = 1; service.Update(target); } }
private void PutMemberToMailChimp(ApiRoot root, string server, string listId, string mailMd5, List list, string mail) { Group group = new Group(true); Member member = new Member(mail, group); Task task = Task.Run(() => root.PutMember(member, server, listId, list.find_MailChimpListId, mailMd5)); task.Wait(); }
public static List <Users> RetrieveUsersFromApi() { using (WebClient wc = new WebClient()) { string json = wc.DownloadString($"{ApiRoot.Apiroot()}/users"); List <Users> users = JsonConvert.DeserializeObject <List <Users> >(json); return(users); } }
public static List <Movies> RetrieveMoviesFromApi() { using (WebClient wc = new WebClient()) { string json = wc.DownloadString($"{ApiRoot.Apiroot()}/movies"); List <Movies> movies = JsonConvert.DeserializeObject <List <Movies> >(json); return(movies); } }
public static List <Wishlist> RetrieveSavedMoviesFromApi() { using (WebClient wc = new WebClient()) { string json = wc.DownloadString($"{ApiRoot.Apiroot()}/wishlist"); List <Wishlist> wishlist = JsonConvert.DeserializeObject <List <Wishlist> >(json); return(wishlist); } }
private void SendCampaingInMailChimp(IOrganizationService service, Campaign campaign) { FuncLibrary aux = new FuncLibrary(); find_marketingautomationintegration mailChimpObj = aux.GetMailchimpInfo(service); ApiRoot root = new ApiRoot(); if (SendEmails(campaign, mailChimpObj, root)) { campaign.find_mail_integration_started = true; service.Update(campaign); } }
private void CreateListSendGrid(IOrganizationService service, List newList, ApiRoot root) { Group listSend = new Group(newList.ListName); Task <MailChimpCampaign> t = Task.Run(() => root.PostList(listSend)); t.Wait(); if (t.IsCompleted) { newList.find_SendGridId = t.Result.Id; service.Update(newList); } }
private void PostReplicateCampaignInSendGrid(IOrganizationService service, ApiRoot root, find_marketingautomationintegration mailChimpAccount, Campaign campaign, Campaign newCampaign) { Apihelper.InitializeClient(mailChimpAccount.find_SendGridIntegration); Task <MailChimpCampaign> t = Task.Run(() => root.PostCopySingleSend(campaign.find_SendGridId)); t.Wait(); if (t.IsCompleted) { newCampaign.find_SendGridId = t.Result.Id; service.Update(newCampaign); } }
private Reports GetReportOfMetric(ApiRoot root, Campaign campaign, ITracingService tracing) { Task <Reports> t = Task.Run(() => root.GetMetricsFromSingleSend(campaign.find_SendGridId, tracing)); t.Wait(); if (t.IsCompleted) { return(t.Result); } else { throw new Exception(); } }
private void PostReplicateCampaignInMailchimp(IOrganizationService service, ApiRoot root, find_marketingautomationintegration mailChimpAccount, Campaign campaign, Campaign newCampaign) { Apihelper.InitializeClient(mailChimpAccount.find_MailChimpIntegration); string[] server = mailChimpAccount.find_MailChimpIntegration.Split('-'); Task <MailChimpCampaign> t = Task.Run(() => root.PostCopyCampaign(server[1], campaign.find_mailChimpCampaignID)); t.Wait(); if (t.IsCompleted) { newCampaign.find_mailChimpCampaignID = t.Result.Id; service.Update(newCampaign); } }
private bool CheckIfMemberIsMailChimp(ApiRoot root, string server, string listId, string mailMd5) { Task <bool> t = Task.Run(() => root.GetMember(server, listId, mailMd5)); t.Wait(); if (t.IsCompleted) { return(t.Result); } else { throw new Exception(); } }
private void Initialise(string username, string password, ApiRoot apiRoot, HttpMessageHandler messageHandler = null, HttpClient httpClient = null) { if (string.IsNullOrEmpty(username)) { throw new ArgumentException($"{UsernameConfigKey} has not been set."); } if (string.IsNullOrEmpty(password)) { throw new ArgumentException($"{PasswordConfigKey} has not been set."); } Account = new Account(this); Inbound = new Inbound(this); Outbound = new Outbound(this); Documents = new Documents(this); HttpClient = messageHandler == null ? new HttpClient() : new HttpClient(messageHandler); HttpClient = httpClient != null ? httpClient : HttpClient; var root = ""; switch (apiRoot) { case ApiRoot.InterFAX_PCI: root = "https://rest-sl.interfax.net"; break; case ApiRoot.InterFAX_Default: root = "https://rest.interfax.net"; break; } HttpClient.BaseAddress = new Uri(root); HttpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpClient.DefaultRequestHeaders.Add("Authorization", new List <string> { $"Basic {Utils.Base64Encode($"{username}:{password}")}" }); JsonConvert.DefaultSettings = () => { var settings = new JsonSerializerSettings(); settings.Converters.Add(new StringEnumConverter { CamelCaseText = true }); return(settings); }; }
private void ScheduleCampaign(IOrganizationService service, Campaign campaign, string dateTime) { FuncLibrary aux = new FuncLibrary(); find_marketingautomationintegration mailChimpObj = aux.GetMailchimpInfo(service); ApiRoot root = new ApiRoot(); if (campaign.find_PlatformMarketing == false) { PostActionScheduleMail(service, campaign, mailChimpObj, root, dateTime); } else { PutScheduleNow(service, campaign, mailChimpObj, root, dateTime); } }
private void PutMemberToSendGrid(string email, List list, ApiRoot root, ITracingService tracing) { List <string> listIds = new List <string>(); listIds.Add(list.find_SendGridId); List <Contacts> listContacts = new List <Contacts>(); Contacts contact = new Contacts(email); listContacts.Add(contact); MemberSendgrid member = new MemberSendgrid(listIds, listContacts); Task t = Task.Run(() => root.PostOrPutMember(member, tracing)); t.Wait(); }
private void TestActionCampaign(IOrganizationService service, Campaign campaign, string emails, ITracingService tracing) { FuncLibrary aux = new FuncLibrary(); find_marketingautomationintegration mailChimpObj = aux.GetMailchimpInfo(service); ApiRoot root = new ApiRoot(); if (campaign.find_PlatformMarketing == false) { tracing.Trace("aq"); PostActionSendTestEmailsMailchimp(campaign, mailChimpObj, root, emails, tracing); } else { PostActionSendTestEmailsSendGrid(mailChimpObj, root, emails); } }
protected override void Execute(CodeActivityContext context) { ITracingService tracing = context.GetExtension <ITracingService>(); IWorkflowContext workflowContext = context.GetExtension <IWorkflowContext>(); IOrganizationService service = context.GetExtension <IOrganizationServiceFactory>().CreateOrganizationService(workflowContext.InitiatingUserId); FuncLibrary aux = new FuncLibrary(); find_marketingautomationintegration mailChimpAccount = aux.GetMailchimpInfo(service); ApiRoot root = new ApiRoot(); Campaign campaign = service.Retrieve(Campaign.Get(context).LogicalName, Campaign.Get(context).Id, new ColumnSet("find_platformmarketing", "find_fromname", "find_subject", "name", "find_mailchimpcampaignid", "find_sendgridid")).ToEntity <Campaign>(); Guid newGuidCampaign = CreateCopyFromCampaign(service, campaign, root, mailChimpAccount); CampaingId.Set(context, newGuidCampaign.ToString()); tracing.Trace(CampaingId.ToString()); }
private void AssociateMarketingListToSendGrid(ApiRoot root, List <List> listLists, CrmEarlyBound.Campaign campaign) { List <string> listSendGridId = new List <string>(); foreach (List lists in listLists) { listSendGridId.Add(lists.find_SendGridId); } SendTo sendTo = new SendTo(listSendGridId); SingleSend singleSend = new SingleSend(sendTo); Task t = Task.Run(() => root.PathSingleSend(singleSend, campaign.find_SendGridId)); t.Wait(); }
protected override void Execute(CodeActivityContext context) { ITracingService tracing = context.GetExtension <ITracingService>(); IWorkflowContext workflowContext = context.GetExtension <IWorkflowContext>(); IOrganizationService service = context.GetExtension <IOrganizationServiceFactory>().CreateOrganizationService(workflowContext.InitiatingUserId); FuncLibrary aux = new FuncLibrary(); find_marketingautomationintegration accountObj = aux.GetMailchimpInfo(service); Apihelper.InitializeClient(accountObj.find_SendGridIntegration); ApiRoot root = new ApiRoot(); Campaign campaign = service.Retrieve(Campaign.Get(context).LogicalName, Campaign.Get(context).Id, new ColumnSet("name", "find_sendgridid")).ToEntity <Campaign>(); find_metric metric = GetMetricByCampaign(service, campaign); UpdateMetric(service, root, campaign, metric, tracing); }
private void UpdateMetric(IOrganizationService service, ApiRoot root, string server, Campaign campaign, find_metric metric) { Report report = GetReportOfMetric(root, server, campaign); metric.find_Bounced = report.bounces.hard_bounces + report.bounces.soft_bounces; metric.find_PeopleWhoClicked = report.clicks.unique_clicks; metric.find_PeopleWhoOpened = report.opens.unique_opens; metric.find_SuccessfulDeliveries = report.emails_sent - (report.bounces.hard_bounces + report.bounces.soft_bounces); metric.find_Send = report.emails_sent; metric.find_TotalClicks = report.clicks.clicks_total; metric.find_TotalTimesOpened = report.opens.opens_total; metric.find_UnOpened = report.emails_sent - report.opens.unique_opens; metric.find_UnSubscribers = report.unsubscribed; metric.find_ForwardCount = report.forwards.forwards_count; metric.find_ForwardsOpens = report.forwards.forwards_opens; service.Update(metric); }
private void UpdateMetric(IOrganizationService service, ApiRoot root, Campaign campaign, find_metric metric, ITracingService tracing) { Reports report = GetReportOfMetric(root, campaign, tracing); metric.find_Bounced = report.results[0].stats.bounces; metric.find_PeopleWhoClicked = report.results[0].stats.unique_clicks; metric.find_PeopleWhoOpened = report.results[0].stats.unique_opens; metric.find_SuccessfulDeliveries = report.results[0].stats.delivered - report.results[0].stats.bounces; metric.find_Send = report.results[0].stats.delivered; metric.find_TotalClicks = report.results[0].stats.clicks; metric.find_TotalTimesOpened = report.results[0].stats.opens; metric.find_UnOpened = report.results[0].stats.delivered - report.results[0].stats.unique_opens; metric.find_UnSubscribers = report.results[0].stats.unsubscribes; metric.find_ForwardCount = 0; metric.find_ForwardsOpens = 0; service.Update(metric); }
protected override void Execute(CodeActivityContext context) { ITracingService tracing = context.GetExtension <ITracingService>(); IWorkflowContext workflowContext = context.GetExtension <IWorkflowContext>(); IOrganizationService service = context.GetExtension <IOrganizationServiceFactory>().CreateOrganizationService(workflowContext.InitiatingUserId); FuncLibrary aux = new FuncLibrary(); find_marketingautomationintegration mailChimpObj = aux.GetMailchimpInfo(service); Apihelper.InitializeClient(mailChimpObj.find_MailChimpIntegration); ApiRoot root = new ApiRoot(); string[] server = mailChimpObj.find_MailChimpIntegration.Split('-'); Campaign campaign = service.Retrieve(Campaign.Get(context).LogicalName, Campaign.Get(context).Id, new ColumnSet("name", "find_mailchimpcampaignid")).ToEntity <Campaign>(); find_metric metric = GetMetricByCampaign(service, campaign); List <find_metricdetails> metricDetailsList = GetMetricDetailsByMetric(service, metric); ProcessAtivitiesByMember(service, metricDetailsList, aux, root, server[1], campaign, metric, tracing); }