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); } }
private bool PlanExists(SfBUserPlan plan, SfBUserPlan[] plans) { bool result = false; foreach (SfBUserPlan p in plans) { if (p.SfBUserPlanName.ToLower() == plan.SfBUserPlanName.ToLower()) { result = true; break; } } return(result); }
public bool SetSfBUserPlan(string organizationId, string userUpn, SfBUserPlan plan) { try { Log.WriteStart("{0}.SetSfBUserPlan", ProviderSettings.ProviderName); bool ret = SfB.SetSfBUserPlan(organizationId, userUpn, plan); Log.WriteEnd("{0}.SetSfBUserPlan", ProviderSettings.ProviderName); return(ret); } catch (Exception ex) { Log.WriteError(String.Format("Error: {0}.SetSfBUserPlan", ProviderSettings.ProviderName), ex); throw; } }
public static int UpdateSfBUserPlan(int itemID, SfBUserPlan sfbUserPlan) { int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); if (accountCheck < 0) { return(accountCheck); } // place log record TaskManager.StartTask("SFB", "ADD_SFB_SFBUSERPLAN", itemID); try { Organization org = GetOrganization(itemID); if (org == null) { return(-1); } // load package context PackageContext cntx = PackageController.GetPackageContext(org.PackageId); sfbUserPlan.Conferencing = sfbUserPlan.Conferencing & Convert.ToBoolean(cntx.Quotas[Quotas.SFB_CONFERENCING].QuotaAllocatedValue); sfbUserPlan.EnterpriseVoice = sfbUserPlan.EnterpriseVoice & Convert.ToBoolean(cntx.Quotas[Quotas.SFB_ENTERPRISEVOICE].QuotaAllocatedValue); if (!sfbUserPlan.EnterpriseVoice) { sfbUserPlan.VoicePolicy = SfBVoicePolicyType.None; } sfbUserPlan.IM = true; DataProvider.UpdateSfBUserPlan(itemID, sfbUserPlan); } catch (Exception ex) { throw TaskManager.WriteError(ex); } finally { TaskManager.CompleteTask(); } return(0); }
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); }
protected void gvPlan_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "DeleteItem") { int planId = Utils.ParseInt(e.CommandArgument.ToString(), 0); try { SfBUserPlan plan = ES.Services.SfB.GetSfBUserPlan(PanelRequest.ItemID, planId); if (plan.SfBUserPlanType > 0) { ShowErrorMessage("EXCHANGE_UNABLE_USE_SYSTEMPLAN"); BindPlans(); return; } int result = ES.Services.SfB.DeleteSfBUserPlan(PanelRequest.ItemID, planId); if (result < 0) { messageBox.ShowResultMessage(result); return; } else { ShowSuccessMessage("REQUEST_COMPLETED_SUCCESFULLY"); } } catch (Exception) { messageBox.ShowErrorMessage("SFB_DELETE_PLAN"); } BindPlans(); } }
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); }
public static SfBUserResult CreateSfBUser(int itemId, int accountId, int sfbUserPlanId) { SfBUserResult res = TaskManager.StartResultTask <SfBUserResult>("SFB", "CREATE_SFB_USER"); int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); if (accountCheck < 0) { TaskManager.CompleteResultTask(res, SfBErrorCodes.NOT_AUTHORIZED); return(res); } SfBUser retSfBUser = new SfBUser(); bool isSfBUser; isSfBUser = DataProvider.CheckSfBUserExists(accountId); if (isSfBUser) { TaskManager.CompleteResultTask(res, SfBErrorCodes.USER_IS_ALREADY_SFB_USER); return(res); } OrganizationUser user; user = OrganizationController.GetAccount(itemId, accountId); if (user == null) { TaskManager.CompleteResultTask(res, ErrorCodes.CANNOT_GET_ACCOUNT); return(res); } user = OrganizationController.GetUserGeneralSettings(itemId, accountId); if (string.IsNullOrEmpty(user.FirstName)) { TaskManager.CompleteResultTask(res, SfBErrorCodes.USER_FIRST_NAME_IS_NOT_SPECIFIED); return(res); } if (string.IsNullOrEmpty(user.LastName)) { TaskManager.CompleteResultTask(res, SfBErrorCodes.USER_LAST_NAME_IS_NOT_SPECIFIED); return(res); } bool quota = CheckQuota(itemId); if (!quota) { TaskManager.CompleteResultTask(res, SfBErrorCodes.USER_QUOTA_HAS_BEEN_REACHED); return(res); } SfBServer sfb; try { bool bReloadConfiguration = false; 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); 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 { DomainInfo domain = ServerController.GetDomain(org.DefaultDomain); //Add the service records if (domain != null) { if (domain.ZoneItemId != 0) { ServerController.AddServiceDNSRecords(org.PackageId, ResourceGroups.SfB, domain, ""); } } PackageController.UpdatePackageItem(org); bReloadConfiguration = true; } } if (sfb.GetOrganizationTenantId(org.OrganizationId) == string.Empty) { 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); bReloadConfiguration = true; } } SfBUserPlan plan = GetSfBUserPlan(itemId, sfbUserPlanId); if (!sfb.CreateUser(org.OrganizationId, user.UserPrincipalName, plan)) { TaskManager.CompleteResultTask(res, SfBErrorCodes.CANNOT_ADD_SFB_USER); return(res); } if (bReloadConfiguration) { SfBControllerAsync userWorker = new SfBControllerAsync(); userWorker.SfBServiceId = sfbServiceId; userWorker.OrganizationServiceId = org.ServiceId; userWorker.Enable_CsComputerAsync(); } } catch (Exception ex) { TaskManager.CompleteResultTask(res, SfBErrorCodes.CANNOT_ADD_SFB_USER, ex); return(res); } try { DataProvider.AddSfBUser(accountId, sfbUserPlanId, user.UserPrincipalName); } catch (Exception ex) { TaskManager.CompleteResultTask(res, SfBErrorCodes.CANNOT_ADD_SFB_USER_TO_DATABASE, ex); return(res); } res.IsSuccess = true; TaskManager.CompleteResultTask(); return(res); }
private static void PopulateSfBReportItems(Organization org, EnterpriseSolutionStatisticsReport report, string topReseller) { //Check if sfb organization if (string.IsNullOrEmpty(org.SfBTenantId)) { return; } SfBUser[] sfbUsers = null; try { SfBUsersPagedResult res = SfBController.GetSfBUsers(org.Id); if (res.IsSuccess) { sfbUsers = res.Value.PageUsers; } } catch (Exception ex) { throw new ApplicationException( string.Format("Could not get sfb users for current organization {0}", org.Id), ex); } if (sfbUsers == null) { return; } foreach (SfBUser sfbUser in sfbUsers) { try { SfBUserStatistics stats = new SfBUserStatistics(); try { stats.SipAddress = sfbUser.SipAddress; if (string.IsNullOrEmpty(sfbUser.LineUri)) { stats.PhoneNumber = string.Empty; } else { stats.PhoneNumber = sfbUser.LineUri; } SfBUserPlan plan = SfBController.GetSfBUserPlan(org.Id, sfbUser.SfBUserPlanId); stats.Conferencing = plan.Conferencing; stats.EnterpriseVoice = plan.EnterpriseVoice; stats.Federation = plan.Federation; stats.InstantMessaing = plan.IM; stats.MobileAccess = plan.Mobility; stats.SfBUserPlan = plan.SfBUserPlanName; stats.DisplayName = sfbUser.DisplayName; } catch (Exception ex) { TaskManager.WriteError(ex, "Could not get sfb statistics. AccountName: {0}", sfbUser.DisplayName); } if (stats != null) { PopulateBaseItem(stats, org, topReseller); report.SfBReport.Items.Add(stats); } } catch (Exception ex) { TaskManager.WriteError(ex); } } }
public int UpdateSfBUserPlan(int itemId, SfBUserPlan sfbUserPlan) { return(SfBController.UpdateSfBUserPlan(itemId, sfbUserPlan)); }
public int AddSfBUserPlan(int itemId, SfBUserPlan sfbUserPlan) { return(SfBController.AddSfBUserPlan(itemId, sfbUserPlan)); }