public Response Execute(string request) { var req = JsonConvert.DeserializeObject <Request <GameTeamLoopTempletFilter> >(request); Response res = ResultHelper.Success(); res.Tag = GameLoopTempletHelper.IsExistTemplet(req.Filter.Name, req.Filter.ModifyFlag); //bool类型 ,TRUE为名称重复 res.Tag1 = GameLoopTempletHelper.GetRuleCodes(req.Filter.PersonCount, true, true); //队伍1(主队)对阵编码字符数组 if (req.Filter.IsGuest) { res.Tag2 = GameLoopTempletHelper.GetRuleCodes(req.Filter.PersonCount, false, true);//队伍2(客队)对阵编码字符数组 } else { res.Tag2 = GameLoopTempletHelper.GetRuleCodes(req.Filter.PersonCount, true, true);//队伍2(客队)对阵编码字符数组 } return(res); }
public Response Execute(User currentUser, string request) { var req = JsonConvert.DeserializeObject <Request <GameTeamLoopTemplet> >(request); GameTeamLoopTemplet templet = req.FirstEntity(); Response res = null; Command cmd = null; if (templet.RowState == RowState.Added || templet.RowState == RowState.Modified) { if (templet.PersonCount <= 0 || templet.PersonCount > 9) { return(ResultHelper.Fail("上场人数不超过9人")); } if (templet.LoopCount <= 0 || templet.LoopCount > 9) { return(ResultHelper.Fail("总对阵场数不超过9场")); } } if (templet.RowState == RowState.Added)//新增, { //假如上传基于模板ID,判断是否基于已有模板创建,不检查同名 if (string.IsNullOrEmpty(templet.Id)) { if (GameLoopTempletHelper.IsExistTemplet(templet.Name, false)) { return(ResultHelper.Fail("对阵模板重名")); } } else { templet.Name = GameLoopTempletHelper.GetNewTempletName(templet.Name);//模板名称基于上个模板递增序号 } if (templet.Detail.Count <= 0) { return(ResultHelper.Fail("缺少模板规则")); } templet.SetNewEntity(); res = AddTemplet(templet, currentUser, true); res.Tag = false; res.Entities.Add(templet); return(res); } else { GameTeamLoopTemplet temp = GameLoopTempletHelper.GetTemplet(templet.Id);//获取对阵模板对象 if (temp.CreatorId != currentUser.Id) { return(ResultHelper.Fail("不能修改或删除非自己创建的模板")); } if (templet.RowState == RowState.Modified) //修改 { if (GameLoopTempletHelper.IsUseTemplet(templet.Id)) //模板在使用中,直接按内容新建模板 { templet.SetNewEntity(); templet.RowState = RowState.Added; templet.Name = GameLoopTempletHelper.GetNewTempletName(templet.Name); res = AddTemplet(templet, currentUser, true); if (res.IsSuccess) { res.Message = "模板在使用中,已保存为新的模板【" + templet.Name + "】"; res.Tag = true;//修改正在使用的模板保存,些值为true } return(res); } ///先删除对应模板ID所有的规则详情 string delSql = @"DELETE FROM GameTeamLoopTempletDetail WHERE TempletId=@templetId"; cmd = CommandHelper.CreateText(FetchType.Execute, delSql); cmd.Params.Add("@templetId", templet.Id); DbContext.GetInstance().Execute(cmd); //////////////////////////////////////////////////////////// var entities = GameLoopTempletHelper.GetTemplets(templet.Name);//通过新名称检查模板 if (entities.Count > 0) { var temp1 = entities[0] as GameTeamLoopTemplet; if (temp1.Id != templet.Id)//假如有同名但是模板id与修改的模板ID不同 { return(ResultHelper.Fail("已存在相同名称对阵模板")); } } templet.SetCreateDate(); res = AddTemplet(templet, currentUser, false); res.Tag = false; } else if (templet.RowState == RowState.Deleted)//删除 { if (GameLoopTempletHelper.IsUseTemplet(templet.Id)) { res = ResultHelper.Fail("模板已被使用,不能删除"); res.Tag = false; return(res); } string delSql = @"DELETE FROM GameTeamLoopTemplet WHERE Id=@templetId DELETE FROM GameTeamLoopTempletDetail WHERE TempletId=@templetId"; cmd = CommandHelper.CreateText(FetchType.Execute, delSql); cmd.Params.Add("@templetId", templet.Id); res = DbContext.GetInstance().Execute(cmd); res.Tag = false; } } return(res); }