using System;
using System.ComponentModel;
using System.Web.UI.WebControls;
using SiberTek.Xenta.Enums;
using SiberTek.Xenta.Presentation;
using SiberTek.Xenta.Presentation.Presenters;
using SiberTek.Xenta.Presentation.Utils;
using SiberTek.Xenta.Presentation.Views;
using SiberTek.Xenta.Presentation.Resources;
using SiberTek.Xenta.Utils;
using SiberTek.Xenta.Web.Controls;
namespace SiberTek.Xenta.Web.Home.Modules
{
public partial class ProfileForm : ViewBase<UserPresenter>, IForm, ICommandHandler
{
#region Properties
public string ValidationGroup
{
set
{
vldEmail.ValidationGroup = value;
vldEmail2.ValidationGroup = value;
}
}
public bool Enabled
{
set
{
txtEmail.ReadOnly = !value;
txtFirstName.ReadOnly = !value;
txtLastName.ReadOnly = !value;
txtBirthDate.ReadOnly = !value;
lstGenderList.Enabled = value;
lstLanguageList.Enabled = value;
lstCountryList.Enabled = value;
lstCurrencyList.Enabled = value;
lstTimeZoneList.Enabled = value;
}
}
#endregion
#region Methods
public void Reset()
{
txtFirstName.Text = String.Empty;
txtLastName.Text = String.Empty;
txtEmail.Text = String.Empty;
txtBirthDate.Text = String.Empty;
lstGenderList.SelectedValue = Gender.NotDefined;
lstLanguageList.SelectedValue = SystemHelper.GetSystemParam<Int32>("Language.Default");
lstCountryList.SelectedValue = SystemHelper.GetSystemParam<Int32>("Country.Default");
lstTimeZoneList.SelectedValue = SystemHelper.GetSystemParam<Int32>("Language.Default");
lstCurrencyList.SelectedValue = SystemHelper.GetSystemParam<Int32>("Currency.Default");
}
public override void BindData()
{
DataContainer["UserID"] = UserContext.Current.UserID;
Presenter.Load();
ViewDataContainer item = DataContainer["User"] as ViewDataContainer;
if(item != null)
{
txtFirstName.Text = (string)item["FirstName"];
txtLastName.Text = (string)item["LastName"];
txtEmail.Text = (string)item["Email"];
txtBirthDate.Text = ((DateTime?)item["BirthDate"]).HasValue ? UserContext.Current.DateTimeToDateString((DateTime)item["BirthDate"]) : String.Empty;
lstGenderList.SelectedValue = (Gender)item["Gender"];
lstLanguageList.SelectedValue = (int)item["LanguageID"];
lstCountryList.SelectedValue = (int)item["CountryID"];
lstTimeZoneList.SelectedValue = (int)item["TimeZoneID"];
lstCurrencyList.SelectedValue = (int)item["CurrencyID"];
}
base.BindData();
}
#endregion
#region Handlers
protected override void OnInit(EventArgs e)
{
if(!IsPostBack)
{
vldEmail2.ValidationExpression = StringHelper.EmailPattern.ToString();
lblFirstName.Text = StringManager.GetString("Home.ProfileForm.lblFirstName.Text");
lblLastName.Text = StringManager.GetString("Home.ProfileForm.lblLastName.Text");
lblEmail.Text = StringManager.GetString("Home.ProfileForm.lblEmail.Text");
lblGender.Text = StringManager.GetString("Home.ProfileForm.lblGender.Text");
lblBirthDate.Text = StringManager.GetString("Home.ProfileForm.lblBirthDate.Text");
lblLanguage.Text = StringManager.GetString("Home.ProfileForm.lblLanguage.Text");
lblCountry.Text = StringManager.GetString("Home.ProfileForm.lblCountry.Text");
lblTimeZone.Text = StringManager.GetString("Home.ProfileForm.lblTimeZone.Text");
lblCurrency.Text = StringManager.GetString("Home.ProfileForm.lblCurrency.Text");
}
base.OnInit(e);
}
protected override void OnLoad(EventArgs e)
{
if(!IsPostBack)
{
lstCurrencyList.BindData();
lstCountryList.BindData();
lstTimeZoneList.BindData();
lstLanguageList.BindData();
lstGenderList.BindData();
}
base.OnLoad(e);
}
protected override void OnPreRender(EventArgs e)
{
if(!IsPostBack)
{
rowLanguage.Visible = lstLanguageList.ItemCount > 1;
rowCountry.Visible = lstCountryList.ItemCount > 1;
rowCurrency.Visible = lstCurrencyList.ItemCount > 1;
rowTimeZone.Visible = lstTimeZoneList.ItemCount > 1;
Page.ClientScript.RegisterClientScriptBlock(GetType(), "txtBirthDate", String.Format("$(\"#{0}\").datepicker(\"option\",\"dateFormat\",'{1}')\"", txtBirthDate.ClientID, UserContext.Current.DateFormat.ToLowerInvariant().Replace("yy", "y")), true);
}
base.OnPreRender(e);
}
public void OnCommand(object sender, CommandEventArgs e)
{
switch(e.CommandName)
{
case "Save":
{
try
{
DataContainer["UserID"] = UserContext.Current.UserID;
Presenter.Load();
ViewDataContainer item = DataContainer["User"] as ViewDataContainer;
item["UserID"] = UserContext.Current.UserID;
item["FirstName"] = StringHelper.StripTags(txtFirstName.Text);
item["LastName"] = StringHelper.StripTags(txtLastName.Text);
item["Email"] = StringHelper.StripTags(txtEmail.Text);
item["BirthDate"] = String.IsNullOrEmpty(txtBirthDate.Text) ? (DateTime?)null : UserContext.Current.DateTimeParse(txtBirthDate.Text);
item["Gender"] = lstGenderList.SelectedValue;
item["LanguageID"] = lstLanguageList.SelectedValue;
item["CurrencyID"] = lstCurrencyList.SelectedValue;
item["CountryID"] = lstCountryList.SelectedValue;
item["TimeZoneID"] = lstTimeZoneList.SelectedValue;
DataContainer["User"] = item;
Presenter.Update();
}
catch(Exception ex)
{
Page.ShowMessage(ex.Message);
}
}
break;
}
}
#endregion
}
}