protected void btnUnban_Click(object sender, EventArgs e)
        {
            if (Business.Authorization.IsZoneLeadOrAdminOrSuperAdmin(Page.User) == true)
            {
                Allegiance.CommunitySecuritySystem.Server.Administration administration = new Allegiance.CommunitySecuritySystem.Server.Administration();

                using (var db = new DataAccess.CSSDataContext())
                {
                    var adminLogin = DataAccess.Login.FindLoginByUsernameOrCallsign(db, Page.User.Identity.Name);
                    var userLogin  = DataAccess.Login.FindLoginByUsernameOrCallsign(db, txtCallsign.Value);

                    if (userLogin != null && adminLogin != null)
                    {
                        foreach (DataAccess.Ban ban in userLogin.Bans.Where(p => p.InEffect == true && p.DateExpires > DateTime.Now))
                        {
                            administration.RemoveBan(new BanData()
                            {
                                Alias    = txtCallsign.Value,
                                BanId    = ban.Id,
                                Password = adminLogin.Password,
                                Username = adminLogin.Username
                            });
                        }
                    }
                }
            }

            BindData();
        }
        protected void btnApplyAutoBan_Click(object sender, EventArgs e)
        {
            if (Page.User.IsInRole(Allegiance.CommunitySecuritySystem.Common.Enumerations.RoleType.Moderator.ToString()) == true ||
                Page.User.IsInRole(Allegiance.CommunitySecuritySystem.Common.Enumerations.RoleType.Administrator.ToString()) == true ||
                Page.User.IsInRole(Allegiance.CommunitySecuritySystem.Common.Enumerations.RoleType.ZoneLeader.ToString()) == true ||
                Page.User.IsInRole(Allegiance.CommunitySecuritySystem.Common.Enumerations.RoleType.SuperAdministrator.ToString()) == true)
            {
                Allegiance.CommunitySecuritySystem.Server.Administration administration = new Allegiance.CommunitySecuritySystem.Server.Administration();

                using (var db = new DataAccess.CSSDataContext())
                {
                    var login = DataAccess.Login.FindLoginByUsernameOrCallsign(db, Page.User.Identity.Name);
                    if (login != null)
                    {
                        administration.SetBan(new BanData()
                        {
                            Alias     = txtCallsign.Value,
                            BanTypeId = Convert.ToInt32(Request.Form[ddlAutoBanReason.UniqueID]),                             // For some reason, the post back doesn't get this value back into the control.
                            BanMode   = Allegiance.CommunitySecuritySystem.Common.Enumerations.BanMode.Auto,
                            Password  = login.Password,
                            Username  = login.Username
                        });
                    }
                }
            }

            BindData();
        }
        protected void btnApplyAutoBan_Click(object sender, EventArgs e)
        {
            if (Page.User.IsInRole(Allegiance.CommunitySecuritySystem.Common.Enumerations.RoleType.Moderator.ToString()) == true
                || Page.User.IsInRole(Allegiance.CommunitySecuritySystem.Common.Enumerations.RoleType.Administrator.ToString()) == true
                || Page.User.IsInRole(Allegiance.CommunitySecuritySystem.Common.Enumerations.RoleType.ZoneLeader.ToString()) == true
                || Page.User.IsInRole(Allegiance.CommunitySecuritySystem.Common.Enumerations.RoleType.SuperAdministrator.ToString()) == true)
            {
                Allegiance.CommunitySecuritySystem.Server.Administration administration = new Allegiance.CommunitySecuritySystem.Server.Administration();

                using (var db = new DataAccess.CSSDataContext())
                {
                    var login = DataAccess.Login.FindLoginByUsernameOrCallsign(db, Page.User.Identity.Name);
                    if (login != null)
                    {
                        administration.SetBan(new BanData()
                        {
                            Alias = txtCallsign.Value,
                            BanTypeId = Convert.ToInt32(Request.Form[ddlAutoBanReason.UniqueID]), // For some reason, the post back doesn't get this value back into the control.
                            BanMode = Allegiance.CommunitySecuritySystem.Common.Enumerations.BanMode.Auto,
                            Password = login.Password,
                            Username = login.Username
                        });
                    }
                }
            }

            BindData();
        }
        protected void btnApplyManualBan_Click(object sender, EventArgs e)
        {
            if (Page.User.IsInRole(Allegiance.CommunitySecuritySystem.Common.Enumerations.RoleType.Moderator.ToString()) == true ||
                Page.User.IsInRole(Allegiance.CommunitySecuritySystem.Common.Enumerations.RoleType.ZoneLeader.ToString()) == true ||
                Page.User.IsInRole(Allegiance.CommunitySecuritySystem.Common.Enumerations.RoleType.SuperAdministrator.ToString()) == true)
            {
                Allegiance.CommunitySecuritySystem.Server.Administration administration = new Allegiance.CommunitySecuritySystem.Server.Administration();

                DateTime banDate = DateTime.MinValue;

                banDate = banDate.AddYears(Int32.Parse(ddlManualBanYears.SelectedValue));
                banDate = banDate.AddMonths(Int32.Parse(ddlManualBanMonths.SelectedValue));
                banDate = banDate.AddDays(Int32.Parse(ddlManualBanDays.SelectedValue));
                banDate = banDate.AddHours(Int32.Parse(ddlManualBanHours.SelectedValue));
                banDate = banDate.AddMinutes(Int32.Parse(ddlManualBanMinutes.SelectedValue));

                TimeSpan banTime = banDate.Subtract(DateTime.MinValue);


                using (var db = new DataAccess.CSSDataContext())
                {
                    var login = DataAccess.Login.FindLoginByUsernameOrCallsign(db, Page.User.Identity.Name);
                    if (login != null)
                    {
                        administration.SetBan(new BanData()
                        {
                            Alias    = txtCallsign.Value,
                            BanMode  = Allegiance.CommunitySecuritySystem.Common.Enumerations.BanMode.Custom,
                            Duration = banTime,
                            Reason   = txtBanReason.Text,
                            Password = login.Password,
                            Username = login.Username
                        });
                    }
                }
            }

            BindData();
        }
        protected void btnApplyManualBan_Click(object sender, EventArgs e)
        {
            if (Page.User.IsInRole(Allegiance.CommunitySecuritySystem.Common.Enumerations.RoleType.Moderator.ToString()) == true
                || Page.User.IsInRole(Allegiance.CommunitySecuritySystem.Common.Enumerations.RoleType.ZoneLeader.ToString()) == true
                || Page.User.IsInRole(Allegiance.CommunitySecuritySystem.Common.Enumerations.RoleType.SuperAdministrator.ToString()) == true)
            {
                Allegiance.CommunitySecuritySystem.Server.Administration administration = new Allegiance.CommunitySecuritySystem.Server.Administration();

                DateTime banDate = DateTime.MinValue;

                banDate = banDate.AddYears(Int32.Parse(ddlManualBanYears.SelectedValue));
                banDate = banDate.AddMonths(Int32.Parse(ddlManualBanMonths.SelectedValue));
                banDate = banDate.AddDays(Int32.Parse(ddlManualBanDays.SelectedValue));
                banDate = banDate.AddHours(Int32.Parse(ddlManualBanHours.SelectedValue));
                banDate = banDate.AddMinutes(Int32.Parse(ddlManualBanMinutes.SelectedValue));

                TimeSpan banTime = banDate.Subtract(DateTime.MinValue);

                using (var db = new DataAccess.CSSDataContext())
                {
                    var login = DataAccess.Login.FindLoginByUsernameOrCallsign(db, Page.User.Identity.Name);
                    if (login != null)
                    {
                        administration.SetBan(new BanData()
                        {
                            Alias = txtCallsign.Value,
                            BanMode = Allegiance.CommunitySecuritySystem.Common.Enumerations.BanMode.Custom,
                            Duration = banTime,
                            Reason = txtBanReason.Text,
                            Password = login.Password,
                            Username = login.Username
                        });
                    }
                }
            }

            BindData();
        }
        protected void btnUnban_Click(object sender, EventArgs e)
        {
            if (Business.Authorization.IsZoneLeadOrAdminOrSuperAdmin(Page.User) == true)
            {
                Allegiance.CommunitySecuritySystem.Server.Administration administration = new Allegiance.CommunitySecuritySystem.Server.Administration();

                using (var db = new DataAccess.CSSDataContext())
                {
                    var adminLogin = DataAccess.Login.FindLoginByUsernameOrCallsign(db, Page.User.Identity.Name);
                    var userLogin = DataAccess.Login.FindLoginByUsernameOrCallsign(db, txtCallsign.Value);

                    if (userLogin != null && adminLogin != null)
                    {
                        foreach (DataAccess.Ban ban in userLogin.Bans.Where(p => p.InEffect == true && p.DateExpires > DateTime.Now))
                        {
                            administration.RemoveBan(new BanData()
                            {
                                Alias = txtCallsign.Value,
                                BanId = ban.Id,
                                Password = adminLogin.Password,
                                Username = adminLogin.Username
                            });
                        }
                    }
                }
            }

            BindData();
        }