diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config index 3766094f..6c7d9d64 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config @@ -5,11 +5,19 @@ - + + - - + + + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/DomainSelector.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/DomainSelector.ascx.cs index c56e96da..9b421295 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/DomainSelector.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/DomainSelector.ascx.cs @@ -37,6 +37,18 @@ namespace WebsitePanel.Portal.ExchangeServer.UserControls public string DomainName { get { return ddlDomain.SelectedItem.Text; } + set + { + foreach (ListItem li in ddlDomain.Items) + { + if (li.Value == value) + { + ddlDomain.ClearSelection(); + li.Selected = true; + break; + } + } + } } public int DomainId diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/EmailAddress.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/EmailAddress.ascx.cs index 39c9b920..9e19732f 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/EmailAddress.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/EmailAddress.ascx.cs @@ -69,13 +69,17 @@ namespace WebsitePanel.Portal.ExchangeServer.UserControls { return domain.DomainName; } + set + { + domain.DomainName = value; + } } public string Email { get { - return AccountName + "@" + DomainName; + return string.Format("{0}@{1}",AccountName, DomainName).ToLower(); } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx index 5da9df82..9ac249d9 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx @@ -1,2 +1,5 @@ <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="LyncUserSettings.ascx.cs" Inherits="WebsitePanel.Portal.Lync.UserControls.LyncUserSettings" %> - \ No newline at end of file +<%@ Register Src="../../ExchangeServer/UserControls/EmailAddress.ascx" TagName="EmailAddress" TagPrefix="wsp" %> + + + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx.cs index c7b45afa..78dc4792 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx.cs @@ -28,7 +28,9 @@ using System; using System.Web.UI.WebControls; -using EntServer = WebsitePanel.EnterpriseServer; +using WebsitePanel.EnterpriseServer; +using WebsitePanel.Providers.HostedSolution; +using WebsitePanel.Providers.ResultObjects; namespace WebsitePanel.Portal.Lync.UserControls { @@ -40,17 +42,50 @@ namespace WebsitePanel.Portal.Lync.UserControls public string sipAddress { - get { return ddlSipAddresses.SelectedItem.Value; } + get + { + if (ddlSipAddresses.Visible) + { + if ((ddlSipAddresses != null) && (ddlSipAddresses.SelectedItem != null)) + return ddlSipAddresses.SelectedItem.Value; + else + return string.Empty; + } + else + { + return email.Email; + } + } set { sipAddressToSelect = value; - foreach (ListItem li in ddlSipAddresses.Items) + + if (ddlSipAddresses.Visible) { - if (li.Value == value) + if ((ddlSipAddresses != null) && (ddlSipAddresses.Items != null)) { - ddlSipAddresses.ClearSelection(); - li.Selected = true; - break; + foreach (ListItem li in ddlSipAddresses.Items) + { + if (li.Value == value) + { + ddlSipAddresses.ClearSelection(); + li.Selected = true; + break; + } + } + } + } + else + { + if (!string.IsNullOrEmpty(value)) + { + string[] Tmp = value.Split('@'); + email.AccountName = Tmp[0]; + + if (Tmp.Length > 1) + { + email.DomainName = Tmp[1]; + } } } } @@ -76,25 +111,54 @@ namespace WebsitePanel.Portal.Lync.UserControls private void BindAddresses() { - EntServer.ExchangeEmailAddress[] emails = ES.Services.ExchangeServer.GetMailboxEmailAddresses(PanelRequest.ItemID, PanelRequest.AccountID); + OrganizationUser user = ES.Services.Organizations.GetUserGeneralSettings(PanelRequest.ItemID, PanelRequest.AccountID); - foreach (EntServer.ExchangeEmailAddress email in emails) - { - ListItem li = new ListItem(); - li.Text = email.EmailAddress; - li.Value = email.EmailAddress; - li.Selected = email.IsPrimary; - ddlSipAddresses.Items.Add(li); - } + if (user == null) + return; - foreach (ListItem li in ddlSipAddresses.Items) + if (user.AccountType == ExchangeAccountType.Mailbox) { - if (li.Value == sipAddressToSelect) + email.Visible = false; + ddlSipAddresses.Visible = true; + + WebsitePanel.EnterpriseServer.ExchangeEmailAddress[] emails = ES.Services.ExchangeServer.GetMailboxEmailAddresses(PanelRequest.ItemID, PanelRequest.AccountID); + + foreach (WebsitePanel.EnterpriseServer.ExchangeEmailAddress mail in emails) { - ddlSipAddresses.ClearSelection(); - li.Selected = true; - break; + ListItem li = new ListItem(); + li.Text = mail.EmailAddress; + li.Value = mail.EmailAddress; + li.Selected = mail.IsPrimary; + ddlSipAddresses.Items.Add(li); } + + foreach (ListItem li in ddlSipAddresses.Items) + { + if (li.Value == sipAddressToSelect) + { + ddlSipAddresses.ClearSelection(); + li.Selected = true; + break; + } + } + } + else + { + email.Visible = true; + ddlSipAddresses.Visible = false; + + if (!string.IsNullOrEmpty(sipAddressToSelect)) + { + string[] Tmp = sipAddressToSelect.Split('@'); + email.AccountName = Tmp[0]; + + if (Tmp.Length > 1) + { + email.DomainName = Tmp[1]; + } + } + + } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx.designer.cs index 202d581f..1400a773 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/LyncUserSettings.ascx.designer.cs @@ -1,31 +1,3 @@ -// Copyright (c) 2011, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - //------------------------------------------------------------------------------ // // This code was generated by a tool. @@ -48,5 +20,14 @@ namespace WebsitePanel.Portal.Lync.UserControls { /// To modify move field declaration from designer file to code-behind file. /// protected global::System.Web.UI.WebControls.DropDownList ddlSipAddresses; + + /// + /// email control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::WebsitePanel.Portal.ExchangeServer.UserControls.EmailAddress email; } }