using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using CB.Common;
using CB.Entity;
using CB.Interface.Infrastructure;
namespace CB.Data.SqlServer
{
public class TCDLTTrendChartDataManage : Repository<TrendChartData>, ITCDLTTrendChartDataService
{
public TCDLTTrendChartDataManage(string interfaceId)
: base(interfaceId)
{
}
public override bool Save(TrendChartData entity)
{
DbParameter[] pars ={
DbHelper.MakeInParam(InterfaceId,"@ChartId",(DbType)SqlDbType.Int,4,entity.ChartId),
DbHelper.MakeInParam(InterfaceId,"@Term",(DbType)SqlDbType.Int,4,entity.Term),
DbHelper.MakeInParam(InterfaceId,"@RecordCount",(DbType)SqlDbType.Int,0,entity.RecordCount),
DbHelper.MakeInParam(InterfaceId,"@AllMaxMiss",(DbType)SqlDbType.NVarChar,0,entity.AllMaxMiss.ArrayToString()),
DbHelper.MakeInParam(InterfaceId,"@AllTimes",(DbType)SqlDbType.NVarChar,0,entity.AllTimes.ArrayToString()),
DbHelper.MakeInParam(InterfaceId,"@AllAvgMiss",(DbType)SqlDbType.NVarChar,0,entity.AllAvgMiss.ArrayToString()),
DbHelper.MakeInParam(InterfaceId,"@LastMiss",(DbType)SqlDbType.NVarChar,0,entity.LastMiss.ArrayToString()),
DbHelper.MakeInParam(InterfaceId,"@LocalMiss",(DbType)SqlDbType.NVarChar,0,entity.LocalMiss.ArrayToString()),
DbHelper.MakeInParam(InterfaceId,"@HtmlData",(DbType)SqlDbType.NVarChar,0,entity.HtmlData),
DbHelper.MakeInParam(InterfaceId,"@ChartType",(DbType)SqlDbType.Int,4,entity.ChartType)
};
return TypeConverter.ObjectToInt(DbHelper.ExecuteScalar(InterfaceId,CommandType.StoredProcedure, "usp_TCDLTTrendChartData_save", pars)) > 0;
}
public override bool Update(TrendChartData entity)
{
throw new NotImplementedException();
}
public override bool Delete(int Id)
{
throw new NotImplementedException();
}
public override TrendChartData Get<TKey>(TKey key)
{
throw new NotImplementedException();
}
public override IList<TrendChartData> ToList()
{
throw new NotImplementedException();
}
public override IList<TrendChartData> ToList(TrendChartData entity)
{
throw new NotImplementedException();
}
public override IList<TrendChartData> ToPaging(TrendChartData entity, int pageSize, int pageIndex, out int recordCount)
{
throw new NotImplementedException();
}
public IList<TrendChartData> ToList(TrendChartSearchField entity)
{
IList<TrendChartData> list = new List<TrendChartData>();
DbParameter[] pars ={
DbHelper.MakeInParam(InterfaceId,"@ChartId",(DbType)SqlDbType.Int,4,entity.ChartId),
DbHelper.MakeInParam(InterfaceId,"@ChartType",(DbType)SqlDbType.Int,4,entity.ChartType),
DbHelper.MakeInParam(InterfaceId,"@Record",(DbType)SqlDbType.Int,4,entity.Record),
DbHelper.MakeInParam(InterfaceId,"@startQi",(DbType)SqlDbType.Int,4,entity.StartTerm),
DbHelper.MakeInParam(InterfaceId,"@endQi",(DbType)SqlDbType.Int,4,entity.EndTerm),
DbHelper.MakeInParam(InterfaceId,"@Year",(DbType)SqlDbType.Int,4,entity.Year),
};
using (DataTable dt = DbHelper.ExecuteDatatable(InterfaceId,CommandType.StoredProcedure, "usp_TCDLTTrendChartData_list_select", pars))
{
if (null != dt && 0 < dt.Rows.Count)
{
foreach (DataRow dr in dt.Rows)
{
list.Add(LoadEntity(dr));
}
}
dt.Dispose();
}
return list;
}
public TrendChartData GetTrendChartDataByTerm(int chartId, TrendChartType chartType, long term)
{
TrendChartData entity = null;
DbParameter[] para =
{
DbHelper.MakeInParam(InterfaceId,"@statement",(DbType)SqlDbType.NVarChar,500,"SELECT TOP 1 [Id] ,[ChartId] ,[Term],[RecordCount],[AllMaxMiss] ,[AllTimes],[AllAvgMiss] ,[LastMiss] ,[LocalMiss],[HtmlData],[ChartType],[Addtime] FROM [dbo].[DT_TCDLTTrendChartData] WHERE [ChartId]=@cid AND [Term]=@qi AND [ChartType]=@chartType ORDER BY [Term] ASC"),
DbHelper.MakeInParam(InterfaceId,"@params",(DbType)SqlDbType.NVarChar,50,"@cid int,@qi int,@chartType int"),
DbHelper.MakeInParam(InterfaceId,"@cid",(DbType)SqlDbType.Int,4,chartId),
DbHelper.MakeInParam(InterfaceId,"@qi",(DbType)SqlDbType.Int,4,term),
DbHelper.MakeInParam(InterfaceId,"@chartType",(DbType)SqlDbType.Int,4,chartType)
};
using (IDataReader reader = DbHelper.ExecuteReader(InterfaceId,CommandType.StoredProcedure, "dbo.[sp_executesql]", para))
{
while (reader.Read())
{
entity = LoadEntity(reader);
}
reader.Close();
}
return entity;
}
protected override TrendChartData LoadEntity(IDataReader reader)
{
return new TrendChartData
{
Id = TypeConverter.ObjectToInt(reader["Id"]),
ChartId = TypeConverter.ObjectToInt(reader["ChartId"]),
Term = TypeConverter.ObjectToInt(reader["Term"]),
RecordCount = TypeConverter.ObjectToInt(reader["RecordCount"]),
AllMaxMiss = reader["AllMaxMiss"].ToString().Split('|'),
AllTimes = reader["AllTimes"].ToString().Split('|'),
AllAvgMiss = reader["AllAvgMiss"].ToString().Split('|'),
LastMiss = reader["LastMiss"].ToString().Split('|'),
LocalMiss = reader["LocalMiss"].ToString().Split('|'),
HtmlData = reader["HtmlData"].ToString().Trim(),
ChartType = (TrendChartType)Enum.Parse(typeof(TrendChartType), reader["ChartType"].ToString()),
Addtime = TypeConverter.ObjectToDateTime(reader["Addtime"], DateTime.MinValue)
};
}
protected override TrendChartData LoadEntity(DataRow dr)
{
return new TrendChartData
{
Id = TypeConverter.ObjectToInt(dr["Id"]),
ChartId = TypeConverter.ObjectToInt(dr["ChartId"]),
Term = TypeConverter.ObjectToInt(dr["Term"]),
RecordCount = TypeConverter.ObjectToInt(dr["RecordCount"]),
AllMaxMiss = dr["AllMaxMiss"].ToString().Split('|'),
AllTimes = dr["AllTimes"].ToString().Split('|'),
AllAvgMiss = dr["AllAvgMiss"].ToString().Split('|'),
LastMiss = dr["LastMiss"].ToString().Split('|'),
LocalMiss = dr["LocalMiss"].ToString().Split('|'),
HtmlData = dr["HtmlData"].ToString().Trim(),
ChartType = (TrendChartType)Enum.Parse(typeof(TrendChartType), dr["ChartType"].ToString()),
Addtime = TypeConverter.ObjectToDateTime(dr["Addtime"], DateTime.MinValue)
};
}
}
}