public async Task <object> RetryParticipationSyncImmediately( CrmData data, CrmConfiguration requestWideSettings, bool requestConsumerId = false) { var jobId = await Task.Run(() => BackgroundJob.Enqueue <ICrmConsumerProvider>( iCrmProvider => iCrmProvider.CreateParticipationAsync( data, requestWideSettings, requestConsumerId))); var result = new object(); IMonitoringApi monitoringApi = JobStorage.Current.GetMonitoringApi(); JobDetailsDto jobDetails = monitoringApi.JobDetails(jobId); SucceededJobDto jobDto = monitoringApi.SucceededJobs(0, int.MaxValue) .First() //.FirstOrDefault(job => job.Key == "Key") .Value; if (jobDto != null) { result = jobDto.Result; return(JsonConvert.DeserializeObject <CrmResponse>(result.ToString())); } return(null); }
public async Task <CrmData> CreateParticipationAsync( CrmData data, CrmConfiguration requestWideSettings, bool requestConsumerId = false) { data.AddSetting("SourceName", requestWideSettings.Settings.SourceName); data.AddSetting("TransactionName", requestWideSettings.Settings.TransactionName); var settings = new ProCampaignSettings { ConsumerBaseUrl = new Uri(Configuration.Settings.ConsumerBaseUrl), ParticipationPath = Configuration.Settings.ParticipationPath, ApiKey = requestWideSettings.Settings.ApiKey, ApiSecret = requestWideSettings.Settings.ApiSecret }; var ApiData = ProCampaignData.FormatParticipationData(data); var response = await ApiHelper.PostParticipationAsync(ApiData, settings, requestConsumerId); var returnData = new CrmData(); returnData.AddSetting("Success", response.IsSuccessful); returnData.AddSetting("ApiStatus", response.StatusCode); returnData.AddSetting("ApiMessage", response.StatusMessage); returnData.AddSetting("HttpStatus", response.HttpStatusCode); returnData.AddSetting("HttpMessage", response.HttpStatusMessage); returnData.AddSetting("Data", response.Data); return(returnData); }
public DynamicsSyncAgent(CrmConfiguration configuration, HttpClient crmClient, string crmBaseUrl) { _configurationId = configuration.msk12_configurationid; _oneRosterApiUrl = configuration.msk12_apiurl; _oneRosterKey = configuration.msk12_consumerkey; _oneRosterSecret = configuration.msk12_consumersecret; _lastSyncDate = configuration.msk12_lastsyncdate; _crmClient = crmClient; _crmApiUrl = crmBaseUrl; }
public ConsumerProvider() { Configuration = new CrmConfiguration(); // Consumer endpoint configuration Configuration.Settings.ConsumerBaseUrl = ProCampaignConstants.ConsumerAPI.BaseUrl; Configuration.Settings.ParticipationPath = ProCampaignConstants.ConsumerAPI.ParticipationPath; // API endpoint configuration Configuration.Settings.DocumentBaseUrl = ProCampaignConstants.DocumentAPI.BaseUrl; Configuration.Settings.DocumentPath = $"{ProCampaignConstants.DocumentAPI.DocumentPath}/" + $"{ProCampaignConstants.DocumentAPI.DefaultListName}/" + $"{ProCampaignConstants.DocumentAPI.DefaultDocumentName}"; Configuration.Settings.InternationalApiKey = $"{ProCampaignConstants.DocumentAPI.InternationalApiKey}"; }
public async Task DelayedParticipationRetrySync( CrmData data, CrmConfiguration requestWideSettings, TimeSpan delay, bool requestConsumerId = false) { await Task.Run(() => BackgroundJob.Schedule <ICrmConsumerProvider>( iCrmProvider => iCrmProvider.CreateParticipationAsync( data, requestWideSettings, requestConsumerId), delay)); }
public async Task RetryParticipationSyncRecurrently( CrmData data, CrmConfiguration requestWideSettings, CronEnum occurence, bool requestConsumerId = false) { var frequency = MapjobFrequency(occurence); await Task.Run(() => RecurringJob.AddOrUpdate <ICrmConsumerProvider>( iCrmProvider => iCrmProvider.CreateParticipationAsync( data, requestWideSettings, requestConsumerId), frequency)); }
private void UpdateLastSyncDate() { var record = new CrmConfiguration { msk12_configurationid = _configurationId, msk12_lastsyncdate = DateTime.UtcNow }; var request = new HttpRequestMessage(new HttpMethod("Patch"), new Uri($"{_crmApiUrl}{CrmConfiguration.EntitySetName}({record.msk12_configurationid})")); request.Headers.Add("OData-MaxVersion", "4.0"); request.Headers.Add("OData-Version", "4.0"); request.Headers.Add("If-Match", "*"); request.Content = new StringContent(record.ToJson(), Encoding.UTF8, "application/json"); var response = _crmClient.SendAsync(request); if (response.Result.StatusCode != System.Net.HttpStatusCode.OK && response.Result.StatusCode != System.Net.HttpStatusCode.NoContent) { throw new Exception(response.Result.ToString()); } }
public CrmService(IOptions <CrmConfiguration> crmConfiguration, TokenService tokenService) { _crmConfiguration = crmConfiguration.Value; _tokenService = tokenService; }
public TokenService(IOptions <CrmConfiguration> crmConfiguration) { _crmConfiguration = crmConfiguration.Value; }