public static int DeleteOrganization(int itemId) { // check account int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); if (accountCheck < 0) { return(accountCheck); } // place log record TaskManager.StartTask("SFB", "DELETE_ORG", itemId); try { // delete organization in Exchange //System.Threading.Thread.Sleep(5000); Organization org = (Organization)PackageController.GetPackageItem(itemId); int sfbServiceId = GetSfBServiceID(org.PackageId); SfBServer sfb = GetSfBServer(sfbServiceId, org.ServiceId); bool successful = sfb.DeleteOrganization(org.OrganizationId, org.DefaultDomain); return(successful ? 0 : BusinessErrorCodes.ERROR_SFB_DELETE_SOME_PROBLEMS); } catch (Exception ex) { throw TaskManager.WriteError(ex); } finally { TaskManager.CompleteTask(); } }
public static SfBFederationDomain[] GetFederationDomains(int itemId) { // place log record TaskManager.StartTask("SFB", "GET_SFB_FEDERATIONDOMAINS", itemId); SfBFederationDomain[] sfbFederationDomains = null; try { Organization org = (Organization)PackageController.GetPackageItem(itemId); int sfbServiceId = GetSfBServiceID(org.PackageId); SfBServer sfb = GetSfBServer(sfbServiceId, org.ServiceId); sfbFederationDomains = sfb.GetFederationDomains(org.OrganizationId); } catch (Exception ex) { throw TaskManager.WriteError(ex); } finally { TaskManager.CompleteTask(); } return(sfbFederationDomains); }
public static SfBUserResult SetUserSfBPlan(int itemId, int accountId, int sfbUserPlanId) { SfBUserResult res = TaskManager.StartResultTask <SfBUserResult>("SFB", "SET_SFB_USER_SFBPLAN"); int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); if (accountCheck < 0) { TaskManager.CompleteResultTask(res, SfBErrorCodes.NOT_AUTHORIZED); return(res); } try { Organization org = (Organization)PackageController.GetPackageItem(itemId); if (org == null) { throw new ApplicationException( string.Format("Organization is null. ItemId={0}", itemId)); } int sfbServiceId = GetSfBServiceID(org.PackageId); SfBServer sfb = GetSfBServer(sfbServiceId, org.ServiceId); SfBUserPlan plan = GetSfBUserPlan(itemId, sfbUserPlanId); OrganizationUser user; user = OrganizationController.GetAccount(itemId, accountId); if (!sfb.SetSfBUserPlan(org.OrganizationId, user.UserPrincipalName, plan)) { TaskManager.CompleteResultTask(res, SfBErrorCodes.CANNOT_ADD_SFB_USER); return(res); } try { DataProvider.SetSfBUserSfBUserplan(accountId, sfbUserPlanId); } catch (Exception ex) { TaskManager.CompleteResultTask(res, SfBErrorCodes.CANNOT_ADD_SFB_USER_TO_DATABASE, ex); return(res); } res.IsSuccess = true; TaskManager.CompleteResultTask(); return(res); } catch (Exception ex) { TaskManager.CompleteResultTask(res, SfBErrorCodes.CANNOT_UPDATE_SFB_USER, ex); return(res); } }
public static string[] GetPolicyList(int itemId, SfBPolicyType type, string name) { string[] ret = null; try { if (itemId == -1) { // policy list in all sfb servers List <string> allpolicylist = new List <string>(); List <ServerInfo> servers = ServerController.GetAllServers(); foreach (ServerInfo server in servers) { List <ServiceInfo> services = ServerController.GetServicesByServerIdGroupName(server.ServerId, ResourceGroups.SfB); foreach (ServiceInfo service in services) { SfBServer sfb = GetSfBServer(service.ServiceId, -1); string[] values = sfb.GetPolicyList(type, name); foreach (string val in values) { if (allpolicylist.IndexOf(val) == -1) { allpolicylist.Add(val); } } } } ret = allpolicylist.ToArray(); } else { Organization org = (Organization)PackageController.GetPackageItem(itemId); int sfbServiceId = GetSfBServiceID(org.PackageId); SfBServer sfb = GetSfBServer(sfbServiceId, org.ServiceId); ret = sfb.GetPolicyList(type, name); } } catch (Exception) { } finally { } return(ret); }
public static SfBServer GetSfBServer(int sfbServiceId, int organizationServiceId) { SfBServer ws = new SfBServer(); ServiceProviderProxy.Init(ws, sfbServiceId); string[] sfbSettings = ws.ServiceProviderSettingsSoapHeaderValue.Settings; List <string> resSettings = new List <string>(sfbSettings); if (organizationServiceId != -1) { ExtendSfBSettings(resSettings, "primarydomaincontroller", GetProviderProperty(organizationServiceId, "primarydomaincontroller")); ExtendSfBSettings(resSettings, "rootou", GetProviderProperty(organizationServiceId, "rootou")); } ws.ServiceProviderSettingsSoapHeaderValue.Settings = resSettings.ToArray(); return(ws); }
public static SfBUser GetSfBUserGeneralSettings(int itemId, int accountId) { TaskManager.StartTask("SFB", "GET_SFB_USER_GENERAL_SETTINGS"); SfBUser user = null; try { Organization org = (Organization)PackageController.GetPackageItem(itemId); if (org == null) { throw new ApplicationException( string.Format("Organization is null. ItemId={0}", itemId)); } int sfbServiceId = GetSfBServiceID(org.PackageId); SfBServer sfb = GetSfBServer(sfbServiceId, org.ServiceId); OrganizationUser usr; usr = OrganizationController.GetAccount(itemId, accountId); if (usr != null) { user = sfb.GetSfBUserGeneralSettings(org.OrganizationId, usr.UserPrincipalName); } if (user != null) { SfBUserPlan plan = ObjectUtils.FillObjectFromDataReader <SfBUserPlan>(DataProvider.GetSfBUserPlanByAccountId(accountId)); if (plan != null) { user.SfBUserPlanId = plan.SfBUserPlanId; user.SfBUserPlanName = plan.SfBUserPlanName; } } } catch (Exception ex) { throw TaskManager.WriteError(ex); } TaskManager.CompleteTask(); return(user); }
public static SfBUserResult RemoveFederationDomain(int itemId, string domainName) { SfBUserResult res = TaskManager.StartResultTask <SfBUserResult>("SFB", "REMOVE_SFB_FEDERATIONDOMAIN", itemId, new BackgroundTaskParameter("domainName", domainName)); int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); if (accountCheck < 0) { TaskManager.CompleteResultTask(res, SfBErrorCodes.NOT_AUTHORIZED); return(res); } try { Organization org = (Organization)PackageController.GetPackageItem(itemId); if (org == null) { throw new ApplicationException( string.Format("Organization is null. ItemId={0}", itemId)); } int sfbServiceId = GetSfBServiceID(org.PackageId); SfBServer sfb = GetSfBServer(sfbServiceId, org.ServiceId); if (org.OrganizationId.ToLower() == domainName.ToLower()) { TaskManager.CompleteResultTask(res, SfBErrorCodes.CANNOT_REMOVE_SFB_FEDERATIONDOMAIN); return(res); } sfb.RemoveFederationDomain(org.OrganizationId, domainName); } catch (Exception ex) { TaskManager.CompleteResultTask(res, SfBErrorCodes.CANNOT_REMOVE_SFB_FEDERATIONDOMAIN, ex); return(res); } TaskManager.CompleteResultTask(); return(res); }
private void Enable_CsComputer() { int[] sfbServiceIds; SfBController.GetSfBServices(sfbServiceId, out sfbServiceIds); foreach (int id in sfbServiceIds) { SfBServer sfb = null; try { sfb = SfBController.GetSfBServer(id, organizationServiceId); if (sfb != null) { sfb.ReloadConfiguration(); } } catch (Exception exe) { TaskManager.WriteError(exe); continue; } } }
public static SfBUserResult AddFederationDomain(int itemId, string domainName, string proxyFqdn) { List <BackgroundTaskParameter> parameters = new List <BackgroundTaskParameter>(); parameters.Add(new BackgroundTaskParameter("domainName", domainName)); parameters.Add(new BackgroundTaskParameter("proxyFqdn", proxyFqdn)); SfBUserResult res = TaskManager.StartResultTask <SfBUserResult>("SFB", "ADD_SFB_FEDERATIONDOMAIN", itemId, parameters); int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); if (accountCheck < 0) { TaskManager.CompleteResultTask(res, SfBErrorCodes.NOT_AUTHORIZED); return(res); } try { Organization org = (Organization)PackageController.GetPackageItem(itemId); if (org == null) { throw new ApplicationException( string.Format("Organization is null. ItemId={0}", itemId)); } int sfbServiceId = GetSfBServiceID(org.PackageId); SfBServer sfb = GetSfBServer(sfbServiceId, org.ServiceId); if (string.IsNullOrEmpty(org.SfBTenantId)) { PackageContext cntx = PackageController.GetPackageContext(org.PackageId); org.SfBTenantId = sfb.CreateOrganization(org.OrganizationId, org.DefaultDomain, Convert.ToBoolean(cntx.Quotas[Quotas.SFB_CONFERENCING].QuotaAllocatedValue), Convert.ToBoolean(cntx.Quotas[Quotas.SFB_ALLOWVIDEO].QuotaAllocatedValue), Convert.ToInt32(cntx.Quotas[Quotas.SFB_MAXPARTICIPANTS].QuotaAllocatedValue), Convert.ToBoolean(cntx.Quotas[Quotas.SFB_FEDERATION].QuotaAllocatedValue), Convert.ToBoolean(cntx.Quotas[Quotas.SFB_ENTERPRISEVOICE].QuotaAllocatedValue)); if (string.IsNullOrEmpty(org.SfBTenantId)) { TaskManager.CompleteResultTask(res, SfBErrorCodes.CANNOT_ENABLE_ORG); return(res); } else { PackageController.UpdatePackageItem(org); } } sfb = GetSfBServer(sfbServiceId, org.ServiceId); bool bDomainExists = false; SfBFederationDomain[] domains = GetFederationDomains(itemId); foreach (SfBFederationDomain d in domains) { if (d.DomainName.ToLower() == domainName.ToLower()) { bDomainExists = true; break; } } if (!bDomainExists) { sfb.AddFederationDomain(org.OrganizationId, domainName.ToLower(), proxyFqdn); } } catch (Exception ex) { TaskManager.CompleteResultTask(res, SfBErrorCodes.CANNOT_ADD_SFB_FEDERATIONDOMAIN, ex); return(res); } TaskManager.CompleteResultTask(); return(res); }
public static SfBUserResult SetSfBUserGeneralSettings(int itemId, int accountId, string sipAddress, string lineUri) { SfBUserResult res = TaskManager.StartResultTask <SfBUserResult>("SFB", "SET_SFB_USER_GENERAL_SETTINGS"); string PIN = ""; string[] uriAndPin = ("" + lineUri).Split(':'); if (uriAndPin.Length > 0) { lineUri = uriAndPin[0]; } if (uriAndPin.Length > 1) { PIN = uriAndPin[1]; } SfBUser user = null; try { Organization org = (Organization)PackageController.GetPackageItem(itemId); if (org == null) { throw new ApplicationException( string.Format("Organization is null. ItemId={0}", itemId)); } int sfbServiceId = GetSfBServiceID(org.PackageId); SfBServer sfb = GetSfBServer(sfbServiceId, org.ServiceId); OrganizationUser usr; usr = OrganizationController.GetAccount(itemId, accountId); if (usr != null) { user = sfb.GetSfBUserGeneralSettings(org.OrganizationId, usr.UserPrincipalName); } if (user != null) { SfBUserPlan plan = ObjectUtils.FillObjectFromDataReader <SfBUserPlan>(DataProvider.GetSfBUserPlanByAccountId(accountId)); if (plan != null) { user.SfBUserPlanId = plan.SfBUserPlanId; user.SfBUserPlanName = plan.SfBUserPlanName; } if (!string.IsNullOrEmpty(sipAddress)) { if (user.SipAddress != sipAddress) { if (sipAddress != usr.UserPrincipalName) { if (DataProvider.SfBUserExists(accountId, sipAddress)) { TaskManager.CompleteResultTask(res, SfBErrorCodes.ADDRESS_ALREADY_USED); return(res); } } user.SipAddress = sipAddress; } } user.LineUri = lineUri; user.PIN = PIN; sfb.SetSfBUserGeneralSettings(org.OrganizationId, usr.UserPrincipalName, user); DataProvider.UpdateSfBUser(accountId, sipAddress); } } catch (Exception ex) { TaskManager.CompleteResultTask(res, SfBErrorCodes.FAILED_SET_SETTINGS, ex); return(res); } res.IsSuccess = true; TaskManager.CompleteResultTask(); return(res); }