public static ResultObject CreateBlackBerryUser(int itemId, int accountId) { ResultObject res = TaskManager.StartResultTask <ResultObject>("BLACBERRY", "CREATE_BLACKBERRY_USER"); bool isBlackBerryUser; try { isBlackBerryUser = DataProvider.CheckBlackBerryUserExists(accountId); } catch (Exception ex) { TaskManager.CompleteResultTask(res, BlackBerryErrorsCodes.CANNOT_CHECK_IF_BLACKBERRY_USER_EXISTS, ex); return(res); } if (isBlackBerryUser) { TaskManager.CompleteResultTask(res, BlackBerryErrorsCodes.USER_IS_ALREADY_BLAKBERRY_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); } if (user.AccountType != ExchangeAccountType.Mailbox) { TaskManager.CompleteResultTask(res, BlackBerryErrorsCodes.ACCOUNT_TYPE_IS_NOT_MAILBOX); return(res); } try { user = OrganizationController.GetUserGeneralSettings(itemId, accountId); if (string.IsNullOrEmpty(user.FirstName)) { TaskManager.CompleteResultTask(res, BlackBerryErrorsCodes.USER_FIRST_NAME_IS_NOT_SPECIFIED); return(res); } if (string.IsNullOrEmpty(user.LastName)) { TaskManager.CompleteResultTask(res, BlackBerryErrorsCodes.USER_LAST_NAME_IS_NOT_SPECIFIED); return(res); } } catch (Exception ex) { TaskManager.CompleteResultTask(res, BlackBerryErrorsCodes.CANNOT_GET_USER_GENERAL_SETTINGS, ex); return(res); } BlackBerry blackBerry; try { blackBerry = GetBlackBerryProxy(itemId); } catch (Exception ex) { TaskManager.CompleteResultTask(res, BlackBerryErrorsCodes.CANNOT_GET_BLACKBERRY_PROXY, ex); return(res); } try { bool quota = CheckQuota(itemId); if (!quota) { TaskManager.CompleteResultTask(res, BlackBerryErrorsCodes.USER_QUOTA_HAS_BEEN_REACHED); return(res); } } catch (Exception ex) { TaskManager.CompleteResultTask(res, BlackBerryErrorsCodes.CANNOT_CHECK_QUOTA, ex); return(res); } try { ResultObject userRes = blackBerry.CreateBlackBerryUser(user.PrimaryEmailAddress); res.ErrorCodes.AddRange(userRes.ErrorCodes); if (!userRes.IsSuccess) { TaskManager.CompleteResultTask(res); return(res); } } catch (Exception ex) { TaskManager.CompleteResultTask(res, BlackBerryErrorsCodes.CANNOT_ADD_BLACKBERRY_USER, ex); return(res); } try { DataProvider.AddBlackBerryUser(accountId); } catch (Exception ex) { TaskManager.CompleteResultTask(res, BlackBerryErrorsCodes.CANNOT_ADD_BLACKBERRY_USER_TO_DATABASE, ex); return(res); } TaskManager.CompleteResultTask(); return(res); }