Exemple #1
0
        public ApiResult <bool> ChangeDivision(ChangeDivisionReqs request)
        {
            Wizards wizard = _wizardRepository.Query(request.CreatorId);

            if (wizard == null)
            {
                return(new ApiResult <bool>(ResultStatus.FAIL, "你是谁"));
            }

            Divisions division = _divisionRepository.Query(request.DivisionId);

            if (division == null)
            {
                return(new ApiResult <bool>(ResultStatus.FAIL, "找不到该分部"));
            }

            division.Change(request.Name, request.CityId, request.CreateTime);

            if (_divisionRepository.Update(division) <= 0)
            {
                return(new ApiResult <bool>(ResultStatus.FAIL, "没有任何更改"));
            }

            return(new ApiResult <bool>(ResultStatus.SUCCESS, true));
        }
Exemple #2
0
        public ApiResult <bool> UpdateWizard(UpdateWizardReqs request)
        {
            Wizards wizard = _wizardRepository.Query(request.WizardId);

            if (wizard == null)
            {
                return(new ApiResult <bool>(ResultStatus.FAIL, "找不到这名巫师的记录"));
            }

            Divisions division = _divisionRepository.Query(request.DivisionId);

            if (division == null)
            {
                return(new ApiResult <bool>(ResultStatus.FAIL, "所选分部不存在"));
            }

            wizard.Change(request.Account, request.DivisionId, request.Passward);

            if (_wizardRepository.Update(wizard) <= 0)
            {
                return(new ApiResult <bool>(ResultStatus.FAIL, "没有更新任何信息"));
            }

            return(new ApiResult <bool>(ResultStatus.SUCCESS, true));
        }
Exemple #3
0
        public ApiResult <bool> CreateDivision(CreateDivisionReqs request)
        {
            if (_divisionRepository.QueryByCityId(request.CityId) != null)
            {
                return(new ApiResult <bool>(ResultStatus.FAIL, "该城市分部已创建"));
            }

            Wizards wizard = _wizardRepository.Query(request.CreatorId);

            if (wizard == null)
            {
                return(new ApiResult <bool>(ResultStatus.FAIL, "你是谁"));
            }

            long divisionId = NewId.GenerateId();

            var division = new Divisions(divisionId, request.CityId, request.Name, request.CreatorId);

            if (_divisionRepository.Insert(division) <= 0)
            {
                return(new ApiResult <bool>(ResultStatus.FAIL, "保存时出错,请稍后再试"));
            }

            return(new ApiResult <bool>(ResultStatus.SUCCESS, true));
        }
        public static void RemoveWizard(string wizardName)
        {
            Wizard wizard = Wizards.Find(x => x.Name == wizardName);

            if (null != wizard)
            {
                Wizards.Remove(wizard);
            }
        }
        public static Wizard GetWizard(string name)
        {
            Wizard wizard = null;

            foreach (Wizard wzd in Wizards.Where(wzd => name == wzd.Name))
            {
                wizard = wzd;
                return(wizard);
            }

            return(wizard);
        }
Exemple #6
0
        public ApiResult <bool> ImportApplicantsFromWeidian(ImportApplicantReqs request)
        {
            Activity activity = _activityRepository.Query(request.ActivityId);

            if (activity == null)
            {
                return(new ApiResult <bool>(ResultStatus.FAIL, "活动不存在"));
            }

            var wizards    = new List <Wizards>();
            var applicants = new List <Applicant>();

            IEnumerable <Wizards>   wizardList    = _wizardRepository.Query(request.Data.Select(x => x.Mobile).ToArray());
            IEnumerable <Applicant> applicantList = _applicantRepository.QueryByActivityId(request.ActivityId);

            request.Data.Where(x => !x.OrderNo.IsNullOrEmpty()).OrderBy(x => x.CreateTime).ForEach(item =>
            {
                Wizards wizard = wizardList.FirstOrDefault(w => w.Account == item.Mobile) ?? wizards.FirstOrDefault(w => w.Account == item.Mobile);
                if (wizard == null)
                {
                    long wizardId = NewId.GenerateId();
                    wizard        = new Wizards(wizardId, item.Mobile, null, item.Mobile.Substring(5, 6));
                    wizard.ChangeInfo(item.WechatName, null, item.Mobile, 0, DateTime.Now, null, 0);
                    wizards.Add(wizard);
                }

                Applicant applicant = applicantList.FirstOrDefault(x => x.ExtOrderNo == item.OrderNo);
                if (applicant == null)
                {
                    applicant = new Applicant(NewId.GenerateId(), wizard.WizardId, activity, item.RealName,
                                              item.WechatName, item.Mobile, item.Count, item.OrderNo, item.CreateTime);
                    applicant.Pay();
                    applicants.Add(applicant);
                }
            });

            _transactionRepository.UseTransaction(IsolationLevel.ReadCommitted, () =>
            {
                if (wizards.Any())
                {
                    _wizardRepository.BatchCreate(wizards);

                    _wizardProfileRepository.BatchInsert(wizards.Select(x => x.Profile));
                }
                if (applicants.Any())
                {
                    _applicantRepository.BatchInsert(applicants);
                }
            });

            return(new ApiResult <bool>(ResultStatus.SUCCESS, true));
        }
Exemple #7
0
    void Network_onGameBegin()
    {
        if (isFirstPlayer == false && photonView.isMine)
        { // Player 2 goes to the other side of the table
            Vector3 position = transform.position;
            position.z         = -position.z;
            transform.position = position;
        }

        Wizards wizards = GameObject.FindObjectOfType <Wizards>();

        transform.SetParent((isFirstPlayer ? wizards.player1WandBone : wizards.player2WandBone).transform);
        transform.localPosition = Vector3.zero;
    }
Exemple #8
0
        /// <summary>
        /// 选择此座位
        /// </summary>
        /// <param name="wizard"></param>
        public void Choose(Wizards wizard)
        {
            if (wizard == null)
            {
                throw new DomainException("当前用户不存在");
            }

            if (this.Selected)
            {
                throw new DomainException("座位已被选");
            }

            this.WizardId   = wizard.WizardId;
            this.Selected   = true;
            this.SelectTime = DateTime.Now;
        }
Exemple #9
0
    void Network_onGameBegin()
    {
        if (isFirstPlayer == false && photonView.isMine)
        { // Player 2 goes to the other side of the table
            Vector3 position = transform.position;
            position.z         = -position.z;
            transform.position = position;
        }

        Wizards wizards = GameObject.FindObjectOfType <Wizards>();

        transform.SetParent((isFirstPlayer ? wizards.player1WandBone : wizards.player2WandBone).transform);
        transform.localPosition = new Vector3(0, .02067f, 0);
        transform.localRotation = Quaternion.identity;
        transform.localScale    = Vector3.one * .02198f;
    }
Exemple #10
0
      static void Main(string[] args)
      {
          Wizards[] wizards = new Wizards[]
          {
              new Wizards("Alatar", 100, 200, new DateTime(1600, 2, 12), true),
              new Wizards("Gandalf", 150, 230, new DateTime(1650, 12, 2), true),
              new Wizards("Ganon", 170, 300, new DateTime(1550, 3, 13), true),
          };
          Creatures[] creatures = new Creatures[]
          {
              new Creatures("Pallando", 80, 90, false),
              new Creatures("Saruman", 70, 160, false),
              new Creatures("Puck", 60, 50, false),
              new Creatures("Oscar", 50, 300, false),
          };


          Duel(wizards, creatures);

          Console.ReadLine();
      }
Exemple #11
0
        public ApiResult <bool> Register(RegisterWizardReqs request)
        {
            try
            {
                if (_wizardQueryService.Query(request.Account) != null)
                {
                    return(new ApiResult <bool>(ResultStatus.FAIL, "用户名已存在"));
                }

                if (_wizardQueryService.QueryByEmail(request.Email) != null)
                {
                    return(new ApiResult <bool>(ResultStatus.FAIL, "邮箱已被注册"));
                }

                long wizardId = NewId.GenerateId();

                var wizard = new Wizards(wizardId, request.Account, request.Email, request.Passward);

                _transactionRepository.UseTransaction(IsolationLevel.ReadUncommitted, () =>
                {
                    if (_wizardRepository.Create(wizard) <= 0)
                    {
                        throw new Exception("保存时发生异常,请稍后再试(1)");
                    }

                    if (_wizardPRofileRepository.Insert(wizard.Profile) <= 0)
                    {
                        throw new Exception("保存时发生异常,请稍后再试(2)");
                    }
                });

                return(new ApiResult <bool>(ResultStatus.SUCCESS, true));
            }
            catch (Exception ex)
            {
                LoggerExtensions.LogError(_logger, "注册时异常", ex);
                return(new ApiResult <bool>(ResultStatus.EXCEPTION, ex.Message));
            }
        }
Exemple #12
0
        public ApiResult <bool> CreateWizard(CreateWizardReqs request)
        {
            if (string.IsNullOrEmpty(request.Account))
            {
                return(new ApiResult <bool>(ResultStatus.FAIL, "巫师名未提交"));
            }

            if (_wizardRepository.Query(request.Account) != null)
            {
                return(new ApiResult <bool>(ResultStatus.FAIL, "巫师名重复了"));
            }

            long wizardId = NewId.GenerateId();
            var  wizard   = new Wizards(wizardId, request.Account, request.Passward, request.DivisionId, request.CreatorId);

            if (_wizardRepository.Create(wizard) <= 0)
            {
                return(new ApiResult <bool>(ResultStatus.FAIL, "保存时异常,请稍后再试"));
            }

            return(new ApiResult <bool>(ResultStatus.SUCCESS, true));
        }
Exemple #13
0
        public ApiResult <bool> Select(long sessionId, long wizardId, long taskId, string[] seatNos)
        {
            try
            {
                if (sessionId <= 0)
                {
                    return(new ApiResult <bool>(ResultStatus.FAIL, "sessionId必须大于0"));
                }

                if (wizardId <= 0)
                {
                    return(new ApiResult <bool>(ResultStatus.FAIL, "wizardId须大于0"));
                }

                if (taskId <= 0)
                {
                    return(new ApiResult <bool>(ResultStatus.FAIL, "taskId必须大于0"));
                }

                //if (session.Status != SessionStatus.进行中)
                //    return new ApiResult<bool>(ResultStatus.SUCCESS, "场次" + session.Status.GetName() + ",无法选座");

                Wizards wizard = _wizardRepository.Query(wizardId);
                if (wizard == null)
                {
                    return(new ApiResult <bool>(ResultStatus.FAIL, "巫师未注册"));
                }

                SelectSeatTask selectedTask = _selectSeatTaskRepository.Query(taskId);
                if (selectedTask == null)
                {
                    return(new ApiResult <bool>(ResultStatus.FAIL, "排队号不存在"));
                }

                if (selectedTask.Status != SelectTaskStatus.进行中)
                {
                    return(new ApiResult <bool>(ResultStatus.FAIL, "当前状态" + selectedTask.Status.GetName() + ",不能选座哦,请再等等或刷新!"));
                }

                if (selectedTask.WizardId != wizardId)
                {
                    return(new ApiResult <bool>(ResultStatus.FAIL, "请选择正确的任务"));
                }

                if (selectedTask.Total != seatNos.Length)
                {
                    return(new ApiResult <bool>(ResultStatus.FAIL, "选座数量必须为" + selectedTask.Total + "个"));
                }

                //IEnumerable<SelectSeatTask> tasks = _selectSeatTaskRepository.QueryByWizardId(sessionId, wizardId);
                //if (tasks.IsNullOrEmpty())
                //    return new ApiResult<bool>(ResultStatus.FAIL, "不在队列中");

                //SelectSeatTask canSelectTask = tasks.Where(x => x.Status == SelectTaskStatus.进行中).OrderBy(x => x.SerialNo).FirstOrDefault();
                //if (canSelectTask == null)
                //    return new ApiResult<bool>(ResultStatus.FAIL, "没有可选的名额了");

                //if (canSelectTask.Total != seatNos.Length)
                //    return new ApiResult<bool>(ResultStatus.FAIL, "选座数量必须为" + canSelectTask.Total);

                IEnumerable <Seat> seats = _seatRepository.Query(sessionId, seatNos);
                if (seats.Count() != seatNos.Length)
                {
                    return(new ApiResult <bool>(ResultStatus.FAIL, "seatNos传参错误"));
                }

                var selectedSeats = seats.Select(item =>
                {
                    item.Choose(wizard);
                    return(item);
                }).ToList();

                selectedTask.Select(seatNos);

                Session session = _sessionRepository.Query(sessionId);
                if (session == null)
                {
                    return(new ApiResult <bool>(ResultStatus.FAIL, "场次不存在"));
                }

                SelectSeatTask nextTask = null;
                if (session.Status == SessionStatus.进行中)
                {
                    nextTask = _selectSeatTaskRepository.QueryNextTask(selectedTask);
                    nextTask?.Begin();
                }

                _transactionRepository.UseTransaction(IsolationLevel.ReadUncommitted, () =>
                {
                    if (_seatRepository.BatchUpdate(selectedSeats.ToArray()) < 0)
                    {
                        throw new DomainException("保存时异常0");
                    }

                    if (_selectSeatTaskRepository.Select(selectedTask) < 0)
                    {
                        throw new DomainException("保存时异常1");
                    }

                    if (nextTask != null && _selectSeatTaskRepository.Start(nextTask) < 0)
                    {
                        throw new DomainException("保存时异常2");
                    }
                });

                return(new ApiResult <bool>(ResultStatus.SUCCESS, true));
            }
            catch (Exception ex)
            {
                _logger.LogError("选择座位异常", ex);
                return(new ApiResult <bool>(ResultStatus.EXCEPTION, ex.Message));
            }
        }