using System;
using System.ComponentModel;
using System.Web.UI.WebControls;
using SiberTek.Xenta.Presentation;
using SiberTek.Xenta.Presentation.Presenters;
using SiberTek.Xenta.Presentation.Resources;
using SiberTek.Xenta.Presentation.Utils;
using SiberTek.Xenta.Presentation.Views;
using SiberTek.Xenta.Utils;
using SiberTek.Xenta.Web.Controls;
using SiberTek.Xenta.Web.Utils;
namespace SiberTek.Xenta.Web.Admin.Modules
{
public partial class ForumBanForm : ViewBase<ForumBanPresenter>, IForm, ICommandHandler
{
#region Properties
[Browsable(false)]
public int? BanID
{
get
{
return StringHelper.Parse<Int32?>(txtBanID.Text);
}
set
{
txtBanID.Text = value.HasValue ? value.ToString() : String.Empty;
}
}
public string ValidationGroup
{
set
{
vldDescription.ValidationGroup = value;
vldUser.ValidationGroup = value;
}
}
public bool Enabled
{
set
{
txtExpiredOn.ReadOnly = !value;
txtUser.ReadOnly = !value;
txtDescription.ReadOnly = !value;
}
}
#endregion
#region Methods
public void Reset()
{
txtExpiredOn.Text = String.Empty;
txtUser.Text = String.Empty;
txtDescription.Text = String.Empty;
}
public override void BindData()
{
if(BanID.HasValue)
{
DataContainer["BanID"] = BanID.Value;
Presenter.Load();
ViewDataContainer item = DataContainer["ForumBan"] as ViewDataContainer;
if(item != null)
{
lnkUser.NavigateUrl = UrlHelper.FormatUrl("admin", "membership/users/{0}.aspx", item["UserID"]);
txtUser.Text = MembershipHelper.GetUsername((int)item["UserID"]);
txtDescription.Text = (string)item["Description"];
txtCreatedOn.Text = UserContext.Current.DateTimeToString((DateTime)item["CreatedOn"]);
txtUpdatedOn.Text = UserContext.Current.DateTimeToString((DateTime)item["UpdatedOn"]);
txtExpiredOn.Text = ((DateTime?)item["ExpiredOn"]).HasValue ? UserContext.Current.DateTimeToString((DateTime)item["ExpiredOn"]) : String.Empty;
}
}
base.BindData();
}
#endregion
#region Handlers
protected override void OnInit(EventArgs e)
{
if(!IsPostBack)
{
lblBanID.Text = StringManager.GetString("Admin.ForumBanForm.lblBanID.Text");
lblCreatedOn.Text = StringManager.GetString("Admin.ForumBanForm.lblCreatedOn.Text");
lblDescription.Text = StringManager.GetString("Admin.ForumBanForm.lblDescription.Text");
lblExpiredOn.Text = StringManager.GetString("Admin.ForumBanForm.lblExpiredOn.Text");
lblUpdatedOn.Text = StringManager.GetString("Admin.ForumBanForm.lblUpdatedOn.Text");
lblUser.Text = StringManager.GetString("Admin.ForumBanForm.lblUser.Text");
lnkUser.ToolTip = StringManager.GetString("Admin.ForumBanForm.lnkUser.ToolTip");
}
base.OnInit(e);
}
protected override void OnPreRender(EventArgs e)
{
if(!IsPostBack)
{
if(!BanID.HasValue)
{
rowBanID.Visible = false;
rowCreatedOn.Visible = false;
rowUpdatedOn.Visible = false;
lnkUser.Visible = false;
}
Page.ClientScript.RegisterClientScriptBlock(GetType(), "txtExpiredOn", String.Format("$(\"#{0}\").datepicker(\"option\",\"dateFormat\",'{1}')\"", txtExpiredOn.ClientID, UserContext.Current.DateFormat.ToLowerInvariant().Replace("yy", "y")), true);
}
base.OnPreRender(e);
}
public void OnCommand(object sender, CommandEventArgs e)
{
switch(e.CommandName)
{
case "Create":
{
try
{
ViewDataContainer item = new ViewDataContainer();
item["UserID"] = MembershipHelper.GetUserIDByUsername(txtUser.Text);
item["Description"] = StringHelper.StripTags(txtDescription.Text);
item["ExpiredOn"] = String.IsNullOrEmpty(txtExpiredOn.Text) ? (DateTime?)null : UserContext.Current.DateTimeParse(txtExpiredOn.Text);
DataContainer["ForumBan"] = item;
Presenter.Create();
BanID = (int?)DataContainer["BanID"];
}
catch(Exception ex)
{
Page.ShowMessage(ex.Message);
}
}
break;
case "Update":
{
try
{
if(BanID.HasValue)
{
ViewDataContainer item = new ViewDataContainer();
item["BanID"] = BanID.Value;
item["UserID"] = MembershipHelper.GetUserIDByUsername(txtUser.Text);
item["Description"] = StringHelper.StripTags(txtDescription.Text);
item["ExpiredOn"] = String.IsNullOrEmpty(txtExpiredOn.Text) ? (DateTime?)null : UserContext.Current.DateTimeParse(txtExpiredOn.Text);
DataContainer["ForumBan"] = item;
Presenter.Update();
}
}
catch(Exception ex)
{
Page.ShowMessage(ex.Message);
}
}
break;
case "Delete":
{
try
{
if(BanID.HasValue)
{
ViewDataContainer item = new ViewDataContainer();
item["BanID"] = BanID.Value;
DataContainer["ForumBan"] = item;
Presenter.Delete();
}
}
catch(Exception ex)
{
Page.ShowMessage(ex.Message);
}
}
break;
}
}
#endregion
}
}