public DeleteOpportunityResponse DeleteOpportunities(DeleteOpportunityRequest request) { Logger.Current.Verbose("Request for opportunities delete"); opportunityRepository.DeleteOpportunities(request.OpportunityIDs, (int)request.RequestedBy); foreach (int opportunityId in request.OpportunityIDs) { indexingService.Remove <Opportunity>(opportunityId); } return(new DeleteOpportunityResponse()); }
public async Task <DeleteOpportunityResponse> DeleteOpportunityRole(DeleteOpportunityRequest deleteOpportunityRequest) { DeleteOpportunityResponse deleteOpportunityResponse = null; string path = "rest/v1/opportunities/roles/delete.json"; string body = JsonConvert.SerializeObject(deleteOpportunityRequest); HttpClient client = new HttpClient { BaseAddress = new Uri(_marketoInstanceUrl) }; // Add an Accept header for JSON format. client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("text/json")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", GetToken()); HttpContent httpContent = new StringContent(body); httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); Task <HttpResponseMessage> httpResponseMessage = client.PostAsync(path, httpContent); HttpResponseMessage response = httpResponseMessage.Result; if (response.IsSuccessStatusCode) { // Parse the response body. Task <string> asyncString = response.Content.ReadAsStringAsync(); //Make sure to add a reference to System.Net.Http.Formatting.dll string result = asyncString.Result; deleteOpportunityResponse = JsonConvert.DeserializeObject <DeleteOpportunityResponse>(result); if (deleteOpportunityResponse.Success) { foreach (DeleteOpportunityResponseResult deleteOpportunityResponseResult in deleteOpportunityResponse.Result) { if (!deleteOpportunityResponseResult.status.Equals("Deleted", StringComparison.InvariantCultureIgnoreCase)) { Console.WriteLine("Record failed to delete. Status {0} for reason {1}", deleteOpportunityResponseResult.status, string.Join(",", deleteOpportunityResponseResult.reasons.Select(e => e.message))); } } } else { Console.WriteLine("API request failed. Detail: {0}", string.Join(",", deleteOpportunityResponse.Errors.Select(x => x.Message))); } } else if (response.StatusCode.Equals(606)) { throw new MarketoMaxRateLimitException(); } else if (response.StatusCode.Equals(615)) { throw new MarketoConcurrentAccessLimitException(); } else if (response.StatusCode.Equals(607)) { throw new MarketoDailyQuotaReachedException(); } else { throw new Exception("Unhandled exception has occured when calling DeleteOpportunityRole on Marketo API."); } client.Dispose(); return(deleteOpportunityResponse); }