Пример #1
0
        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);
        }
Пример #2
0
        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);
        }