using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using UUN;
using System.Data.SqlClient;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Net;
using System.Xml;


public partial class Admin_NeiRong_ZengJiaYinYue : System.Web.UI.Page
{
    private 访问 访问;
    protected String 分类代码;
    protected new int ID;
    protected String 栏目名称;
    protected void Page_Load(object sender, EventArgs e)
    {
        访问 = new 访问(this.Context);
        访问.开始处理("增加音乐", "网站后台", "增加音乐", new 访问.回调委托(ZhiXing));
        访问.关闭连接();
    }

    private String 获取栏目(int ID)
    {
        String 返回值;

        SqlCommand 语句 = new SqlCommand("SELECT [栏目名称] FROM [" + 程序.数据表前缀 + "内容_栏目] WHERE [ID]=" + ID, 访问.连接);
        SqlDataReader 读取 = 语句.ExecuteReader();
        if (读取.Read())
            返回值 = Convert.ToString(读取["栏目名称"]);
        else
            返回值 = null;
        读取.Close();

        return 返回值;
    }

    private String 保存音乐(int ZGID)
    {
        String 返回值 = "";

        String 存储文件夹 = 程序.安装位置 + "Data/DT_YinYue/" + (ID /500) + "/";
        if (!Directory.Exists(Server.MapPath(存储文件夹)))
            Directory.CreateDirectory(Server.MapPath(存储文件夹));

        for (int i = 0; i < Request.Files.Count; i++)
        {
            HttpPostedFile HF = Request.Files[i];
            if (HF.ContentLength < 1)
                break;

            String 文件名 = "Y" + ZGID + 常用.随机字符(30);
            String 后缀 = Path.GetExtension(HF.FileName).Substring(1);
            if (!常用.是否允许后缀("mid,mp3,wma,ra,rm,rmx,vqf,ape,cd,ogg,ra,aac", 后缀))
                throw new Exception("非音频文件");
            HF.SaveAs(Server.MapPath(存储文件夹 + 文件名 + "." + 后缀));
            返回值 += 返回值 == "" ? "" : ",";
            返回值 += 存储文件夹 + 文件名 + "." + 后缀;
        }

        return 返回值;
    }

    private void 增加音乐()
    {
        访问.验证权限("19");
        String 标题 = BiaoTi.Text;
        String 标题样式_颜色 = BiaoTiYangShi_YanSe.Text;
        bool 标题样式_粗体 = BiaoTiYangShi_XieTi.Checked;
        bool 标题样式_斜体 = BiaoTiYangShi_XieTi.Checked;
        bool 标题样式_删除线 = BiaoTiYangShi_ShanChuXian.Checked;
        bool 是否推荐 = ShiFouTuiJian.Checked;
        String 外部链接 = WaiBuLianJie.Text;
        DateTime 发布时间 = Convert.ToDateTime(FaBuShiJian.Text);

        String 歌手 = GeShou.Text;
        String 专辑 = ZhuanJi.Text;
        int ZGID=常用.SQL_最高ID(访问.连接,程序.数据表前缀+"内容_音乐_音乐");

        bool 关闭评论 = ShiFouGuanBiPingLun.Checked;
        int 内容模板 = Convert.ToInt32(NeiRongMoBan.SelectedValue);
        int 内容模板_3G = Convert.ToInt32(NeiRongMoBan_3G.SelectedValue);
        int 评论模板 = Convert.ToInt32(PingLunMoBan.SelectedValue);
        int 评论模板_3G = Convert.ToInt32(PingLunMoBan_3G.SelectedValue);
        bool 权限_仅限会员阅读 = QuanXian_JinXiaoHuiYuan.Checked;
        int 权限_需要等级 = Convert.ToInt32(QuanXian_XuYaoDenJi.Text);
        int 权限_扣除积分 = Convert.ToInt32(QuanXian_KouChuJiFen.Text);

        if (标题 == "" || 标题 == null)
            throw new Exception("标题不能为空");

        String 资源文件=保存音乐(ZGID);

        SqlCommand 语句;
        if (JianChaChongFuBiaoTi.Checked)
        {
            语句 = new SqlCommand("SELECT [ID] FROM ["+程序.数据表前缀+"内容_音乐_音乐] WHERE [标题]=@标题", 访问.连接);
            语句.Parameters.Add("@标题", SqlDbType.NVarChar).Value = 标题;
            SqlDataReader 读取 = 语句.ExecuteReader();
            bool 是否存在 = 读取.HasRows;
            读取.Close();

            if (是否存在)
                throw new Exception("音乐标题重复");
        }

        语句 = new SqlCommand("INSERT INTO [" + 程序.数据表前缀 + "内容_音乐_音乐]([ID],[所属栏目],[标题],[标题样式_粗体],[标题样式_斜体],[标题样式_删除线],[标题样式_颜色],[是否推荐],[是否审核],[是否删除],[外部链接],[发布时间],[歌手名称],[所属专辑],[是否关闭评论],[内容模板],[3G内容模板],[评论模板],[3G评论模板],[权限_仅限会员],[权限_需要等级],[权限_扣除积分],[文件资源])" +
            "VALUES(" + ZGID + ",@所属栏目,@标题,@标题样式_粗体,@标题样式_斜体,@标题样式_删除线,@标题样式_颜色,@是否推荐,@是否审核,@是否删除,@外部链接,@发布时间,@歌手名称,@所属专辑,@是否关闭评论,@内容模板,@3G内容模板,@评论模板,@3G评论模板,@权限_仅限会员,@权限_需要等级,@权限_扣除积分,@文件资源)", 访问.连接);
        语句.Parameters.Add("@所属栏目", SqlDbType.Int).Value = ID;
        语句.Parameters.Add("@标题", SqlDbType.NVarChar).Value = 标题;
        语句.Parameters.Add("@标题样式_粗体", SqlDbType.Bit).Value = 标题样式_粗体;
        语句.Parameters.Add("@标题样式_斜体", SqlDbType.Bit).Value = 标题样式_斜体;
        语句.Parameters.Add("@标题样式_删除线", SqlDbType.Bit).Value = 标题样式_删除线;
        语句.Parameters.Add("@标题样式_颜色", SqlDbType.NVarChar).Value = 标题样式_颜色;
        语句.Parameters.Add("@是否推荐", SqlDbType.Bit).Value = 是否推荐;
        语句.Parameters.Add("@是否审核", SqlDbType.Bit).Value = 访问.是否包含权限("46") ? false : true;
        语句.Parameters.Add("@是否删除", SqlDbType.Bit).Value = false;
        语句.Parameters.Add("@外部链接", SqlDbType.NVarChar).Value = 外部链接;
        语句.Parameters.Add("@发布时间", SqlDbType.DateTime).Value = 发布时间;
        语句.Parameters.Add("@歌手名称", SqlDbType.NVarChar).Value = 歌手;
        语句.Parameters.Add("@所属专辑", SqlDbType.NVarChar).Value = 专辑;
        语句.Parameters.Add("@是否关闭评论", SqlDbType.Bit).Value = 关闭评论;
        语句.Parameters.Add("@内容模板", SqlDbType.Int).Value = 内容模板;
        语句.Parameters.Add("@3G内容模板", SqlDbType.Int).Value = 内容模板_3G;
        语句.Parameters.Add("@评论模板", SqlDbType.Int).Value = 评论模板;
        语句.Parameters.Add("@3G评论模板", SqlDbType.Int).Value = 评论模板_3G;
        语句.Parameters.Add("@权限_仅限会员", SqlDbType.Bit).Value = 权限_仅限会员阅读;
        语句.Parameters.Add("@权限_需要等级", SqlDbType.Int).Value = 权限_需要等级;
        语句.Parameters.Add("@权限_扣除积分", SqlDbType.Int).Value = 权限_扣除积分;
        语句.Parameters.Add("@文件资源", SqlDbType.NVarChar).Value = 资源文件;
        语句.ExecuteNonQuery();
        访问统计_管理记录 记录 = new 访问统计_管理记录(this.Context, 访问.连接);
        记录.记录("增加音乐[" + 标题 + "]", 访问.用户["昵称"].ToString());

        BiaoTi.Text = "";
        if (KuaiSuZengJia.Checked)
            KuaiSuZengJia.Checked = true;
        else
            Response.Redirect("FenLeiYinYueNeiRongLieBiao.aspx?ID=" + ID);
    }

    private void ZhiXing()
    {
        访问.验证管理员();

        ID=Convert.ToInt32(Request.QueryString["ID"]);
        if(Request.QueryString["ti"]!=null)
        {
            String 标题信息 = Request.QueryString["ti"];
            if (标题信息 == "_4")
                Response.Redirect("YinYue_ZengJia_XuanZhe.aspx");
            ID = Convert.ToInt32(标题信息.Substring(1));
        }

        栏目名称 = 获取栏目(ID);

        if (ID != 0)
            分类代码 = "<a href=\"FenLeiYinYueNeiRongLieBiao.aspx?ID=" + ID + "\">"+Server.HtmlEncode(栏目名称)+"</a> &gt; ";

        if (this.IsPostBack)
            增加音乐();

        NeiRongMoBan.Items.Add(new ListItem("默认模板", "0"));
        NeiRongMoBan_3G.Items.Add(new ListItem("默认模板", "0"));
        PingLunMoBan.Items.Add(new ListItem("默认模板", "0"));
        PingLunMoBan_3G.Items.Add(new ListItem("默认模板", "0"));

        FileInfo[] FIS = new DirectoryInfo(Server.MapPath("~/Template/Content/" + 程序.设置["默认模板"] + "/Content/")).GetFiles();

        for (int i = 0; i < FIS.Length; i++)
        {
            int _ID = 0;
            String 模板名称 = "";
            String 模板类型 = "";
            String _内容类型 = "";
            bool 是否WAP = true;

            XmlReader 读取 = XmlReader.Create(FIS[i].OpenRead());
            while (读取.Read())
                if (读取.NodeType == XmlNodeType.Element)
                    if (读取.Name == "set")
                        if (读取.GetAttribute("name") == "ID")
                            _ID = Convert.ToInt32(读取.GetAttribute("value"));
                        else if (读取.GetAttribute("name") == "模板名称")
                            模板名称 = 读取.GetAttribute("value");
                        else if (读取.GetAttribute("name") == "模板类型")
                            模板类型 = 读取.GetAttribute("value");
                        else if (读取.GetAttribute("name") == "内容类型")
                            _内容类型 = 读取.GetAttribute("value");
                        else if (读取.GetAttribute("name") == "是否WAP")
                            是否WAP = Convert.ToBoolean(读取.GetAttribute("value"));
            读取.Close();

            if (_内容类型 == "音乐")
                switch (模板类型)
                {
                    case "查看内容":
                        if (是否WAP)
                            NeiRongMoBan.Items.Add(new ListItem(模板名称, _ID.ToString()));
                        else
                            NeiRongMoBan_3G.Items.Add(new ListItem(模板名称, _ID.ToString()));
                        break;
                    case "评论列表":
                        if (是否WAP)
                            PingLunMoBan.Items.Add(new ListItem(模板名称, _ID.ToString()));
                        else
                            PingLunMoBan_3G.Items.Add(new ListItem(模板名称, _ID.ToString()));
                        break;
                }
        }

        FaBuShiJian.Text = DateTime.Now.ToString();
    }
}
