public IHttpActionResult GetOrganizations([FromUri] DynamicsCredentials credentials) { if (!ModelState.IsValid) { return(Unauthorized()); } try { crmService = new DynamicsService(credentials); var organizations = crmService.GetOrganizations().Select(o => new { o.UniqueName, o.FriendlyName }); return(Ok(organizations)); } catch (MessageSecurityException) { return(Unauthorized()); } catch (SecurityAccessDeniedException) { return(Unauthorized()); } }
public IHttpActionResult GetMarketLists([FromUri] DynamicsCredentials credentials, [FromUri] bool translate = false) { if (!ModelState.IsValid) { return(Unauthorized()); } try { crmService = new DynamicsService(credentials); var lists = crmService.GetAllMarketLists(); var goodLookingLists = GetValuesFromLists(lists, translate); return(Ok(goodLookingLists)); } catch (MessageSecurityException) { return(Unauthorized()); } catch (SecurityAccessDeniedException) { return(Unauthorized()); } }
internal RuntimeSettings(string[] args) { Compile = args.Contains("compile"); Save = args.Contains("save"); Publish = args.Contains("publish"); LogLevel = args.Contains("basic") ? LogLevel.Basic : LogLevel.Verbose; if (Publish) { var fileContents = File.ReadAllText("credentials.json"); var model = JsonConvert .DeserializeObject <DynamicsOnlineCredentialsModel>( fileContents); Credentials = new DynamicsCredentials( model.Url, model.Username, model.Password, "", DeploymentType.Online); } }
public IHttpActionResult ValidateCredentials([FromUri] DynamicsCredentials credentials) { if (!ModelState.IsValid) { return(Unauthorized()); } try { if (!string.IsNullOrEmpty(credentials.Domain)) { crmService = new DynamicsService(credentials); } else { //Will create service and try to fetch all lists to validate new DynamicsService(credentials).GetAllMarketLists(); } return(Ok()); } catch (MessageSecurityException) { return(Unauthorized()); } catch (SecurityAccessDeniedException) { return(Unauthorized()); } catch (SecurityNegotiationException) { return(Unauthorized()); } }
public CrmService(DynamicsCredentials credentials, string orgName) { userName = credentials.UserName; password = credentials.Password; domain = credentials.Domain; organizationUniqueName = orgName; organizationServiceProxy = getOrganizationServiceProxy(); }
public IHttpActionResult ValidateCredentials([FromUri] DynamicsCredentials credentials) { try { crmService = new CrmService(credentials); var organizations = crmService.getOrganizations(); crmService.logout(); return(Ok(organizations)); } catch (Exception ex) when(ex is MessageSecurityException || ex is ArgumentNullException) { return(Unauthorized()); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult UpdateBulkEmailForContact(string contactId, [FromUri] DynamicsCredentials credentials) { try { crmService = new DynamicsService(credentials); crmService.ChangeBulkEmail(contactId); return(Ok()); } catch (MessageSecurityException) { return(Unauthorized()); } catch (SecurityAccessDeniedException) { return(Unauthorized()); } }
public IHttpActionResult GetContacts(string listId, [FromUri] DynamicsCredentials credentials, [FromUri] string[] fields, [FromUri] int top = 0, [FromUri] bool translate = true) { try { crmService = new DynamicsService(credentials); var contacts = crmService.GetContactsInList(listId, fields, top); var goodLookingContacts = GetValuesFromContacts(contacts, translate, fields); return(Ok(goodLookingContacts)); } catch (MessageSecurityException) { return(Unauthorized()); } catch (SecurityAccessDeniedException) { return(Unauthorized()); } }
public DynamicsService(DynamicsCredentials credentials) { string organizationEndpoint; if (!string.IsNullOrEmpty(credentials.Domain)) { var discoveryProxy = GetDiscoveryServiceProxy(credentials.DiscoveryUrl, credentials); organizations = DiscoverOrganizations(discoveryProxy); var organization = organizations.FirstOrDefault(detail => detail.UniqueName.Equals(credentials.Organization)) ?? organizations.FirstOrDefault(); organizationEndpoint = organization?.Endpoints[EndpointType.OrganizationService]; } else { //Bygger upp organizationEndpoint Url med hjälp av discoveryUrl organizationEndpoint = credentials.DiscoveryUrl.Remove(credentials.DiscoveryUrl.LastIndexOf('/') + 1); organizationEndpoint = string.Concat(organizationEndpoint, "Organization.svc"); } organizationServiceProxy = GetOrganizationServiceProxy(organizationEndpoint, credentials); }
public IHttpActionResult GetListsWithAllAttributes(string orgName, [FromUri] DynamicsCredentials credentials, [FromUri] bool translate = false, [FromUri] bool allAttributes = true) { try { crmService = new CrmService(credentials, orgName); helper = new CrmApiHelper(crmService); var lists = crmService.getAllLists(allAttributes); var goodLookingLists = helper.getValuesFromLists(lists, translate, allAttributes); crmService.logout(); return(Ok(goodLookingLists)); } catch (Exception ex) when(ex is MessageSecurityException || ex is ArgumentNullException) { return(Unauthorized()); } catch (NullReferenceException) { return(BadRequest()); } }
public IHttpActionResult GetContactFields([FromUri] DynamicsCredentials credentials) { if (!ModelState.IsValid) { return(Unauthorized()); } try { crmService = new DynamicsService(credentials); var attributes = crmService.GetAttributeDisplayName("contact"); return(Ok(attributes)); } catch (MessageSecurityException) { return(Unauthorized()); } catch (SecurityAccessDeniedException) { return(Unauthorized()); } }
private static AuthenticationCredentials GetCredentials <TService>(IServiceManagement <TService> service, AuthenticationProviderType endpointType, DynamicsCredentials credentials) { if (!Enum.IsDefined(typeof(AuthenticationProviderType), endpointType)) { throw new ArgumentOutOfRangeException(nameof(endpointType)); } var domain = ""; var authCredentials = new AuthenticationCredentials(); if (!string.IsNullOrEmpty(credentials.Domain)) { domain = credentials.Domain; } //if (credentials == null) return authCredentials; var userName = credentials.UserName; var password = credentials.Password; endpointType = AuthenticationProviderType.OnlineFederation; switch (endpointType) { case AuthenticationProviderType.ActiveDirectory: authCredentials.ClientCredentials.Windows.ClientCredential = new System.Net.NetworkCredential(userName, password, domain); break; case AuthenticationProviderType.LiveId: authCredentials.ClientCredentials.UserName.UserName = userName; authCredentials.ClientCredentials.UserName.Password = password; authCredentials.SupportingCredentials = new AuthenticationCredentials { ClientCredentials = Microsoft.Crm.Services.Utility.DeviceIdManager.LoadOrRegisterDevice() }; break; case AuthenticationProviderType.None: break; case AuthenticationProviderType.Federation: break; /* * case AuthenticationProviderType.OnlineFederation: * break; */ default: authCredentials.ClientCredentials.UserName.UserName = userName; authCredentials.ClientCredentials.UserName.Password = password; if (endpointType == AuthenticationProviderType.OnlineFederation) { var provider = service.GetIdentityProvider(authCredentials.ClientCredentials.UserName.UserName); if (provider != null && provider.IdentityProviderType == IdentityProviderType.LiveId) { authCredentials.SupportingCredentials = new AuthenticationCredentials { ClientCredentials = Microsoft.Crm.Services.Utility.DeviceIdManager.LoadOrRegisterDevice() }; } // /* authCredentials.SupportingCredentials = new AuthenticationCredentials * { * ClientCredentials = * Microsoft.Crm.Services.Utility.DeviceIdManager.LoadOrRegisterDevice() * };*/ // } break; } return(authCredentials); }
public OrganizationServiceProxy GetOrganizationServiceProxy(string organizationEndpoint, DynamicsCredentials dynamicsCredentials) { if (string.IsNullOrEmpty(organizationEndpoint)) { throw new ArgumentNullException(nameof(organizationEndpoint)); } var serviceManagement = ServiceConfigurationFactory.CreateManagement <IDiscoveryService>(new Uri(dynamicsCredentials.DiscoveryUrl)); var endpointType = serviceManagement.AuthenticationType; var orgServiceManagement = ServiceConfigurationFactory.CreateManagement <IOrganizationService>( new Uri(organizationEndpoint)); var credentials = GetCredentials(orgServiceManagement, endpointType, dynamicsCredentials); var proxy = GetProxy <IOrganizationService, OrganizationServiceProxy>(orgServiceManagement, credentials); proxy.EnableProxyTypes(); return(proxy); }
public DiscoveryServiceProxy GetDiscoveryServiceProxy(string discoveryServiceAddress, DynamicsCredentials credentials) { var serviceManagement = ServiceConfigurationFactory.CreateManagement <IDiscoveryService>(new Uri(discoveryServiceAddress)); var endpointType = serviceManagement.AuthenticationType; var authCredentials = GetCredentials(serviceManagement, endpointType, credentials); var discoveryProxy = GetProxy <IDiscoveryService, DiscoveryServiceProxy>(serviceManagement, authCredentials); return(discoveryProxy); }
public IHttpActionResult GetContactsWithAttributes(string orgName, string listId, [FromUri] DynamicsCredentials credentials, [FromUri] int top = 0, [FromUri] bool translate = true, [FromUri] bool allAttributes = true) { try { crmService = new CrmService(credentials, orgName); helper = new CrmApiHelper(crmService); var contacts = crmService.getContactsInList(listId, allAttributes, top); var goodLookingContacts = helper.getValuesFromContacts(contacts, translate, allAttributes); crmService.logout(); return(Ok(goodLookingContacts)); } catch (Exception ex) when(ex is MessageSecurityException || ex is ArgumentNullException) { return(Unauthorized()); } catch (Exception ex) when(ex is NullReferenceException || ex is FormatException) { return(BadRequest()); } }
public IHttpActionResult UpdateBulkEmailForContact(string orgName, string contactId, [FromUri] DynamicsCredentials credentials) { try { crmService = new CrmService(credentials, orgName); crmService.changeBulkEmail(contactId); crmService.logout(); return(Ok()); } catch (Exception ex) when(ex is MessageSecurityException || ex is ArgumentNullException) { return(Unauthorized()); } catch (Exception ex) when(ex is NullReferenceException || ex is FormatException || ex is FaultException) { return(BadRequest()); } }
public CrmService(DynamicsCredentials credentials) : this(credentials, "") { }