Example #1
0
        private OCSUser GetUserGeneralSettingsInternal(string instanceId)
        {
            HostedSolutionLog.LogStart("GetUserGeneralSettingsInternal");
            try
            {
                if (string.IsNullOrEmpty(instanceId))
                {
                    throw new ArgumentException("instanceId");
                }

                using (ManagementObject userObject = GetUserByInstanceId(instanceId))
                {
                    if (userObject == null)
                    {
                        throw new Exception(string.Format("OCS user {0} not found", instanceId));
                    }

                    OCSUser user = new OCSUser();
                    user.InstanceId                     = instanceId;
                    user.PrimaryUri                     = (string)userObject["PrimaryURI"];
                    user.DisplayName                    = (string)userObject["DisplayName"];
                    user.EnabledForFederation           = (bool)userObject["EnabledForFederation"];
                    user.EnabledForPublicIMConectivity  = (bool)userObject["PublicNetworkEnabled"];
                    user.ArchiveInternalCommunications  = (bool)userObject["ArchiveInternalCommunications"];
                    user.ArchiveFederatedCommunications = (bool)userObject["ArchiveFederatedCommunications"];
                    user.EnabledForEnhancedPresence     = (bool)userObject["EnabledForEnhancedPresence"];

                    HostedSolutionLog.LogEnd("GetUserGeneralSettingsInternal");

                    return(user);
                }
            }
            catch (Exception ex)
            {
                HostedSolutionLog.LogError("GetUserGeneralSettingsInternal", ex);
                throw;
            }
        }
Example #2
0
		private OCSUser GetUserGeneralSettingsInternal(string instanceId)
		{
			HostedSolutionLog.LogStart("GetUserGeneralSettingsInternal");
			try
			{
				if (string.IsNullOrEmpty(instanceId))
					throw new ArgumentException("instanceId");

				using (ManagementObject userObject = GetUserByInstanceId(instanceId))
				{
					if (userObject == null)
					{
						throw new Exception(string.Format("OCS user {0} not found", instanceId));
					}

					OCSUser user = new OCSUser();
					user.InstanceId = instanceId;
					user.PrimaryUri = (string)userObject["PrimaryURI"];
					user.DisplayName = (string)userObject["DisplayName"];
					user.EnabledForFederation = (bool)userObject["EnabledForFederation"];
					user.EnabledForPublicIMConectivity = (bool)userObject["PublicNetworkEnabled"];
					user.ArchiveInternalCommunications = (bool)userObject["ArchiveInternalCommunications"];
					user.ArchiveFederatedCommunications = (bool)userObject["ArchiveFederatedCommunications"];
					user.EnabledForEnhancedPresence = (bool)userObject["EnabledForEnhancedPresence"];

					HostedSolutionLog.LogEnd("GetUserGeneralSettingsInternal");	

					return user;

				}
			}
			catch (Exception ex)
			{
				HostedSolutionLog.LogError("GetUserGeneralSettingsInternal", ex);
				throw;
			}
			
		}
Example #3
0
        public static OCSUserResult CreateOCSUser(int itemId, int accountId)
        {
            OCSUserResult res = TaskManager.StartResultTask<OCSUserResult>("OCS", "CREATE_OCS_USER");

            OCSUser retOCSUser = new OCSUser();
            bool isOCSUser;

            try
            {
                isOCSUser = DataProvider.CheckOCSUserExists(accountId);
            }
            catch (Exception ex)
            {
                TaskManager.CompleteResultTask(res, OCSErrorCodes.CANNOT_CHECK_IF_OCS_USER_EXISTS, ex);
                return res;
            }

            if (isOCSUser)
            {
                TaskManager.CompleteResultTask(res, OCSErrorCodes.USER_IS_ALREADY_OCS_USER);
                return res;
            }

            OrganizationUser user;
            try
            {
                user = OrganizationController.GetAccount(itemId, accountId);

                if (user == null)
                    throw new ApplicationException(
                        string.Format("User is null. ItemId={0}, AccountId={1}", itemId,
                                      accountId));

            }
            catch (Exception ex)
            {
                TaskManager.CompleteResultTask(res, ErrorCodes.CANNOT_GET_ACCOUNT, ex);
                return res;
            }


            try
            {
                user = OrganizationController.GetUserGeneralSettings(itemId, accountId);
                if (string.IsNullOrEmpty(user.FirstName))
                {
                    TaskManager.CompleteResultTask(res, OCSErrorCodes.USER_FIRST_NAME_IS_NOT_SPECIFIED);
                    return res;
                }
                
                if (string.IsNullOrEmpty(user.LastName))
                {
                    TaskManager.CompleteResultTask(res, OCSErrorCodes.USER_LAST_NAME_IS_NOT_SPECIFIED);
                    return res;
                }
            }
            catch (Exception ex)
            {
                TaskManager.CompleteResultTask(res, OCSErrorCodes.CANNOT_GET_USER_GENERAL_SETTINGS, ex);
                return res;
            }


            try
            {
                bool quota = CheckQuota(itemId);
                if (!quota)
                {
                    TaskManager.CompleteResultTask(res, OCSErrorCodes.USER_QUOTA_HAS_BEEN_REACHED);
                    return res;
                }
            }
            catch (Exception ex)
            {
                TaskManager.CompleteResultTask(res, OCSErrorCodes.CANNOT_CHECK_QUOTA, ex);
                return res;
            }


           OCSServer ocs;

           try
            {
                ocs = GetOCSProxy(itemId);
            }
            catch (Exception ex)
            {
                TaskManager.CompleteResultTask(res, OCSErrorCodes.CANNOT_GET_OCS_PROXY, ex);
                return res;
            }

            string instanceId;
            try
            {
                CreateOCSDomains(itemId);

                instanceId = ocs.CreateUser(user.PrimaryEmailAddress, user.DistinguishedName);
                retOCSUser.InstanceId = instanceId;
            }
            catch (Exception ex)
            {
                TaskManager.CompleteResultTask(res, OCSErrorCodes.CANNOT_ADD_OCS_USER, ex);
                return res;
            }


            try
            {
                SetUserGeneralSettingsByDefault(itemId, instanceId, ocs);
            }
            catch(Exception ex)
            {
                TaskManager.CompleteResultTask(res, OCSErrorCodes.CANNOT_SET_DEFAULT_SETTINGS, ex);
                return res;
                
            }
            
            try
            {
                DataProvider.AddOCSUser(accountId, instanceId);
            }
            catch (Exception ex)
            {
                TaskManager.CompleteResultTask(res, OCSErrorCodes.CANNOT_ADD_OCS_USER_TO_DATABASE, ex);
                return res;
            }

            res.Value = retOCSUser;
            TaskManager.CompleteResultTask();
            return res;

        }