using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.UI.WebControls;
using FrameworkCore;
using SharePointCore;
namespace BdsgIgWeb.Groups.Bpa
{
public partial class ContactsSearch : System.Web.UI.Page
{
//*******************************************************************
// Page Load
//*******************************************************************
protected void Page_Load(object _sender, EventArgs _e)
{
if (!Page.IsPostBack)
{
//Get Sharepoint Credentials
NHibernateDataProviderIg providerM = new NHibernateDataProviderIg(NHibernateStaticSessionManager.SessionFactoryM.GetCurrentSession());
//Get Regulatory Contacts List
using (var sharePointDataProvider = new SharePointDataProvider(providerM))
{
const string NAME_EMPTY = null;
const string FIRM_COMPANY_EMPTY = null;
//Get Contacts
IEnumerable<Contacts> contacts = sharePointDataProvider.GetSharePointRegulatoryContacts(NAME_EMPTY, FIRM_COMPANY_EMPTY);
//Build Lookup Dropdown Values.
BuildLookupLists(contacts);
}
}
}
//*****************************************************************************
// Build Program Lookup Values
//*****************************************************************************
private void BuildLookupLists(IEnumerable<Contacts> _contacts)
{
//Get Contact Names ComboBox Dropdown Values
var contactNamesDistinct = (from c in _contacts
orderby c.Name
select new { Name = c.Name == null ? string.Empty : c.Name.Trim() }).Distinct();
cbContactName.DataSource = contactNamesDistinct;
cbContactName.DataTextField = "Name";
cbContactName.DataValueField = "Name";
cbContactName.DataBind();
cbContactName.Items.Insert(0, new ListItem("", null));
cbContactName.Width = 200;
//Get FirmCompany ComboBox Dropdown Values
var firmCompanyNamesDistinct = (from c in _contacts
orderby c.FirmCompany
select new { FirmCompany = c.FirmCompany == null ? string.Empty : c.FirmCompany.Trim() }).Distinct();
cbFirmCompanyName.DataSource = firmCompanyNamesDistinct;
cbFirmCompanyName.DataTextField = "FirmCompany";
cbFirmCompanyName.DataValueField = "FirmCompany";
cbFirmCompanyName.DataBind();
cbFirmCompanyName.Items.Insert(0, new ListItem("", null));
cbFirmCompanyName.Width = 200;
}
//*****************************************************************************
//Search Regulatory Contacts.
//*****************************************************************************
protected void btnSearch_Click(object _sender, EventArgs _e)
{
ProcessSearchRequest();
}
//*****************************************************************************
// Process Search Request
//*****************************************************************************
private void ProcessSearchRequest()
{
const int STRING_LENGTH_MAX = 150;
NHibernateDataProviderIg providerM = new NHibernateDataProviderIg(NHibernateStaticSessionManager.SessionFactoryM.GetCurrentSession());
//Get Regulatory Contacts List
using (var sharePointDataProvider = new SharePointDataProvider(providerM))
{
//Get Contacts
IEnumerable<Contacts> contacts = sharePointDataProvider.GetSharePointRegulatoryContacts(cbContactName.Text, cbFirmCompanyName.Text);
//Apply Filters
var contactsfiltered = from c in contacts
orderby c.Name, c.FirmCompany
select new
{
Name = c.Name == null ? string.Empty : c.Name.Trim(),
ContactDetailsLink = string.Format("http://YourSharePointSite/Sites/SiteName/Lists/Contacts/DispForm.aspx?ID={0}", c.ID),
Title = c.Title == null ? string.Empty : c.Title.Trim(),
FirmCompany = c.FirmCompany == null ? string.Empty : c.FirmCompany.Trim(),
Phone = c.Phone == null ? string.Empty : c.Phone.Trim(),
Cell = c.Cell == null ? string.Empty : c.Cell.Trim(),
Email = c.Email == null ? string.Empty : c.Email.Trim(),
EmailMailTo = c.Email == null ? string.Empty : string.Format("mailto://{0}", c.Email.Trim()),
Address = c.Address == null ? string.Empty : c.Address.Trim(),
Notes = c.Notes == null ? string.Empty : bdsgIgFrameworkCoreWebUtils.TruncateAndRemoveRtfFromString(c.Notes, STRING_LENGTH_MAX)
};
gvContacts.DataSource = contactsfiltered;
gvContacts.DataBind();
}
}
}
}