public static CrmUserResult GetCrmUser(int itemId, int accountId) { CrmUserResult res = StartTask <CrmUserResult>("CRM", "GET_CRM_USER"); try { Guid crmUserId = GetCrmUserId(accountId); Organization org; try { org = OrganizationController.GetOrganization(itemId); } catch (Exception ex) { CompleteTask(res, ErrorCodes.CANNOT_GET_ORGANIZATION_BY_ITEM_ID, ex); return(res); } int serviceId = PackageController.GetPackageServiceId(org.PackageId, ResourceGroups.HostedCRM); if (serviceId == 0) { CompleteTask(res, CrmErrorCodes.CRM_IS_NOT_SELECTED_IN_HOSTING_PLAN, null, "CRM is not selected in hosting plan."); return(res); } try { CRM crm = new CRM(); ServiceProviderProxy.Init(crm, serviceId); CrmUserResult user = crm.GetCrmUserById(crmUserId, org.OrganizationId); res.ErrorCodes.AddRange(user.ErrorCodes); if (!user.IsSuccess) { CompleteTask(res); return(res); } res.Value = user.Value; } catch (Exception ex) { CompleteTask(res, CrmErrorCodes.CANONT_GET_CRM_USER_BY_ID, ex); return(res); } } catch (Exception ex) { CompleteTask(res, CrmErrorCodes.CANONT_GET_CRM_USER_GENERAL_ERROR, ex); return(res); } CompleteTask(); return(res); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { try { OrganizationUser user = ES.Services.Organizations.GetUserGeneralSettings(PanelRequest.ItemID, PanelRequest.AccountID); CrmUserResult userResult = ES.Services.CRM.GetCrmUser(PanelRequest.ItemID, PanelRequest.AccountID); if (userResult.IsSuccess) { btnActive.Visible = userResult.Value.IsDisabled; locEnabled.Visible = !userResult.Value.IsDisabled; btnDeactivate.Visible = !userResult.Value.IsDisabled; locDisabled.Visible = userResult.Value.IsDisabled; lblDisplayName.Text = user.DisplayName; lblEmailAddress.Text = user.PrimaryEmailAddress; lblDomainName.Text = user.DomainUserName; } else { messageBox.ShowMessage(userResult, "GET_CRM_USER", "HostedCRM"); return; } CrmRolesResult res = ES.Services.CRM.GetCrmRoles(PanelRequest.ItemID, PanelRequest.AccountID, PanelSecurity.PackageId); if (res.IsSuccess) { gvRoles.DataSource = res.Value; gvRoles.DataBind(); } else { messageBox.ShowMessage(res, "GET_CRM_USER_ROLES", "HostedCRM"); } } catch (Exception ex) { messageBox.ShowErrorMessage("GET_CRM_USER_ROLES", ex); } } }
private static void PopulateCRMReportItems(Organization org, EnterpriseSolutionStatisticsReport report, string topReseller) { if (org.CrmOrganizationId == Guid.Empty) { return; } List <OrganizationUser> users; try { users = CRMController.GetCRMOrganizationUsers(org.Id); } catch (Exception ex) { throw new ApplicationException( string.Format("Could not get CRM Organization users. OrgId : {0}", org.Id), ex); } CRM crm; try { crm = GetCRMProxy(org.PackageId); } catch (Exception ex) { throw new ApplicationException(string.Format("Could not get CRM Proxy. PackageId: {0}", org.PackageId), ex); } foreach (OrganizationUser user in users) { try { CRMOrganizationStatistics stats = new CRMOrganizationStatistics(); PopulateBaseItem(stats, org, topReseller); stats.CRMOrganizationId = org.CrmOrganizationId; stats.CRMUserName = user.DisplayName; Guid crmUserId = CRMController.GetCrmUserId(user.AccountId); CrmUserResult res = crm.GetCrmUserById(crmUserId, org.OrganizationId); if (res.IsSuccess && res.Value != null) { stats.ClientAccessMode = res.Value.ClientAccessMode; stats.CRMDisabled = res.Value.IsDisabled; } else { StringBuilder sb = new StringBuilder("Could not get CRM user by id."); foreach (string str in res.ErrorCodes) { sb.AppendFormat("\n{0};", str); } throw new ApplicationException(sb.ToString()); } report.CRMReport.Items.Add(stats); } catch (Exception ex) { TaskManager.WriteError(ex); } } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId); if (cntx.Groups.ContainsKey(ResourceGroups.HostedCRM2013)) { ddlLicenseType.Items.Add(new System.Web.UI.WebControls.ListItem( GetSharedLocalizedString("HostedCRM.LicenseProfessional"), CRMUserLycenseTypes.PROFESSIONAL.ToString())); ddlLicenseType.Items.Add(new System.Web.UI.WebControls.ListItem( GetSharedLocalizedString("HostedCRM.LicenseBasic"), CRMUserLycenseTypes.BASIC.ToString())); ddlLicenseType.Items.Add(new System.Web.UI.WebControls.ListItem( GetSharedLocalizedString("HostedCRM.LicenseEssential"), CRMUserLycenseTypes.ESSENTIAL.ToString())); } else { ddlLicenseType.Items.Add(new System.Web.UI.WebControls.ListItem( GetSharedLocalizedString("HostedCRM.LicenseFull"), CRMUserLycenseTypes.FULL.ToString())); ddlLicenseType.Items.Add(new System.Web.UI.WebControls.ListItem( GetSharedLocalizedString("HostedCRM.LicenseLimited"), CRMUserLycenseTypes.LIMITED.ToString())); ddlLicenseType.Items.Add(new System.Web.UI.WebControls.ListItem( GetSharedLocalizedString("HostedCRM.LicenseESS"), CRMUserLycenseTypes.ESS.ToString())); } try { OrganizationUser user = ES.Services.Organizations.GetUserGeneralSettings(PanelRequest.ItemID, PanelRequest.AccountID); CrmUserResult userResult = ES.Services.CRM.GetCrmUser(PanelRequest.ItemID, PanelRequest.AccountID); if (userResult.IsSuccess) { btnActive.Visible = userResult.Value.IsDisabled; locEnabled.Visible = !userResult.Value.IsDisabled; btnDeactivate.Visible = !userResult.Value.IsDisabled; locDisabled.Visible = userResult.Value.IsDisabled; lblDisplayName.Text = user.DisplayName; lblEmailAddress.Text = user.PrimaryEmailAddress; lblDomainName.Text = user.DomainUserName; int cALType = userResult.Value.CALType + ((int)userResult.Value.ClientAccessMode) * 10; Utils.SelectListItem(ddlLicenseType, cALType); } else { messageBox.ShowMessage(userResult, "GET_CRM_USER", "HostedCRM"); return; } CrmRolesResult res = ES.Services.CRM.GetCrmRoles(PanelRequest.ItemID, PanelRequest.AccountID, PanelSecurity.PackageId); if (res.IsSuccess) { gvRoles.DataSource = res.Value; gvRoles.DataBind(); } else { messageBox.ShowMessage(res, "GET_CRM_USER_ROLES", "HostedCRM"); } } catch (Exception ex) { messageBox.ShowErrorMessage("GET_CRM_USER_ROLES", ex); } } }
public static CrmRolesResult GetCRMRoles(int itemId, int accountId, int packageId) { CrmRolesResult res = StartTask <CrmRolesResult>("CRM", "GET_CRM_ROLES"); try { int serviceId = PackageController.GetPackageServiceId(packageId, ResourceGroups.HostedCRM); if (serviceId == 0) { CompleteTask(res, CrmErrorCodes.CRM_IS_NOT_SELECTED_IN_HOSTING_PLAN, null, "CRM is not selected in hosting plan."); return(res); } CRM crm = new CRM(); ServiceProviderProxy.Init(crm, serviceId); Organization org = OrganizationController.GetOrganization(itemId); CrmUserResult crmUserResult = GetCrmUser(itemId, accountId); res.ErrorCodes.AddRange(crmUserResult.ErrorCodes); if (!crmUserResult.IsSuccess) { CompleteTask(res); return(res); } CrmUser crmUser = crmUserResult.Value; CrmRolesResult crmRoles = crm.GetAllCrmRoles(org.OrganizationId, crmUser.BusinessUnitId); res.ErrorCodes.AddRange(crmRoles.ErrorCodes); if (!crmRoles.IsSuccess) { CompleteTask(res); return(res); } Guid userId = crmUser.CRMUserId; CrmRolesResult crmUserRoles = crm.GetCrmUserRoles(org.OrganizationId, userId); res.ErrorCodes.AddRange(crmUserRoles.ErrorCodes); if (!crmUserRoles.IsSuccess) { CompleteTask(res); return(res); } foreach (CrmRole role in crmUserRoles.Value) { CrmRole retRole = crmRoles.Value.Find(delegate(CrmRole currentRole) { return(currentRole.RoleId == role.RoleId); }); if (retRole != null) { retRole.IsCurrentUserRole = true; } } res.Value = crmRoles.Value; } catch (Exception ex) { CompleteTask(res, CrmErrorCodes.CANNOT_GET_CRM_ROLES_GENERAL_ERROR, ex); return(res); } CompleteTask(); return(res); }
public static OrganizationResult CreateOrganization(int organizationId, string baseCurrencyCode, string baseCurrencyName, string baseCurrencySymbol, string regionName, int userId, string collation) { OrganizationResult res = StartTask <OrganizationResult>("CRM", "CREATE_ORGANIZATION"); try { Organization org = OrganizationController.GetOrganization(organizationId); try { if (!CheckQuota(org.PackageId)) { CompleteTask(res, CrmErrorCodes.QUOTA_HAS_BEEN_REACHED); return(res); } } catch (Exception ex) { CompleteTask(res, CrmErrorCodes.CANNOT_CHECK_QUOTAS, ex); return(res); } CRM crm = GetCRMProxy(org.PackageId); Guid orgId = Guid.NewGuid(); OrganizationUser user = OrganizationController.GetUserGeneralSettings(organizationId, userId); if (string.IsNullOrEmpty(user.FirstName)) { CompleteTask(res, CrmErrorCodes.FIRST_NAME_IS_NOT_SPECIFIED); return(res); } if (string.IsNullOrEmpty(user.LastName)) { CompleteTask(res, CrmErrorCodes.LAST_NAME_IS_NOT_SPECIFIED); return(res); } org.CrmAdministratorId = user.AccountId; org.CrmCurrency = string.Join("|", new[] { baseCurrencyCode, baseCurrencyName, baseCurrencySymbol, regionName }); org.CrmCollation = collation; org.CrmOrgState = (int)CrmOrganizationState.Enabled; org.CrmOrganizationId = orgId; OrganizationResult serverRes = crm.CreateOrganization(orgId, org.OrganizationId, org.Name, baseCurrencyCode, baseCurrencyName, baseCurrencySymbol, user.AccountName, user.FirstName, user.LastName, user.PrimaryEmailAddress, collation); if (!serverRes.IsSuccess) { res.ErrorCodes.AddRange(serverRes.ErrorCodes); CompleteTask(res); return(res); } ValueResultObject <DomainInfo> resDomain = CreateOrganizationDomain(org); res.ErrorCodes.AddRange(resDomain.ErrorCodes); int crmServiceId = GetCRMServiceId(org.PackageId); StringDictionary serviceSettings = ServerController.GetServiceSettings(crmServiceId); string port = serviceSettings[Constants.Port]; string schema = serviceSettings[Constants.UrlSchema]; if (port == "80" && schema == "http") { port = string.Empty; } if (port == "443" && schema == "https") { port = string.Empty; } if (port != string.Empty) { port = ":" + port; } string strDomainName = string.Format("{0}.{1}", org.OrganizationId, serviceSettings[Constants.IFDWebApplicationRootDomain]); org.CrmUrl = string.Format("{0}://{1}{2}", schema, strDomainName, port); PackageController.UpdatePackageItem(org); CrmUserResult crmUser = crm.GetCrmUserByDomainName(user.DomainUserName, org.OrganizationId); res.ErrorCodes.AddRange(crmUser.ErrorCodes); if (crmUser.IsSuccess) { try { DataProvider.CreateCRMUser(userId, crmUser.Value.CRMUserId, crmUser.Value.BusinessUnitId); } catch (Exception ex) { CompleteTask(res, CrmErrorCodes.CANNOT_ADD_ORGANIZATION_OWNER_TO_ORGANIZATIO_USER, ex, "Cannot add organization owner to organization users"); } } res.Value = org; } catch (Exception ex) { CompleteTask(res, CrmErrorCodes.CREATE_CRM_ORGANIZATION_GENERAL_ERROR, ex); return(res); } CompleteTask(); return(res); }