using ICSSoft.Common;
using ICSSoft.Entity;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ICSSoft.DataProject
{
    /// <summary>
    /// 齐套验证服务
    /// </summary>
    public class ICSCompleteVerificationService
    {
        private static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
        private static string connString = System.Configuration.ConfigurationManager.AppSettings["ConnStr"];
        private static string ERPDB = System.Configuration.ConfigurationManager.AppSettings["ERPDB"];
        DataTable table = null;
        SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
        string sql = string.Empty;
        string sqlInfo = string.Empty;
        VerificationMethod verification = new VerificationMethod();

        /// <summary>
        /// 获取齐套状态值
        /// </summary>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        public static CompleteVerification GetSuitVerifyModel()
        {
            using (SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString))
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand();
                SqlTransaction sqlTran = conn.BeginTransaction();
                cmd.Transaction = sqlTran;
                cmd.Connection = conn;
                try
                {
                    string sql = @"SELECT Code,Name,Enable,WorkPoint FROM [dbo].[ICSConfiguration] WHERE Code='CompleteVerification'";

                    DataTable table = DBHelper.SQlReturnData(sql, cmd);
                    string json = JsonConvert.SerializeObject(table);
                    List<CompleteVerification> model = JsonConvert.DeserializeObject<List<CompleteVerification>>(json);
                    cmd.Transaction.Commit();
                    return model[0];
                }
                catch (Exception ex)
                {
                    if (cmd.Transaction != null)
                        cmd.Transaction.Rollback();
                    log.Error(ex.Message);
                    throw new Exception(ex.Message);
                }
                finally
                {
                    if (conn.State == ConnectionState.Open)
                    {
                        conn.Close();
                    }
                    conn.Dispose();
                }
            }
        }
    }
}