using Model;
using System.Collections.Generic;
using System.Linq;
using System.Web.UI.WebControls;
namespace BLL
{
    public static class Base_MaterialService
    {
        /// 
        ///获取材质定义信息
        /// 
        /// 
        public static Model.Base_Material GetMaterialByMaterialId(string materialId)
        {
            return Funs.DB.Base_Material.FirstOrDefault(e => e.MaterialId == materialId);
        }
        /// 
        /// 增加材质定义信息
        /// 
        /// 
        public static void AddMaterial(Model.Base_Material material)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Base_Material newMaterial = new Base_Material
            {
                MaterialId = material.MaterialId,
                MaterialCode = material.MaterialCode,
                MaterialType = material.MaterialType,                
                SteelType = material.SteelType,              
                Remark = material.Remark,
                MaterialClass=material.MaterialClass,
                MaterialGroup=material.MaterialGroup,
                MetalType = material.MetalType,
        };
            db.Base_Material.InsertOnSubmit(newMaterial);
            db.SubmitChanges();
        }
        /// 
        /// 修改材质定义信息 
        /// 
        /// 
        public static void UpdateMaterial(Model.Base_Material material)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Base_Material newMaterial = db.Base_Material.FirstOrDefault(e => e.MaterialId == material.MaterialId);
            if (newMaterial != null)
            {
                newMaterial.MaterialCode = material.MaterialCode;
                newMaterial.MaterialType = material.MaterialType;               
                newMaterial.SteelType = material.SteelType;              
                newMaterial.Remark = material.Remark;
                newMaterial.MaterialClass=material.MaterialClass;
                newMaterial.MaterialGroup = material.MaterialGroup;
                newMaterial.MetalType = material.MetalType;
                db.SubmitChanges();
            }
        }
        /// 
        /// 根据材质定义Id删除一个材质定义信息
        /// 
        /// 
        public static void DeleteMaterialByMaterialId(string materialId)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Base_Material delMaterial = db.Base_Material.FirstOrDefault(e => e.MaterialId == materialId);
            if (delMaterial != null)
            {
                db.Base_Material.DeleteOnSubmit(delMaterial);
                db.SubmitChanges();
            }
        }
        /// 
        /// 按类型获取材质定义项
        /// 
        /// 
        /// 
        public static List GetMaterialList()
        {
            var list = (from x in Funs.DB.Base_Material
                        orderby x.MaterialCode
                        select x).ToList();
            return list;
        }
        #region 材质定义下拉项
        /// 
        /// 材质定义下拉项
        /// 
        /// 下拉框名称
        /// 是否显示请选择
        /// 耗材类型
        public static void InitMaterialDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease,string itemText)
        {
            dropName.DataValueField = "MaterialId";
            dropName.DataTextField = "MaterialCode";
            dropName.DataSource = GetMaterialList();
            dropName.DataBind();
            if (isShowPlease)
            {
                Funs.FineUIPleaseSelect(dropName,itemText);
            }
        }
        #endregion
        public static ListItem[] GetMaterialListItem()
        {
            var list = (from x in Funs.DB.Base_Material orderby x.MaterialCode select x).ToList();
            ListItem[] item = new ListItem[list.Count()];
            for (int i = 0; i < list.Count(); i++)
            {
                item[i] = new ListItem(list[i].MaterialCode ?? "", list[i].MaterialId);
            }
            return item;
        }
    }
}