using Ropin.Inspection.Model;
using Ropin.Inspection.Model.Entities;
using Ropin.Inspection.Model.SearchModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ropin.Inspection.Repository
{
    public class TmtnRepairOrderItemRepository : RepositoryBase<TMTN_RepairOrderItem, Guid>, ITmtnRepairOrderItemRepository
    {
        public TmtnRepairOrderItemRepository(InspectionDbContext DbContext) : base(DbContext)
        {

        }
//        public Task<IEnumerable<TmtnRepairOrderItemRecordDetailViewMode>> GetRecordsConditionAsync(TmtnRepairOrderItemRecordSearchModel searchModel)
//        {
//            MySqlConnector.MySqlParameter[] parameters = new[] { 
//                //new MySqlConnector.MySqlParameter("start", searchModel.Start),
//                //new MySqlConnector.MySqlParameter("end", searchModel.End),
//                new MySqlConnector.MySqlParameter("spotCode", searchModel.C_SpotID),
//                new MySqlConnector.MySqlParameter("userCode", searchModel.C_UserID),
//                new MySqlConnector.MySqlParameter("areaCode", searchModel.C_AreaCode),
//                new MySqlConnector.MySqlParameter("StoreCode", searchModel.C_StoreCode),
//                new MySqlConnector.MySqlParameter("Status", searchModel.C_Status),
//            new MySqlConnector.MySqlParameter("Start", searchModel.Start),
//            new MySqlConnector.MySqlParameter("End", searchModel.End)};
//            //SELECT A.*,B.C_GPS,B.C_Name,B.C_Number,B.C_Position,B.C_QRCode,B.C_Remark FROM TISP_Record A LEFT JOIN TISP_Spot B ON A.C_SpotCode = B.C_Code
//            //string sql = "SELECT A.*,B.C_GPS,B.C_Name,B.C_Number,B.C_Position,B.C_QRCode,B.C_Remark,B.C_ImageUrl, D.C_Name AS C_CreateByName,E.C_Name AS C_LastUpdatedByName FROM TISP_Record A LEFT JOIN TISP_Spot B ON A.C_SpotCode = B.C_Code LEFT JOIN TSYS_User D ON D.C_UserID = A.C_CreateBy LEFT JOIN TSYS_User E ON E.C_UserID = A.C_LastUpdatedBy LEFT JOIN TISP_SpotRoute F ON F.C_SpotCode = A.C_SpotCode WHERE 1=1 AND A.D_CreateOn between @start and @end";
//            string sql = @"SELECT A.*,F.C_Name AS DevName,F.C_NumberCode AS DevNumberCode,E.C_ImagePath AS DevTempImage, D.C_Name AS CreateByName,E.C_Name AS LastUpdatedByName 
//FROM TMTN_RepairOrderItem A 
//LEFT JOIN TDEV_DevStore F ON F.C_ID = A.C_DevStoreCode
//LEFT JOIN TDEV_DeviceTemplate E ON E.C_ID = F.C_DevTempCode
//LEFT JOIN TSYS_User D ON D.C_UserID = A.C_CreateBy 
//LEFT JOIN TSYS_User C ON C.C_UserID = A.C_LastUpdatedBy 
//WHERE F.C_StoreCode = @StoreCode";
//            //if (!string.IsNullOrEmpty(searchModel.C_SpotID))
//            //{
//            //    sql += " AND  A.C_SpotCode = @spotCode";
//            //}
//            //if (searchModel.Abnormal)
//            //{
//            //    sql += " AND A.C_LastUpdatedBy IS NOT NULL";
//            //}
//            //if (!string.IsNullOrEmpty(searchModel.C_AreaCode))
//            //{
//            //    sql += " AND A.C_AreaCode = @areaCode";
//            //}
//            if (!string.IsNullOrEmpty(searchModel.C_Status))
//            {
//                sql += " AND F.C_Status = @Status";
//            }
//            if (searchModel.Start != DateTime.MinValue && searchModel.End != DateTime.MinValue)
//            {
//                sql += " AND A.D_CreateOn BETWEEN @Start AND @End";
//            }

//            sql += " ORDER BY A.D_CreateOn DESC";
//            IEnumerable<TmtnRepairOrderItemRecordDetailViewMode> spotlist = EntityFrameworkCoreExtensions.GetList<TmtnRepairOrderItemRecordDetailViewMode>(DbContext.Database, sql, parameters);
//            searchModel.TotalCount = spotlist.First() != null ? spotlist.ToList().Count : 0;
//            return Task.FromResult(searchModel.IsPagination ? spotlist.Skip((searchModel.PageIndex - 1) * searchModel.PageSize).Take(searchModel.PageSize) : spotlist);

//        }
    }

}