using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using EmitMapper;
namespace BLL
{
    public static class APIGeneralEquipmentQualityService
    {
        #region 根据equipmentQualityId获取机具设备信息
        /// 
        /// 根据equipmentQualityId获取机具设备信息
        /// 
        /// 
        /// 
        public static Model.EquipmentQualityItem getEquipmentQualityByEquipmentQualityIdFactoryCode(string equipmentQualityId)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                var getEquipmentQuality = (from x in db.View_QualityAudit_GeneralEquipmentQuality
                                           where x.GeneralEquipmentQualityId == equipmentQualityId
                                           select new Model.EquipmentQualityItem
                                           {
                                               EquipmentQualityId = x.GeneralEquipmentQualityId,
                                               ProjectId = x.ProjectId,
                                               EquipmentQualityCode = x.GeneralEquipmentQualityCode,
                                               EquipmentCount = x.EquipmentCount.HasValue? x.EquipmentCount.Value.ToString():"",
                                               UnitId = x.UnitId,
                                               IsQualified =x.IsQualified.HasValue? x.IsQualified.Value?"是":"否":"",
                                               UnitName = x.UnitName,
                                               SpecialEquipmentName = x.SpecialEquipmentName,
                                               InDate = string.Format("{0:yyyy-MM-dd}", x.InDate),
                                               Remark = x.Remark,
                                               CompileManId = x.CompileMan,
                                               CompileManName = x.CompileManName,
                                               CompileDate = string.Format("{0:yyyy-MM-dd}", x.CompileDate),
                                               AttachUrl = x.AttachUrl.Replace('\\', '/')
                                           }); ;
                return getEquipmentQuality.FirstOrDefault();
            }
        }
        #endregion        
        #region 获取机具设备列表信息
        /// 
        /// 获取机具设备列表信息
        /// 
        /// 
        /// 
        /// 
        /// 
        public static List getEquipmentQualityList(string projectId, string unitId, string strParam)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                var getEquipmentQuality = from x in db.View_QualityAudit_GeneralEquipmentQuality
                                          where x.ProjectId == projectId && (x.UnitId == unitId || unitId == null)
                                          && (strParam == null  || x.SpecialEquipmentName.Contains(strParam)  )
                                          orderby x.GeneralEquipmentQualityCode descending
                                          select new Model.EquipmentQualityItem
                                          {
                                              EquipmentQualityId = x.GeneralEquipmentQualityId,
                                              ProjectId = x.ProjectId,
                                              EquipmentQualityCode = x.GeneralEquipmentQualityCode,
                                              EquipmentCount = x.EquipmentCount.HasValue ? x.EquipmentCount.Value.ToString() : "",
                                              UnitId = x.UnitId,
                                              IsQualified = x.IsQualified.HasValue ? x.IsQualified.Value ? "是" : "否" : "",
                                              UnitName = x.UnitName,
                                              SpecialEquipmentName = x.SpecialEquipmentName,
                                              InDate = string.Format("{0:yyyy-MM-dd}", x.InDate),
                                              Remark = x.Remark,
                                              CompileManId = x.CompileMan,
                                              CompileManName = x.CompileManName,
                                              CompileDate = string.Format("{0:yyyy-MM-dd}", x.CompileDate),
                                              AttachUrl = x.AttachUrl.Replace('\\', '/')
                                          };
                return getEquipmentQuality.ToList();
            }
        }
        #endregion        
        #region 保存QualityAudit_EquipmentQuality
        /// 
        /// 保存QualityAudit_EquipmentQuality
        /// 
        /// 机具设备资质
        /// 
        public static void SaveEquipmentQuality(Model.EquipmentQualityItem newItem)
        {
            Model.SGGLDB db = Funs.DB;
            Model.QualityAudit_GeneralEquipmentQuality newEquipmentQuality = new Model.QualityAudit_GeneralEquipmentQuality
            {
                GeneralEquipmentQualityId = newItem.EquipmentQualityId,
                ProjectId = newItem.ProjectId,
                GeneralEquipmentQualityCode = newItem.EquipmentQualityCode,
                UnitId = newItem.UnitId,
                SpecialEquipmentId = newItem.SpecialEquipmentId,
                InDate = Funs.GetNewDateTime(newItem.InDate),
                Remark = newItem.Remark,
                CompileMan = newItem.CompileManId,
            };
            if (!string.IsNullOrEmpty(newItem.IsQualified))
            {
                if ("1".Equals(newItem.IsQualified))
                {
                    newEquipmentQuality.IsQualified = true;
                }
                else
                {
                    newEquipmentQuality.IsQualified = false;
                }
            }
            if (!string.IsNullOrEmpty(newItem.EquipmentCount))
            {
                try
                {
                    newEquipmentQuality.EquipmentCount = int.Parse(newItem.EquipmentCount);
                }
                catch (Exception e) { }
            }
            var updateEquipmentQuality = db.QualityAudit_GeneralEquipmentQuality.FirstOrDefault(x => x.GeneralEquipmentQualityId == newItem.EquipmentQualityId);
            if (updateEquipmentQuality == null)
            {
                newEquipmentQuality.CompileDate = DateTime.Now;
                newEquipmentQuality.GeneralEquipmentQualityId = SQLHelper.GetNewID();
                newEquipmentQuality.GeneralEquipmentQualityCode = BLL.CodeRecordsService.ReturnCodeByMenuIdProjectId(BLL.Const.GeneralEquipmentQualityMenuId, newItem.ProjectId, newItem.UnitId);
                GeneralEquipmentQualityService.AddGeneralEquipmentQuality(newEquipmentQuality);
            }
            else
            {
                GeneralEquipmentQualityService.UpdateGeneralEquipmentQuality(newEquipmentQuality);
            }
            if (!string.IsNullOrEmpty(newItem.AttachUrl))
            {
                ////保存附件
                UploadFileService.SaveAttachUrl(UploadFileService.GetSourceByAttachUrl(newItem.AttachUrl, 10, null), newItem.AttachUrl, Const.GeneralEquipmentQualityMenuId, newEquipmentQuality.GeneralEquipmentQualityId);
            }
            else
            {
                CommonService.DeleteAttachFileById(newEquipmentQuality.GeneralEquipmentQualityId);
            }
        }
        #endregion
    }
}