//private static TASK_FINISH objInstance = null; //public static TASK_FINISH getInstance() //{ // if (objInstance == null) objInstance = new TASK_FINISH(); // return objInstance; //} // private ConcurrentDictionary<Int64, bool> dic = new ConcurrentDictionary<long, bool>(); /// <summary> /// 说明:任务步骤用 类型_类型id_完成值来表示。 /// 例如1_200001_1, 1表示任务类型对话,200001表示npc的id,对话类型中0表示未完成,1表示完成 /// 多步任务用|来分割,例如两步对话任务为 1_200001_1|1_200002_1. /// </summary> public ASObject CommandStart(TGGSession session, ASObject data) { #if DEBUG XTrace.WriteLine("{0}:{1}", "TASK_FINISH", "完成任务"); #endif //type:0表示接受任务,1表示完成任务 2 表示提交任务 if (!data.ContainsKey("task") || !data.ContainsKey("npcId")) { return(null); } var id = Convert.ToInt64(data.FirstOrDefault(q => q.Key == "task").Value); var npc = Convert.ToInt32(data.FirstOrDefault(q => q.Key == "npcId").Value); if (session.MainTask == null) { XTrace.WriteLine("sesion中找不到任务"); return(null); } var mytask = session.MainTask.CloneEntity(); if (mytask == null || mytask.id != id || mytask.task_type != (int)TaskType.MAIN_TASK || mytask.user_id != session.Player.User.id || mytask.task_state != (int)TaskStateType.TYPE_UNRECEIVED) { return(null); } var basetask = Variable.BASE_TASKMAIN.FirstOrDefault(q => q.id == mytask.task_id); //基表数据 if (basetask == null) { return(null); } return(ReceiveTaskCheck(mytask, basetask.acceptId, npc)); }
//private static WAR_DEFENCE_PLAN_UPDATE _objInstance; ///// <summary>WAR_DEFENCE_ROLE_UPDATE单体模式</summary> //public static WAR_DEFENCE_PLAN_UPDATE GetInstance() //{ // return _objInstance ?? (_objInstance = new WAR_DEFENCE_PLAN_UPDATE()); //} /// <summary> 修改武将防守方案信息 </summary> public ASObject CommandStart(TGGSession session, ASObject data) { if (!data.ContainsKey("planId") || !data.ContainsKey("areaSetId") || !data.ContainsKey("frontId") || !data.ContainsKey("roles")) { return(null); } //玩家防守方案主键id var sendplanId = data.FirstOrDefault(q => q.Key == "planId").Value.ToString(); Int64 planid = 0; Int32 areasetid = 0; Int32 front = 0; if (!Int64.TryParse(sendplanId, out planid)) { return(CommonHelper.ErrorResult((int)ResultType.FRONT_DATA_ERROR)); } //获取防守地形 var sendareasetid = data.FirstOrDefault(m => m.Key == "areaSetId").Value.ToString(); //玩家设置地形主键id if (!Int32.TryParse(sendareasetid, out areasetid)) { return(CommonHelper.ErrorResult((int)ResultType.FRONT_DATA_ERROR)); } //获取防守阵 var sendfront = data.FirstOrDefault(m => m.Key == "frontId").Value.ToString(); //玩家设置阵基表id Int32.TryParse(sendfront, out front); var planvo = GetSendVo(planid, front); var roles = data.FirstOrDefault(m => m.Key == "roles").Value as object[]; var listroles = GetSendRoles(roles); if (listroles == null || planvo == null) { return(CommonHelper.ErrorResult(ResultType.FRONT_DATA_ERROR)); } var areasetlist = view_user_area_set.GetEntityByUserId(session.Player.User.id, areasetid).ToList(); //验证前端数据数据 var tuple = CheckData(listroles, planvo, session.Player.User.id, areasetid); if (!tuple.Item1) { return(CommonHelper.ErrorResult(ResultType.FRONT_DATA_ERROR)); } //验证坐标信息 if (!CheckPoint(listroles, areasetlist)) { return(CommonHelper.ErrorResult(ResultType.FRONT_DATA_ERROR)); } // if (!CheckFund(session.Player.War.City)) return CommonHelper.ErrorResult(ResultType.WAR_RES_FUNDS_ERROR); return(!SavaData(tuple.Item3, tuple.Item2, listroles, planvo, areasetlist) ? CommonHelper.ErrorResult((int)ResultType.DATABASE_ERROR) : CommonHelper.SuccessResult()); }
/// <summary> 查看开始指令处理 </summary> public ASObject CommandStart(TGGSession session, ASObject data) { #if DEBUG XTrace.WriteLine("{0}:{1}", "WAR_MILITARY_ENTER", "进入军需品功能"); #endif if (!data.ContainsKey("id") || !data.ContainsKey("count")) { return(null); } var goods_id = Convert.ToInt32(data.FirstOrDefault(m => m.Key == "id").Value); //据点id var goods_count = Convert.ToInt32(data.FirstOrDefault(m => m.Key == "count").Value); //据点id if (goods_count <= 0) { return(CommonHelper.ErrorResult((int)ResultType.FRONT_DATA_ERROR)); } var station = session.Player.War.PlayerInCityId;//1000024; var user = session.Player.User; var goods = Variable.WARGOODS.Values.FirstOrDefault(m => m.city_id == station && m.goods_id == goods_id); if (goods == null) { return(CommonHelper.ErrorResult((int)ResultType.FRONT_DATA_ERROR)); } //判断资源消耗 if (goods_count > goods.count) { return(CommonHelper.ErrorResult((int)ResultType.WAR_GOODS_COUNT_ERROR)); } var city = session.Player.War.City.CloneEntity(); if (!IsMax(city, goods_id, goods_count)) { return(CommonHelper.ErrorResult((int)ResultType.WAR_RES_MAX_ERROR)); } var res_cost = Math.Round(goods_count * goods.goods_buy_price, 2); res_cost = Common.GetInstance().GetFunds(res_cost, user.player_influence, goods_id); var temp = city.res_funds - res_cost; if (temp < 0) { return(CommonHelper.ErrorResult((int)ResultType.WAR_RES_FUNDS_ERROR)); } city.res_funds = temp; city = SetResouce(city, goods_id, goods_count); session.Player.War.City = city; //资源更新推送 tg_war_city.UpdateByResouce(city); (new Share.War()).SendCity(city.base_id, city.user_id); //数量更新 var _c = goods.count - goods_count; goods.count = _c; var key = string.Format("{0}_{1}", goods.city_id, goods.goods_id); Variable.WARGOODS.AddOrUpdate(key, goods, (k, v) => goods); return(new ASObject(BuildData((int)ResultType.SUCCESS, goods))); }
/// <summary> /// 获取前端数据 /// </summary> /// <param name="data"></param> /// <returns>1.数据是否正确 2.合战武将实体 3.部队基表id 4.部队数量 5.原始数量</returns> private Tuple <bool, tg_war_role, Int32, Int32> GetClientData(ASObject data, Int64 userid) { if (!data.ContainsKey("roleId") || !data.ContainsKey("soldierId") || !data.ContainsKey("count")) { return(Tuple.Create(false, new tg_war_role(), 0, 0)); } var _roleid = data.FirstOrDefault(q => q.Key == "roleId").Value.ToString(); var _baseid = data.FirstOrDefault(q => q.Key == "soldierId").Value.ToString(); var _count = data.FirstOrDefault(q => q.Key == "count").Value.ToString(); Int64 roleid; Int32 baseid; Int32 count; Int64.TryParse(_roleid, out roleid); Int32.TryParse(_baseid, out baseid); Int32.TryParse(_count, out count); var role = tg_war_role.GetEntityById(roleid, userid);//FindByid(roleid); var soldier = tg_war_army_type.GetEntityByRidAndBaseId(roleid, baseid); if (role == null || soldier == null || count <= 0) { return(Tuple.Create(false, role, 0, 0)); } if (role.type == (int)WarRoleType.NPC) { var identify = Variable.BASE_IDENTITY.FirstOrDefault(q => q.vocation == (int)VocationType.Roles); if (identify == null) { return(Tuple.Create(false, role, 0, 0)); } if (identify.soldier < count) { return(Tuple.Create(false, role, 0, 0)); } } else { var roleinfo = tg_role.GetEntityByIdUid(role.rid, userid);//FindByid(role.rid); if (roleinfo == null) { return(Tuple.Create(false, role, 0, 0)); } var baseidentify = Variable.BASE_IDENTITY.FirstOrDefault(q => q.id == roleinfo.role_identity); if (baseidentify == null) { return(Tuple.Create(false, role, 0, 0)); } if (baseidentify.soldier < count) { return(Tuple.Create(false, role, 0, 0)); } } return(Tuple.Create(true, role, baseid, count)); }
/// <summary> 据点更改名字 </summary> public ASObject CommandStart(TGGSession session, ASObject data) { if (!data.ContainsKey("name") || !data.ContainsKey("id")) { return(null); } var id = Convert.ToInt32(data.FirstOrDefault(m => m.Key == "id").Value); var name = data.FirstOrDefault(m => m.Key == "name").Value.ToString(); name = CommonHelper.FilterCityName(name); if (Util.IsFilterWords(name)) { return(CommonHelper.ErrorResult((int)ResultType.DATA_WORDS_ERROR)); } var user = session.Player.User; var rule = Variable.BASE_RULE.FirstOrDefault(m => m.id == "32054"); if (rule == null) { return(CommonHelper.ErrorResult(ResultType.BASE_TABLE_ERROR)); } var gold = Convert.ToInt32(rule.value); if (user.gold < gold) { return(CommonHelper.ErrorResult(ResultType.BASE_PLAYER_GOLD_ERROR)); } //name = name + "城"; if (IsExistByName(name)) { return(CommonHelper.ErrorResult(ResultType.WAR_NAME_EXIST)); } var city = session.Player.War.City; if (city == null) { return(CommonHelper.ErrorResult(ResultType.NO_DATA)); } if (city.base_id != id) { return(CommonHelper.ErrorResult(ResultType.WAR_CITY_NOEXIST)); } // var city = tg_war_city.GetEntityByBaseId(id); city.name = name; city.Update(); Common.GetInstance().UpdateGold(user.id, gold, (int)WarCommand.WAR_UPDATE_CITY_NAME); var temp = view_war_city.GetEntityById(city.id); //var count = tg_war_role.GetRoleCountByCityId(id); (new Share.War()).SendCityBuild(temp); return(Common.GetInstance().BulidData(temp, (int)WarCityCampType.OWN)); }
//private static ROLE_TITLE_LOAD ObjInstance; ///// <summary>ROLE_TITLE_LOAD单体模式</summary> //public static ROLE_TITLE_LOAD GetInstance() //{ // return ObjInstance ?? (ObjInstance = new ROLE_TITLE_LOAD()); //} public ASObject CommandStart(TGGSession session, ASObject data) { try { #if DEBUG XTrace.WriteLine("{0}:{1}", "ROLE_TITLE_LOAD", "称号装备"); #endif if (!data.ContainsKey("titleId") || !data.ContainsKey("roleId")) { return(null); //验证前端数据 } var tid = Convert.ToInt64(data.FirstOrDefault(m => m.Key == "titleId").Value.ToString()); var rid = Convert.ToInt64(data.FirstOrDefault(m => m.Key == "roleId").Value.ToString()); var title = tg_role_title.GetTitleByTid(tid, session.Player.User.id); var role = tg_role.GetEntityByIdUid(rid, session.Player.User.id); //tg_role.GetEntityById(rid); if (title == null || role == null) { return(Error((int)ResultType.DATABASE_ERROR)); } if (title.user_id != session.Player.User.id || role.user_id != session.Player.User.id) { return(null); //验证玩家数据,防止发包 } if (title.title_state == (int)TitleState.NOT_REACHED) { return(Error((int)ResultType.TITLE_NO_REACHED)); //验证称号达成状态 } var btitle = Variable.BASE_ROLETITLE.FirstOrDefault(m => m.id == title.title_id); if (btitle == null) { return(Error((int)ResultType.BASE_TABLE_ERROR)); //验证基表信息 } if (!CheckRepeatTitle(role, tid)) { return(Error((int)ResultType.TITLE_HAS_LOAD)); //验证同一称号已穿戴 } if (Common.GetInstance().Count(title) >= title.title_count) { return(Error((int)ResultType.TITLE_PACKET_FULL)); //验证称号格子是否已满 } //更新称号格子信息 title = UpdateNewTitle(title, rid); if (Common.GetInstance().Count(title) == 1) { title.title_load_state = (int)LoadStateType.LOAD; //穿戴后称号的状态 } return(CheckRole(session, role, btitle, title)); } catch (Exception ex) { XTrace.WriteException(ex); return(new ASObject()); } }
// private static WAR_DIPLOMACY_IN _objInstance; // /// <summary>WAR_DIPLOMACY_IN单体模式</summary> // public static WAR_DIPLOMACY_IN GetInstance() // { // return _objInstance ?? (_objInstance = new WAR_DIPLOMACY_IN()); // } /// <summary> 建交 </summary> public ASObject CommandStart(TGGSession session, ASObject data) { if (!data.ContainsKey("type") || !data.ContainsKey("id")) { return(null); } var id = Convert.ToInt32(data.FirstOrDefault(m => m.Key == "id").Value); //id:[double] 据点基表id var type = Convert.ToInt32(data.FirstOrDefault(m => m.Key == "type").Value); //type:[int] 1 建交 2 同盟 var userid = session.Player.User.id; var city = (new Share.War()).GetWarCity(id); if (city == null) { return(CommonHelper.ErrorResult(ResultType.WAR_CITY_NOEXIST)); } var p = tg_war_partner.GetEntityByUserId(userid, city.user_id); switch (type) { case 1: //type:[int] 1 建交 { if (p == null) { return(BuildData(0)); } return(p.friendly >= 100 ? CommonHelper.ErrorResult(ResultType.WAR_DIPLOMACY_FULL) : BuildData(p.friendly)); } case 2: //type:[int] 2 同盟 { if (p == null) { return(CommonHelper.ErrorResult(ResultType.WAR_DIPLOMACY_NOTFULL)); } var time = Common.GetInstance().CurrentTime(); if (p.time < time) { return(p.friendly < 100 ? CommonHelper.ErrorResult(ResultType.WAR_DIPLOMACY_NOTFULL) : BuildData(p.friendly)); } return(CommonHelper.ErrorResult(ResultType.WAR_DIPLOMACY_TIME_IN)); } default: { return(CommonHelper.ErrorResult(ResultType.FRONT_DATA_ERROR)); } } }
//private static ROLE_TITLE_UNLOAD ObjInstance; ///// <summary>ROLE_TITLE_UNLOAD单体模式</summary> //public static ROLE_TITLE_UNLOAD GetInstance() //{ // return ObjInstance ?? (ObjInstance = new ROLE_TITLE_UNLOAD()); //} public ASObject CommandStart(TGGSession session, ASObject data) { try { #if DEBUG XTrace.WriteLine("{0}:{1}", "ROLE_TITLE_UNLOAD", "称号卸载"); #endif if (!data.ContainsKey("roleId") || !data.ContainsKey("titleId")) { return(null); //验证前端传递参数信息 } var rid = Convert.ToInt64(data.FirstOrDefault(m => m.Key == "roleId").Value.ToString()); var tid = Convert.ToInt64(data.FirstOrDefault(m => m.Key == "titleId").Value.ToString()); var role = tg_role.GetEntityById(rid); var title = tg_role_title.GetTitleByTid(tid, session.Player.User.id); if (role == null || title == null) { return(Error((int)ResultType.DATABASE_ERROR)); //验证称号信息 } //验证玩家信息 if (role.user_id != session.Player.User.id || title.user_id != session.Player.User.id) { return(null); } //检查武将身上是否已经穿戴该称号,同时验证称号格子是否装备了该武将 if (!CheckRole(role, tid) || !CheckTitle(title, rid)) { return(Error((int)ResultType.FRONT_DATA_ERROR)); } if (title.title_load_state == (int)LoadStateType.UNLOAD) { return(Error((int)ResultType.TITLE_UN_LOAD)); //验证称号是否已经卸载 } //卸载称号后更新称号格子上的武将信息 title = DeleteRole(title, rid); //更新称号信息,对应处理武将信息 return(!tg_role_title.UpdateByTitle(title) ? Error((int)ResultType.DATABASE_ERROR) : UpdateRole(session, role, title.title_id, title)); } catch (Exception ex) { XTrace.WriteException(ex); return(new ASObject()); } }
/// <summary> /// 说明:任务步骤用 类型_类型id_完成值来表示。 /// 例如1_200001_1, 1表示任务类型对话,200001表示npc的id,对话类型中0表示未完成,1表示完成 /// 多步任务用|来分割,例如两步对话任务为 1_200001_1|1_200002_1. /// </summary> public ASObject CommandStart(TGGSession session, ASObject data) { #if DEBUG XTrace.WriteLine("{0}:{1}", "TASK_FINISH", "完成任务"); #endif #if DEBUG var sw = Stopwatch.StartNew(); #endif //type:0表示接受任务,1表示完成任务 2 表示提交任务 if (!data.ContainsKey("task") || !data.ContainsKey("npcId")) { return(null); } var id = Convert.ToInt64(data.FirstOrDefault(q => q.Key == "task").Value); var npc = Convert.ToInt32(data.FirstOrDefault(q => q.Key == "npcId").Value); if (session.MainTask == null) { XTrace.WriteLine("sesion中找不到任务"); return(null); } var userid = session.Player.User.id; var mytask = session.MainTask.CloneEntity(); if (mytask == null || mytask.id != id || mytask.task_type != (int)TaskType.MAIN_TASK || mytask.user_id != userid || mytask.task_state == (int)TaskStateType.TYPE_FINISHED) { return(null); } var basetask = Variable.BASE_TASKMAIN.FirstOrDefault(q => q.id == mytask.task_id); //基表数据 if (basetask == null) { return(null); } var baseindex = Variable.BASE_TASKMAIN.IndexOf(basetask); if (mytask.task_state != (int)TaskStateType.TYPE_REWARD) //验证任务是否完成 //return new ASObject(BulidReturnData((int)ResultType.TASK_MAINTASK_UNFINISHED, null)); { return(null); } #if DEBUG sw.Stop(); XTrace.WriteLine("指令 {1} 运行总耗时:{0} 毫秒", sw.ElapsedMilliseconds.ToString(), GetType().Namespace); #endif return(SubmitTaskCheck(mytask, npc, baseindex)); //验证提交任务 }
//private static ROLE_TITLE_SELECT ObjInstance; ///// <summary>ROLE_TITLE_SELECT单体模式</summary> //public static ROLE_TITLE_SELECT GetInstance() //{ // return ObjInstance ?? (ObjInstance = new ROLE_TITLE_SELECT()); //} public ASObject CommandStart(TGGSession session, ASObject data) { try { #if DEBUG XTrace.WriteLine("{0}:{1}", "ROLE_TITLE_SELECT", "称号选择"); #endif if (!data.ContainsKey("id")) { return(null); } var btid = Convert.ToInt32(data.FirstOrDefault(m => m.Key == "id").Value.ToString()); var player = session.Player; //获得称号信息 var title = tg_role_title.GetTitleByUseridTid(player.User.id, btid); if (title == null) { return(Error((int)ResultType.FRONT_DATA_ERROR)); //验证前端选择的称号信息 } var btitle = Variable.BASE_ROLETITLE.FirstOrDefault(m => m.id == btid); if (btitle == null) { return(Error((int)ResultType.BASE_TABLE_ERROR)); //验证基表信息 } //根据称号类型返回对应称号完成次数 var count = Count(player.UserExtend, btitle.methods); return(new ASObject(Common.GetInstance().BuildTitleSelect((int)ResultType.SUCCESS, count, title))); } catch (Exception ex) { XTrace.WriteException(ex); return(new ASObject()); } }
//public static WORK_DROP ObjInstance; ///// <summary> WORK_DROP单体模式 </summary> //public static WORK_DROP GetInstance() //{ // return ObjInstance ?? (ObjInstance = new WORK_DROP()); //} public ASObject CommandStart(TGGSession session, ASObject data) { #if DEBUG XTrace.WriteLine("{0}:{1}工作任务放弃", "WORK_DROP", session.Player.User.player_name); #endif if (!data.ContainsKey("id")) { return(null); } var id = Convert.ToInt64(data.FirstOrDefault(q => q.Key == "id").Value); var task = tg_task.GetEntityByIdAndUserId(id, session.Player.User.id); //tg_task.FindByid(id); if (task == null || task.task_type != (int)TaskType.WORK_TASK) { return(BuildData((int)ResultType.TASK_VOCATION_NOTASK, null)); } if (task.task_step_type == (int)TaskStepType.RAISE_COIN) { var key = string.Format("{0}_{1}_{2}", (int)CDType.WorkTask, task.user_id, task.id); Variable.CD.AddOrUpdate(key, true, (k, v) => true); } task = Common.GetInstance().WorkTasksInit(task); task.id = id; task.Update(); Common.GetInstance().ClearTime(task.user_id); return(BuildData((int)ResultType.SUCCESS, task)); }
//private static WAR_CITY_IN _objInstance; ///// <summary>WAR_CITY_IN单体模式</summary> //public static WAR_CITY_IN GetInstance() //{ // return _objInstance ?? (_objInstance = new WAR_CITY_IN()); //} /// <summary> 进入据点 </summary> public ASObject CommandStart(TGGSession session, ASObject data) { if (!data.ContainsKey("id")) { return(null); } var id = Convert.ToInt32(data.FirstOrDefault(m => m.Key == "id").Value);//id:[double] 据点基表id var userid = session.Player.User.id; var temp = view_war_city.GetEntityByUserId(userid, id); if (temp == null) { return(CommonHelper.ErrorResult(ResultType.NO_DATA)); } var city = BuildCity(temp); (new Share.War()).SaveWarCityAll(city); var roles = tg_war_role.GetPlayerWarRoleByUserId(userid, id, (int)WarRoleType.NPC); //获取备大将聚合 var rs = (new Share.War()).ToWarRoleInfoVos(roles); session.Player.War.PlayerInCityId = id; return(BulidData(temp, (int)WarCityCampType.OWN, rs)); }
//private static WAR_DEFENCE_PLAN_COST _objInstance; ///// <summary>WAR_DEFENCE_PLAN_COST单体模式</summary> //public static WAR_DEFENCE_PLAN_COST GetInstance() //{ // return _objInstance ?? (_objInstance = new WAR_DEFENCE_PLAN_COST()); //} /// <summary> 修改防守方案消费 </summary> public ASObject CommandStart(TGGSession session, ASObject data) { if (!data.ContainsKey("planId")) { return(null); } var getplan = data.FirstOrDefault(q => q.Key == "planId").Value.ToString(); Int64 planid = 0; Int64.TryParse(getplan, out planid); var planinfo = tg_war_city_plan.GetEntityByPlanId(planid, session.Player.User.id); if (planinfo == null) { return (CommonHelper.ErrorResult(ResultType.FRONT_DATA_ERROR)); } //不是第一次修改 if (planinfo.is_update == 1) { var city = session.Player.War.City.CloneEntity(); if (!CheckFunds(city)) { return(CommonHelper.ErrorResult(ResultType.WAR_RES_FUNDS_ERROR)); } session.Player.War.City = city; } //第一次修改 planinfo.is_update = 1; planinfo.Update(); return(BuildData(planinfo)); }
/// <summary> 出征选择目标 </summary> public ASObject CommandStart(TGGSession session, ASObject data) { if (!data.ContainsKey("id")) { return(null); } var id = Convert.ToInt32(data.FirstOrDefault(m => m.Key == "id").Value); //id:[double] 据点基表id (要出征的据点) var userid = session.Player.User.id; session.Player.War.WarBattle = new WarEntity(); var city = (new Share.War()).GetWarCity(id, userid); if (city == null) { return(CommonHelper.ErrorResult(ResultType.WAR_CITY_NOEXIST)); } var olist = new List <int>(); //己方可操作的据点 var rlist = new List <int>(); //敌方可操作的据点 var time = (DateTime.Now.Ticks - 621355968000000000) / 10000; var psList = tg_war_partner.GetEntityByUserId(userid); if (city.guard_time < time) //自己据点不在保护时间内 { session.Player.War.WarBattle.rivalMap = (new Share.War()).GetBattleMaps(id, psList, userid, new List <int>(), ref rlist); } session.Player.War.WarBattle.Map = (new Share.War()).GetMaps(id, psList, userid, new List <int>(), ref olist); session.Player.War.WarBattle.warGoCityId = id; session.Player.War.WarBattle.OperableCityIds = olist; session.Player.War.WarBattle.OperableRivalCityIds = rlist; return(BulidData(olist, rlist)); }
//private static ROLE_TITLE_PACKET_BUY _objInstance; ///// <summary>ROLE_TITLE_PACKET_BUY单体模式</summary> //public static ROLE_TITLE_PACKET_BUY GetInstance() //{ // return _objInstance ?? (_objInstance = new ROLE_TITLE_PACKET_BUY()); //} /// <summary>称号解锁</summary> public ASObject CommandStart(TGGSession session, ASObject data) { try { #if DEBUG XTrace.WriteLine("{0}:{1}", "ROLE_TITLE_PACKET_BUY", "称号解锁"); #endif if (!data.ContainsKey("titleId")) { return(null); //验证前端传递数据 } var tid = Convert.ToInt64(data.FirstOrDefault(m => m.Key == "titleId").Value.ToString()); var user = session.Player.User.CloneEntity(); var title = tg_role_title.GetTitleByTid(tid, user.id); if (title == null) { return(Error((int)ResultType.FRONT_DATA_ERROR)); } if (title.user_id != user.id) { return(null); //验证玩家信息,防止发包 } if (title.title_count >= 3) { return(Error((int)ResultType.TITLE_COUNT_FULL)); //验证已解锁称号格子数量 } var cost = CostGold(title); //计算解锁格子需要花费的元宝信息 var gold = user.gold; user.gold = user.gold - cost; if (user.gold < 0) { return(Error((int)ResultType.BASE_PLAYER_GOLD_ERROR)); } user.Update(); //记录玩家元宝资源消费记录 log.GoldInsertLog(cost, user.id, (int)ModuleNumber.TITLE, (int)TitleCommand.ROLE_TITLE_PACKET_BUY); (new Share.User()).REWARDS_API((int)GoodsType.TYPE_GOLD, user); //推送用户资源消耗更新 session.Player.User = user; //更新解锁后称号信息 if (!tg_role_title.UpdateByTitle(title)) { return(Error((int)ResultType.DATABASE_ERROR)); } //记录元宝花费日志 var logdata = string.Format("{0}_{1}_{2}_{3}", "Gold", gold, cost, user.gold); (new Share.Log()).WriteLog(user.id, (int)LogType.Use, (int)ModuleNumber.TITLE, (int)TitleCommand.ROLE_TITLE_PACKET_BUY, "称号", "解锁", "元宝", (int)GoodsType.TYPE_GOLD, cost, user.gold, logdata); return(new ASObject(BuildLoadData((int)ResultType.SUCCESS, title))); } catch (Exception ex) { XTrace.WriteException(ex); return(new ASObject()); } }
/// <summary> /// 获取前端数据 /// </summary> /// <param name="data"></param> /// <returns></returns> private Tuple <bool, Int32, Int64> GetFrontData(ASObject data) { if (!data.ContainsKey("planId") || !data.ContainsKey("type")) { return(Tuple.Create(false, 0, 0L)); } var sendplanid = data.FirstOrDefault(q => q.Key == "planId").Value.ToString(); var sendtype = data.FirstOrDefault(q => q.Key == "type").Value.ToString(); Int64 planid = 0; Int32 type = 0; if (!Int64.TryParse(sendplanid, out planid) || !Int32.TryParse(sendtype, out type)) { return(Tuple.Create(false, 0, 0L)); } return(Tuple.Create(true, type, planid)); }
/// <summary> 确定运输目标城市 </summary> public ASObject CommandStart(TGGSession session, ASObject data) { if (!data.ContainsKey("id")) { return(null); } var cityid = data.FirstOrDefault(m => m.Key == "id").Value.ToString(); var id = Convert.ToInt32(cityid); if (!session.Player.War.Transport.OperableCityIds.Contains(id)) { return(CommonHelper.ErrorResult(ResultType.WAR_TARGET_ERROR)); } var rule = Variable.BASE_RULE.FirstOrDefault(m => m.id == "32033"); if (rule == null) { return(CommonHelper.ErrorResult(ResultType.BASE_TABLE_ERROR)); } var mps = session.Player.War.Transport.Map; var startId = Convert.ToString(session.Player.War.PlayerInCityId); var dij = new Dijkstra(mps, startId, cityid); dij.Find(); var distance = dij.EndNode.MinDistance.ToString(); var str = rule.value.Replace("distance", distance); var express = CommonHelper.EvalExpress(str); var time = Convert.ToInt32(express); var city = (new Share.War()).GetWarCity(id); var baseCity = Variable.BASE_WARCITYSIZE.FirstOrDefault(m => m.id == city.size); if (baseCity == null) { return(CommonHelper.ErrorResult(ResultType.BASE_TABLE_ERROR)); } var foods = baseCity.foods - city.res_foods; var gun = baseCity.goods - city.res_gun; var horse = baseCity.goods - city.res_horse; var kuwu = baseCity.goods - city.res_kuwu; var razor = baseCity.goods - city.res_razor; var sX = new ResourceEntity { foods = foods < 0 ? 0 : foods, gun = gun < 0 ? 0 : gun, horse = horse < 0 ? 0 : horse, kuwu = kuwu < 0 ? 0 : kuwu, razor = razor < 0 ? 0 : razor }; session.Player.War.Transport.LockCityId = id; session.Player.War.Transport.LockTime = time; session.Player.War.Transport.LockShangXian = sX; return(BuildData(time, sX)); }
/// <summary> 同意建交 </summary> public ASObject CommandStart(TGGSession session, ASObject data) { if (!data.ContainsKey("id") || !data.ContainsKey("type")) { return(null); } var id = Convert.ToInt32(data.FirstOrDefault(m => m.Key == "id").Value); var type = Convert.ToInt32(data.FirstOrDefault(m => m.Key == "type").Value);//type:[int] 0:拒绝 1:同意 var temp = tg_war_partner.GetEntityById(id, session.Player.User.id); if (temp == null) { return(CommonHelper.ErrorResult(ResultType.NO_DATA)); } var time = Common.GetInstance().CurrentTime(); if (temp.time > time) { return(CommonHelper.ErrorResult(ResultType.WAR_YES_PARTNER)); } if (temp.state == (int)WarPertnerType.ALLIANCE_IN) { return(CommonHelper.ErrorResult(ResultType.WAR_YES_RESULT)); } var count = session.Player.UserExtend.war_total_own; var of = session.Player.User.office; var bof = Variable.BASE_OFFICE.FirstOrDefault(m => m.id == of); if (bof == null) { return(CommonHelper.ErrorResult(ResultType.BASE_TABLE_ERROR)); } var c = Convert.ToDouble(count) / Convert.ToDouble(bof.total_own); //占有率 switch (type) { case 0: { return(Refuse(temp, c)); } case 1: { return(Agree(temp, c)); } default: { return(CommonHelper.ErrorResult(ResultType.UNKNOW_ERROR)); } } }
public ASObject CommandStart(TGGSession session, ASObject data) { #if DEBUG XTrace.WriteLine("{0}:{1}工作任务领取", "WORK_ACCEPT", session.Player.User.player_name); #endif if (!data.ContainsKey("id")) { return(null); } var id = Convert.ToInt64(data.FirstOrDefault(q => q.Key == "id").Value); var userid = session.Player.User.id; var mytask = tg_task.GetEntityByIdAndUserId(id, userid); if (tg_task.GetEntityByUserIdAndType(userid, (int)TaskStateType.TYPE_UNRECEIVED, (int)TaskType.WORK_TASK)) { return(null); } var now = (DateTime.Now.Ticks - 621355968000000000) / 10000; if (mytask == null || mytask.task_state != (int)TaskStateType.TYPE_UNRECEIVED || mytask.task_type != (int)TaskType.WORK_TASK) { return(BuildData((int)ResultType.TASK_VOCATION_NOTASK, 0, null)); } var usertask = tg_task.GetTaskQueryByType(userid, (int)TaskType.WORK_TASK); if (usertask.Any(q => q.task_state == (int)TaskStateType.TYPE_REWARD || q.task_state == (int)TaskStateType.TYPE_UNFINISHED)) { return(BuildData((int)ResultType.WORK_IS_STARTED, 0, null)); } var baseinfo = Variable.BASE_TASKVOCATION.FirstOrDefault(q => q.id == mytask.task_id); if (baseinfo == null) { return(BuildData((int)ResultType.TASK_VOCATION_NOTASK, 0, null)); } //技能验证 if (!CheckSkill(baseinfo, session.Player.Role)) { return(BuildData((int)ResultType.TASK_SKILL_LACK, 0, null)); } //验证体力 if (!PowerOperate(session.Player.Role.Kind, userid)) { return(BuildData((int)ResultType.BASE_ROLE_POWER_ERROR, 0, null)); } //验证冷却时间 if (!CheckTime(mytask.task_coolingtime)) { return(BuildData((int)ResultType.WORK_TIME_WRONG, 0, null)); } mytask.task_starttime = (DateTime.Now.Ticks - 621355968000000000) / 10000; mytask.task_coolingtime = now + baseinfo.coolingTime * 1000; mytask.task_endtime = now + baseinfo.limitTime * 1000; TaskThreadStart(mytask);//接受任务启动线程 Common.GetInstance().LimitTimeThreading(baseinfo.limitTime, mytask); mytask.task_state = (int)TaskStateType.TYPE_UNFINISHED; mytask.Update(); return(BuildData((int)ResultType.SUCCESS, mytask)); }
/// <summary> 保存地形设定 </summary> public ASObject CommandStart(TGGSession session, ASObject data) { if (!data.ContainsKey("id") || !data.ContainsKey("list")) { return(null); } var id = Convert.ToInt64(data.FirstOrDefault(m => m.Key == "id").Value); //玩家地形设定vo var list = data.FirstOrDefault(m => m.Key == "list").Value as object[]; //玩家地形设定vo if (list == null || id <= 0) { return(CommonHelper.ErrorResult((int)ResultType.FRONT_DATA_ERROR)); } //保存空地形 if (!list.Any()) { return(!DataSave(id) ? CommonHelper.ErrorResult((int)ResultType.DATABASE_ERROR) : CommonHelper.SuccessResult()); } //if (tg_war_area.FindByid(id) == null) if (tg_war_area.GetEntityByUseridAndId(session.Player.User.id, id) == null) { return(CommonHelper.ErrorResult((int)ResultType.FRONT_DATA_ERROR)); } //解析前端数据并转换成实体集合 var listentity = GetAreaSet(list, id); //验证用户是否有该地形 if (!CheckArea(listentity, session.Player.User.id)) { return(CommonHelper.ErrorResult((int)ResultType.WAR_NO_AREA)); } //验证地形设定的坐标 if (!CheckPoint(listentity)) { return(CommonHelper.ErrorResult((int)ResultType.WAR_POINT_ERROR)); } //保存到数据库 return(!DataSave(listentity) ? CommonHelper.ErrorResult((int)ResultType.DATABASE_ERROR) : CommonHelper.SuccessResult()); }
public void ResultReceived(IPendingServiceCall call) { ASObject result = call.Result as ASObject; this._netConnection.RaiseNetStatus(result); if (!result.ContainsKey("level") || !(result["level"].ToString() == "error")) { this._netConnection.RaiseOnConnect(); } }
/// <summary> 出征资源结算 </summary> public ASObject CommandStart(TGGSession session, ASObject data) { if (!data.ContainsKey("id")) { return(null); } var id = Convert.ToInt32(data.FirstOrDefault(m => m.Key == "id").Value); //id:[int] 出征Vo的主键Id var bq = tg_war_battle_queue.GetEntityByUseridAndId(id, session.Player.User.id); //tg_war_battle_queue.FindByid(id); return(bq == null?CommonHelper.ErrorResult(ResultType.NO_DATA) : (new Share.War()).SettlementResource(bq)); }
/// <summary> 入驻 </summary> public ASObject CommandStart(TGGSession session, ASObject data) { if (!data.ContainsKey("id")) { return(null); } var id = Convert.ToInt32(data.FirstOrDefault(m => m.Key == "id").Value); //id:[int] 出征Vo的主键Id var userid = session.Player.User.id; var bq = tg_war_battle_queue.GetEntityByUseridAndId(id, userid); //FindByid(id); if (bq == null) { return(CommonHelper.ErrorResult(ResultType.NO_DATA)); } if (bq.time > Common.GetInstance().CurrentTime()) { return(CommonHelper.ErrorResult(ResultType.WAR_NOT_ARRIVE)); } var city = (new Share.War()).GetWarCity(bq.end_CityId, userid); if (city == null) { return(CommonHelper.ErrorResult(ResultType.WAR_CITY_NOEXIST)); } var rids = bq.rid.Split(',').Select(m => Convert.ToInt64(m)).ToList(); if (!rids.Any()) { return(CommonHelper.ErrorResult(ResultType.WAR_ROLE_NOEXIST)); } var roles = tg_war_role.GetEntityListByIds(rids); //合战战武将集合 if (!roles.Any()) { return(CommonHelper.ErrorResult(ResultType.WAR_ROLE_NOEXIST)); } var res = new ResourceEntity(); res = (new Share.War()).BuildResourceEntity(roles); res = (new Share.War()).BuildResourceEntity(bq, res); city = (new Share.War()).AddCityResources(res, city); bq.Delete(); city.Update(); (new Share.War()).SaveWarCityAll(city); (new Share.War()).RolesInitResultCity(roles, bq.end_CityId); (new Share.War()).SendCity(city.base_id, city.user_id); return(CommonHelper.SuccessResult()); }
public void ResultReceived(IPendingServiceCall call) { ASObject info = call.Result as ASObject; _netConnection.RaiseNetStatus(info); if ((info == null) || (info.ContainsKey("level") && info["level"].ToString() == "error")) { return; } _netConnection.RaiseOnConnect(); }
/// <summary> /// 说明:任务步骤用 类型_类型id_完成值来表示。 /// 例如1_200001_1, 1表示任务类型对话,200001表示npc的id,对话类型中0表示未完成,1表示完成 /// 多步任务用|来分割,例如两步对话任务为 1_200001_1|1_200002_1. /// </summary> public ASObject CommandStart(TGGSession session, ASObject data) { #if DEBUG XTrace.WriteLine("{0}:{1}", "TASK_FINISH", "任务更新"); #endif #if DEBUG var sw = Stopwatch.StartNew(); #endif //type:0表示接受任务,1表示完成任务 2 表示提交任务 if (!data.ContainsKey("task") || !data.ContainsKey("npcId")) { return(null); } var id = Convert.ToInt64(data.FirstOrDefault(q => q.Key == "task").Value); var npc = Convert.ToInt32(data.FirstOrDefault(q => q.Key == "npcId").Value); if (session.MainTask == null) { XTrace.WriteLine("sesion中找不到任务"); return(null); } var mytask = session.MainTask.CloneEntity(); if (mytask == null || mytask.id != id || mytask.task_type != (int)TaskType.MAIN_TASK || mytask.user_id != session.Player.User.id) { return(null); } var basetask = Variable.BASE_TASKMAIN.FirstOrDefault(q => q.id == mytask.task_id); //基表数据 if (basetask == null) { return(null); } #if DEBUG sw.Stop(); XTrace.WriteLine("指令 {1} 运行总耗时:{0} 毫秒", sw.ElapsedMilliseconds.ToString(), GetType().Namespace); #endif return(FinishTaskCheck(mytask, basetask.stepCondition, npc)); }
//private static WAR_FIGHT_LINE_ADD _objInstance; ///// <summary>WAR_FIGHT_LINE_ADD单体模式</summary> //public static WAR_FIGHT_LINE_ADD GetInstance() //{ // return _objInstance ?? (_objInstance = new WAR_FIGHT_LINE_ADD()); //} /// <summary> 合战武将战斗线路添加 </summary> public ASObject CommandStart(TGGSession session, ASObject data) { if (!data.ContainsKey("roles") || !data.ContainsKey("line") || !data.ContainsKey("type")) { return(null); } var roleid = Convert.ToInt64(data.FirstOrDefault(q => q.Key == "roles").Value.ToString()); var type = Convert.ToInt32(data.FirstOrDefault(q => q.Key == "type").Value.ToString()); if (!CheckRole(roleid)) { return(null); } var line = data.FirstOrDefault(q => q.Key == "line").Value.ToString(); if (!CheckLine(line, session.Player.User.id, type, roleid)) { return(null); } return(CommonHelper.SuccessResult()); }
/// <summary> /// 获取前端数据 /// </summary> /// <param name="data"></param> /// <returns>1.数据是否正确 2.武将id 3:兵种表基表id</returns> private Tuple <bool, Int64, Int32> GetClientData(ASObject data) { if (!data.ContainsKey("roleId") || !data.ContainsKey("soldierId")) { return(Tuple.Create(false, 0L, 0)); } var _roleid = data.FirstOrDefault(q => q.Key == "roleId").Value.ToString(); var _baseid = data.FirstOrDefault(q => q.Key == "soldierId").Value.ToString(); Int64 roleid; Int32 baseid; Int64.TryParse(_roleid, out roleid); Int32.TryParse(_baseid, out baseid); var soldier = tg_war_army_type.GetEntityByRidAndBaseId(roleid, baseid); if (soldier != null) { return(Tuple.Create(false, roleid, 0)); } return(Tuple.Create(true, roleid, baseid)); }
/// <summary> 本城转移 </summary> public ASObject CommandStart(TGGSession session, ASObject data) { if (!data.ContainsKey("id")) { return(null); } var id = Convert.ToInt32(data.FirstOrDefault(m => m.Key == "id").Value); //id:[double] 要转本城据点id var userid = session.Player.User.id; var main_id = session.Player.War.WarCityId; var extend = session.Player.UserExtend.CloneEntity(); var time = Common.GetInstance().CurrentTime(); if (extend.war_base_time > time) { return(CommonHelper.ErrorResult(ResultType.WAR_TIME_ERROR)); } if (main_id == 0) { return(CommonHelper.ErrorResult(ResultType.WAR_NO_MAIN)); } var citys = Variable.WarCityAll.Values.Where(m => (m.base_id == id || m.base_id == main_id) && m.user_id == userid).ToList(); if (citys.Count() != 2) { return(CommonHelper.ErrorResult(ResultType.NO_DATA)); } var rule = Variable.BASE_RULE.FirstOrDefault(m => m.id == "32096"); if (rule == null) { return(CommonHelper.ErrorResult(ResultType.BASE_TABLE_ERROR)); } extend.war_base_time = (DateTime.Now.AddMinutes(Convert.ToInt32(rule.value)).Ticks - 621355968000000000) / 10000; foreach (var item in citys) { item.type = item.type == (int)WarCityType.MAINCITY ? (int)WarCityType.VICECITY : (int)WarCityType.MAINCITY; item.Update(); (new Share.War()).SaveWarCityAll(item); (new Share.War()).SendCity(item.base_id, item.user_id); } extend.Update(); session.Player.UserExtend = extend; session.Player.War.WarCityId = id; var ls = citys.Select(item => EntityToVo.ToStrongHoldShowVo(item, extend.war_base_time)).ToList(); return(Common.GetInstance().BuildData(ls)); }
//private static WAR_DETERMINE_TARGET _objInstance; ///// <summary>WAR_DETERMINE_TARGET单体模式</summary> //public static WAR_DETERMINE_TARGET GetInstance() //{ // return _objInstance ?? (_objInstance = new WAR_DETERMINE_TARGET()); //} /// <summary> 出征确定目标 </summary> public ASObject CommandStart(TGGSession session, ASObject data) { if (!data.ContainsKey("id")) { return(null); } var id = Convert.ToInt32(data.FirstOrDefault(m => m.Key == "id").Value); var ids = session.Player.War.WarBattle.OperableRivalCityIds; var _ids = session.Player.War.WarBattle.OperableCityIds; if (!(ids.Contains(id) || _ids.Contains(id))) { return(CommonHelper.ErrorResult(ResultType.WAR_WAR_TARGET_ERROR)); } var rule = Variable.BASE_RULE.FirstOrDefault(m => m.id == "32033"); if (rule == null) { return(CommonHelper.ErrorResult(ResultType.BASE_TABLE_ERROR)); } var mps = new List <Core.Common.Util.Map>(); if (ids.Contains(id)) { mps = session.Player.War.WarBattle.rivalMap; } if (_ids.Contains(id)) { mps = session.Player.War.WarBattle.Map; } var startId = Convert.ToString(session.Player.War.WarBattle.warGoCityId); var dij = new Dijkstra(mps, startId, Convert.ToString(id)); dij.Find(); var distance = dij.EndNode.MinDistance.ToString(); var str = rule.value.Replace("distance", distance); var express = CommonHelper.EvalExpress(str); var time = Convert.ToInt32(express); session.Player.War.WarBattle.LockTime = time; session.Player.War.WarBattle.LockCityId = id; session.Player.War.WarBattle.lastCityId = Convert.ToInt32(dij.EndNode.LastSecond());//是否有其他大名攻击 0:有 -1 没有 var type = tg_war_battle_queue.GetCityIsAttack(id) ? 0 : -1; return(BuildData(time, type)); }
//private static WAR_FIGHT_LINE_REMOVE _objInstance; ///// <summary>WAR_FIGHT_LINE_REMOVE单体模式</summary> //public static WAR_FIGHT_LINE_REMOVE GetInstance() //{ // return _objInstance ?? (_objInstance = new WAR_FIGHT_LINE_REMOVE()); //} /// <summary> 移除线路 </summary> public ASObject CommandStart(TGGSession session, ASObject data) { try { # if DEBUG XTrace.WriteLine("{0}:{1}", "WAR_FIGHT_LINE_REMOVE", "移除线路"); #endif if (!data.ContainsKey("roles") || !data.ContainsKey("type")) { return(CommonHelper.ErrorResult((int)ResultType.FRONT_DATA_ERROR)); } var rid = Convert.ToInt64(data.FirstOrDefault(q => q.Key == "roles").Value.ToString()); var type = Convert.ToInt32(data.FirstOrDefault(q => q.Key == "type").Value.ToString()); var role = tg_role.FindByid(rid); if (role == null) { return(CommonHelper.ErrorResult((int)ResultType.ROLE_NOT_EXIST)); } Variable.RemoveLine(role.user_id, type, rid); //移除用户武将合战线路 return(CommonHelper.SuccessResult()); }
public GGChatUser(ASObject user) { try { if( user.ContainsKey("banned") ) _banned = bool.Parse(user["banned"].ToString()); if (user.ContainsKey("color")) _color = (string)user["color"]; if (user.ContainsKey("id")) _id = int.Parse(user["id"].ToString()); if (user.ContainsKey("level")) _level = int.Parse(user["level"].ToString()); if (user.ContainsKey("name")) _name = (string)user["name"]; if (user.ContainsKey("sex")) _gender = int.Parse(user["sex"].ToString()); } catch { } }
void OnHtmlEditorImageChangedEvent(HtmlEditor.Event eventType, ASObject value) { StringBuilder sb = new StringBuilder(); sb.Append("<img src='").Append(value.getString("path")).Append("'"); if(value.ContainsKey("width")) sb.Append(" width='").Append(value.getString("width")).Append("px'"); if (value.ContainsKey("height")) sb.Append(" height='").Append(value.getString("height")).Append("px'"); if(value.ContainsKey("alt")) sb.Append(" alt='").Append(value.getString("alt")).Append("'"); sb.Append(" />"); if(eventType == Event.Create) runtime.call("HtmlEditorInsertContent", new object[] { sb.ToString()}); else if(eventType == Event.Update) runtime.call("HtmlEditorReplaceContent", new object[] { sb.ToString() }); }
/// <summary> /// 更新邮件记录 /// </summary> /// <param name="mail"></param> /// <param name="updateFields"></param> public void updateMailRecord(ASObject mail, string[] updateFields) { if (mail == null || updateFields == null || updateFields.Length == 0) return; string sql = @"update ML_Mail set "; StringBuilder sb = new StringBuilder(); sb.Append(sql); foreach (string field in updateFields) { sb.Append(field).Append("=@").Append(field).Append(","); } if (sb.ToString().LastIndexOf(",") != -1) sb.Remove(sb.ToString().LastIndexOf(","), 1); if(mail.ContainsKey("id")) sb.Append(" where id=@id"); else sb.Append(" where uuid=@uuid"); SQLiteCommand cmd = null; try { cmd = new SQLiteCommand(sb.ToString(), DBWorker.GetConnection()); if (mail.ContainsKey("id")) cmd.Parameters.AddWithValue("@id", mail["id"]); else cmd.Parameters.AddWithValue("@uuid", mail["uuid"]); foreach (string field in updateFields) { cmd.Parameters.AddWithValue("@" + field, mail[field]); } cmd.ExecuteNonQuery(); cmd.Dispose(); } catch (Exception ex) { System.Diagnostics.Debug.Write(ex.StackTrace); } finally { if (cmd != null) { cmd.Dispose(); } } }
private void showMail(ASObject mail) { try { if (Mail_Type == MailType.Dsbox) { btnSave.IsEnabled = false; btnAudit.IsEnabled = false; } txtTo.TextChanged -= txtTo_TextChanged; cboFrom.SelectionChanged -= cboFrom_SelectionChanged; string mail_account = mail["mail_account"] as string; from = MailSendWorker.instance.findAccount(mail_account); if (from == null) { txtTo.TextChanged += txtTo_TextChanged; cboFrom.SelectionChanged += cboFrom_SelectionChanged; } string file = mail.getString("mail_file"); StringBuilder sb = new StringBuilder(); Mail_Message = MailWorker.instance.ParseMail(file); if (Mail_Type == MailType.Transmit) txtSubject.Text = "Fw:" + mail["subject"] as string; else if (Mail_Type == MailType.Reply || Mail_Type == MailType.AllReply) { txtSubject.Text = "Re:" + mail["subject"] as string; } else txtSubject.Text = mail["subject"] as string; sb.Clear(); Mail_t_AddressList addresses = Mail_Message.Cc; if (addresses != null) { foreach (Mail_t_Mailbox mailbox in addresses.Mailboxes) { sb.Append(mailbox.Address).Append(";"); } if (sb.ToString().LastIndexOf(";") != -1) sb.Remove(sb.ToString().LastIndexOf(";"), 1); txtCc.Text = sb.ToString(); } if (Mail_Type == MailType.Draft || Mail_Type == MailType.Dsbox) txtTo.Text = mail["mail_to"] as string; else if (Mail_Type != MailType.Transmit) txtTo.Text = mail["contact_mail"] as string; if (Mail_Type != MailType.Transmit) { //审核人 if (mail.ContainsKey("reviewer_id") && !String.IsNullOrWhiteSpace(mail.getString("reviewer_id"))) { txtAudit.Text = mail.getString("reviewer_name"); } } sb.Clear(); string uid = mail["uuid"] as string; DirectoryInfo dirinfo = Directory.GetParent(store_path + file); string dir = dirinfo.FullName + "/" + uid + ".parts"; if (Mail_Type == MailType.Transmit) { sb.Append(getTransmitVm(mail, Mail_Message)); sb.Append("<blockquote id=\"isReplyContent\" style=\"PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid\">"); } else if (Mail_Type == MailType.Reply || Mail_Type == MailType.AllReply) { sb.Append(getReplyVm(mail, Mail_Message)); sb.Append("<blockquote id=\"isReplyContent\" style=\"PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid\">"); } string textHtml = parseMIMEContent(Mail_Message, dir); sb.Append(textHtml); if (Mail_Type == MailType.Transmit || Mail_Type == MailType.Reply || Mail_Type == MailType.AllReply) { sb.Append("</blockquote>"); } htmlEditor.ContentHtml = sb.ToString(); if (Mail_Type == MailType.Draft || Mail_Type == MailType.Dsbox) { _saveMail = _mail; } } catch (Exception e) { System.Diagnostics.Debug.Write(e.StackTrace); ime.controls.MessageBox.Show(e.Message, "错误", MessageBoxButton.OK, MessageBoxImage.Error); } }
public GGChatMessage(ASObject msg) { if (msg.ContainsKey("id")) _id = int.Parse(msg["id"].ToString()); if (msg.ContainsKey("privacy")) _privacy = int.Parse(msg["privacy"].ToString()); if (msg.ContainsKey("recipient")) { var tmprec = msg["recipient"].ToString(); _recipient = (tmprec == "0" ? "" : tmprec); } if (msg.ContainsKey("sender")) _sender = new GGChatUser((ASObject)msg["sender"]); if (msg.ContainsKey("status")) _status = int.Parse(msg["status"].ToString()); if (msg.ContainsKey("text")) _text = (string)msg["text"]; if (msg.ContainsKey("time")) _time = (string)msg["time"]; }
private void ChangeData() { if (createList.Count > 0) { try { foreach (ASObject account in createList) { ASObject policy = new ASObject(); ASObject ac = new ASObject(); ASObjectUtil.copyTo(account, ac); if (ac.ContainsKey("distribution_policy")) { ac.Remove("distribution_policy"); policy["distribution_policy"] = account.getObject("distribution_policy"); } Remoting.call("MailManager.createMailAccount", new object[] { ac, ASObjectUtil.toJObject(policy).ToString() }); _initImportList.Add(account); } createList.Clear(); } catch (Exception ex) { createList.Clear(); throw ex; } } if (updateList.Count > 0) { try { foreach (ASObject account in updateList) { ASObject policy = new ASObject(); ASObject ac = new ASObject(); ASObjectUtil.copyTo(account, ac); if (ac.ContainsKey("distribution_policy")) { ac.Remove("distribution_policy"); policy["distribution_policy"] = account.getObject("distribution_policy"); } Remoting.call("MailManager.updateMailAccount", new object[] { ac, ASObjectUtil.toJObject(policy).ToString() }); } updateList.Clear(); } catch (Exception ex) { updateList.Clear(); throw ex; } } if (removeList.Count > 0) { try { foreach (ASObject account in removeList) { Remoting.call("MailManager.removeMailAccount", new object[] { account.getLong("id") }); } removeList.Clear(); } catch (Exception ex) { removeList.Clear(); throw ex; } } Remoting.call("MailManager.reloadMailAccount", new object[] { }, this); }
private void AddUpdate(ASObject account) { if (account.ContainsKey("id") && !updateList.Contains(account)) updateList.Add(account); }