using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.IO;
using System.Text;
using System.Web.Services;
using System.Xml;
using System.Xml.Serialization;
using CB.Data;
using CB.Entity;
namespace CB.Web.Kjh.WebServices
{
///
/// datasafe 的摘要说明
///
[WebService(Namespace = "http://kjh.55128.cn/webservices/", Description = "供数据保障调用的开奖号服务")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
public class datasafe : System.Web.Services.WebService
{
[WebMethod(Description = "开奖号信息", CacheDuration = 10)]
public string[] GetKjh(int type, int qi)
{
string[] Number = new string[2];
switch (type)
{
case 0:
FC3DInfo entity = CB.Data.Caches.GetFC3DInfo(qi, OpenCodeType.KaiJiangHao);
if (entity != null)
{
Number[0] = entity.Term.ToString().Trim();
Number[1] = entity.OpenCode1.ToString().Trim() + "," + entity.OpenCode2.ToString().Trim() + "," + entity.OpenCode3.ToString().Trim();
}
break;
case 1:
TCP3Info p3entity = CB.Data.Caches.GetTCP3Info(qi, OpenCodeType.KaiJiangHao);
if (p3entity != null)
{
Number[0] = p3entity.Term.ToString().Trim();
Number[1] = p3entity.OpenCode1.ToString().Trim() + "," + p3entity.OpenCode2.ToString().Trim() + "," + p3entity.OpenCode3.ToString().Trim();
}
break;
}
return Number;
}
[WebMethod(Description = "期数信息", CacheDuration = 10)]
public int Getqi(int type)
{
int qi = 0;
switch (type)
{
case 0:
FC3DInfo entity = CB.Data.Caches.GetFC3DInfo(qi, OpenCodeType.KaiJiangHao);
if (entity != null)
{
qi = Convert.ToInt32(entity.Term);
}
break;
case 1:
TCP3Info p3entity = CB.Data.Caches.GetTCP3Info(qi, OpenCodeType.KaiJiangHao);
if (p3entity != null)
{
qi = Convert.ToInt32(p3entity.Term);
}
break;
}
return qi;
}
[WebMethod(Description = "20:30之后的期数问题", CacheDuration = 10)]
public int GetNewqi(int type)
{
int qi = 0;
switch (type)
{
case 0:
qi =Convert.ToInt32(CB.Data.Caches.GetFC3DInfo(0,OpenCodeType.KaiJiHao).Term);
break;
case 1:
qi = Convert.ToInt32(CB.Data.Caches.GetTCP3Info(0, OpenCodeType.KaiJiHao).Term);
break;
}
return qi;
}
[WebMethod(Description = "首页获取彩种开奖详细", CacheDuration = 10)]
public string GetLotteryJson(int type)
{
string kjinfo = "";
switch (type)
{
case 1:
kjinfo = SerializationHelper.Serialize(CB.Data.Caches.GetFC3DInfo(0,OpenCodeType.KaiJiangHao));
break;
case 2:
kjinfo = SerializationHelper.Serialize(CB.Data.Caches.GetTCP3Info(0,OpenCodeType.KaiJiangHao));
break;
case 3:
kjinfo = SerializationHelper.Serialize(CB.Data.Caches.GetFCSSQInfo(0,OpenCodeType.KaiJiangHao));
break;
}
return kjinfo;
}
[WebMethod(Description = "开奖数据同步至55125", CacheDuration = 10)]
public string GetLotteryAward()
{
return SerializationHelper.Serialize(LotteryAwardService.GetLotteryAwardList());
}
///
/// 序列化
///
public class SerializationHelper
{
private SerializationHelper()
{ }
private static Dictionary serializer_dict = new Dictionary();
public static XmlSerializer GetSerializer(Type t)
{
int type_hash = t.GetHashCode();
if (!serializer_dict.ContainsKey(type_hash))
serializer_dict.Add(type_hash, new XmlSerializer(t));
return serializer_dict[type_hash];
}
///
/// xml序列化成字符串
///
/// 对象
/// xml字符串
public static string Serialize(object obj)
{
string returnStr = "";
XmlSerializer serializer = GetSerializer(obj.GetType());
MemoryStream ms = new MemoryStream();
XmlTextWriter xtw = null;
StreamReader sr = null;
try
{
xtw = new System.Xml.XmlTextWriter(ms, Encoding.UTF8);
xtw.Formatting = System.Xml.Formatting.Indented;
serializer.Serialize(xtw, obj);
ms.Seek(0, SeekOrigin.Begin);
sr = new StreamReader(ms);
returnStr = sr.ReadToEnd();
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (xtw != null)
xtw.Close();
if (sr != null)
sr.Close();
ms.Close();
}
return returnStr;
}
///
/// 字符串反序列化
///
///
///
///
public static object DeSerialize(Type type, string s)
{
byte[] b = System.Text.Encoding.UTF8.GetBytes(s);
try
{
XmlSerializer serializer = GetSerializer(type);
return serializer.Deserialize(new MemoryStream(b));
}
catch (Exception ex)
{
throw ex;
}
}
}
}
}