public ServiceStatus Get()
        {
            using (var connection = _helper.GetConnection())
            {
                connection.Open();

                var           clients   = connection.Query <ClientHeartbeat>("SELECT MachineName, LastHeartbeat FROM Clients;");
                ServiceStatus result    = new ServiceStatus();
                DateTime      timeLimit = DateTime.UtcNow - TimeSpan.FromMinutes(_workerNonResponsiveAlertMinutes);

                foreach (ClientHeartbeat ch in clients)
                {
                    WorkerStatusEnum thisStatus = WorkerStatusEnum.OK;
                    if (ch.LastHeartbeat < timeLimit)
                    {
                        thisStatus = WorkerStatusEnum.NonResponsive;
                    }
                    result.Workers.Add(new WorkerStatus()
                    {
                        Status = thisStatus, WorkerName = ch.MachineName
                    });
                }

                return(result);
            }
        }
Example #2
0
    /// <summary>
    /// 获取员工工作状态
    /// </summary>
    /// <returns></returns>
    public WorkerStatusEnum GetWorkerStatus(out string workerStatusStr)
    {
        workerStatusStr = "";
        WorkerStatusEnum workerStatus = (WorkerStatusEnum)this.workerStatus;

        switch (workerStatus)
        {
        case WorkerStatusEnum.Rest:
            workerStatusStr = TextHandler.Instance.manager.GetTextById(282);
            break;

        case WorkerStatusEnum.Work:
            workerStatusStr = TextHandler.Instance.manager.GetTextById(281);
            break;

        case WorkerStatusEnum.Vacation:
            workerStatusStr = TextHandler.Instance.manager.GetTextById(283);
            break;

        case WorkerStatusEnum.Research:
            workerStatusStr = TextHandler.Instance.manager.GetTextById(284);
            break;

        case WorkerStatusEnum.InfiniteTowers:
            workerStatusStr = TextHandler.Instance.manager.GetTextById(288);
            break;
        }
        return(workerStatus);
    }
Example #3
0
 /// <summary>
 /// 设置出勤
 /// </summary>
 /// <param name="isAttendance"></param>
 public void SetAttendance(WorkerStatusEnum workerStatus)
 {
     this.workerStatus = workerStatus;
     characterData.baseInfo.SetWorkerStatus(workerStatus);
     characterData.baseInfo.GetWorkerStatus(out string workerStatusStr);
     if (workerStatus == WorkerStatusEnum.Rest || workerStatus == WorkerStatusEnum.Work)
     {
         rbAttendance.SetEnabled(true);
         if (workerStatus == WorkerStatusEnum.Work)
         {
             rbAttendance.ChangeStates(RadioButtonView.RadioButtonStatus.Selected);
         }
         else if (workerStatus == WorkerStatusEnum.Rest)
         {
             rbAttendance.ChangeStates(RadioButtonView.RadioButtonStatus.Unselected);
         }
         ivAttendance.gameObject.SetActive(true);
     }
     else
     {
         rbAttendance.SetEnabled(false);
         rbAttendance.ChangeStates(RadioButtonView.RadioButtonStatus.Unselected);
         ivAttendance.gameObject.SetActive(false);
     }
     rbAttendance.rbText.text = workerStatusStr;
     if (mCallBack != null)
     {
         mCallBack.AttendanceChange(this, workerStatus, characterData);
     }
 }
Example #4
0
 protected void ChangeAllSelectStatus(bool isSelect)
 {
     AudioHandler.Instance.PlaySound(AudioSoundEnum.ButtonForNormal);
     for (int i = 0; i < listData.Count; i++)
     {
         CharacterBean    characterData = listData[i];
         WorkerStatusEnum workerStatus  = characterData.baseInfo.GetWorkerStatus();
         if (workerStatus == WorkerStatusEnum.Work)
         {
             if (!isSelect)
             {
                 characterData.baseInfo.SetWorkerStatus(WorkerStatusEnum.Rest);
             }
         }
         else if (workerStatus == WorkerStatusEnum.Rest)
         {
             if (isSelect)
             {
                 characterData.baseInfo.SetWorkerStatus(WorkerStatusEnum.Work);
             }
         }
     }
     gridVertical.RefreshAllCells();
     InitAttendancePrice();
 }
 public void Submit(DialogView dialogView, DialogBean dialogBean)
 {
     if (dialogView as PickForCharacterDialogView)
     {
         PickForCharacterDialogView pickForCharacterDialog = dialogView as PickForCharacterDialogView;
         UserInfiniteTowersBean     infiniteTowersData     = new UserInfiniteTowersBean();
         List <CharacterBean>       listMembers            = pickForCharacterDialog.GetPickCharacter();
         GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData();
         if (dialogBean.dialogPosition == 0)
         {
             //亲自
             infiniteTowersData.isSend = false;
             foreach (CharacterBean itemCharacter in listMembers)
             {
                 infiniteTowersData.listMembers.Add(itemCharacter.baseInfo.characterId);
             }
             gameData.AddInfinteTowersData(infiniteTowersData);
             //跳转场景
             GameCommonInfo.SetInfiniteTowersPrepareData(infiniteTowersData);
             GameScenesHandler.Instance.ChangeScene(ScenesEnum.GameInfiniteTowersScene);
         }
         else if (dialogBean.dialogPosition == 1)
         {
             //派遣
             infiniteTowersData.isSend = true;
             //检测
             foreach (CharacterBean itemCharacter in listMembers)
             {
                 WorkerStatusEnum workerStatusEnum = itemCharacter.baseInfo.GetWorkerStatus();
                 if (workerStatusEnum != WorkerStatusEnum.Rest && workerStatusEnum != WorkerStatusEnum.Work)
                 {
                     ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(1142));
                     return;
                 }
             }
             //派遣
             foreach (CharacterBean itemCharacter in listMembers)
             {
                 infiniteTowersData.listMembers.Add(itemCharacter.baseInfo.characterId);
                 itemCharacter.baseInfo.SetWorkerStatus(WorkerStatusEnum.InfiniteTowers);
             }
             //计算每层攀登几率
             infiniteTowersData.InitSuccessRate(GameItemsHandler.Instance.manager, listMembers);
             gameData.AddInfinteTowersData(infiniteTowersData);
             RefreshUI();
         }
     }
     else
     {
         if (dialogBean.dialogPosition == 1)
         {
             //重置所有爬塔记录
             GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData();
             gameData.CleanInfinteTowers();
             RefreshUI();
         }
     }
 }
Example #6
0
    /// <summary>
    /// 设置状态
    /// </summary>
    /// <param name="workStatus"></param>
    public void SetStatus(WorkerStatusEnum workerStatus, string workerStatusStr)
    {
        if (tvStatus != null)
        {
            switch (workerStatus)
            {
            case WorkerStatusEnum.Work:
                if (GameTimeHandler.Instance.GetDayStatus() == GameTimeHandler.DayEnum.Rest)
                {
                    tvStatus.color  = Color.green;
                    workerStatusStr = TextHandler.Instance.manager.GetTextById(282);
                }
                else if (GameTimeHandler.Instance.GetDayStatus() == GameTimeHandler.DayEnum.Work)
                {
                    tvStatus.color = Color.red;
                }
                break;

            case WorkerStatusEnum.Research:
                tvStatus.color = Color.red;
                break;

            case WorkerStatusEnum.Rest:
                tvStatus.color = Color.green;
                break;

            case WorkerStatusEnum.Vacation:
                tvStatus.color = Color.blue;
                break;

            default:
                tvStatus.color = Color.red;
                break;
            }
            tvStatus.text = workerStatusStr;
        }
    }
Example #7
0
    /// <summary>
    /// 设置数据
    /// </summary>
    /// <param name="data"></param>
    public virtual void SetData(CharacterBean data)
    {
        if (data == null)
        {
            return;
        }

        characterData = data;

        if (characterData.baseInfo != null)
        {
            CharacterBaseBean characterBase = characterData.baseInfo;
            SetName(characterBase.name);

            SetPrice(characterBase.priceS, characterBase.priceM, characterBase.priceL);
            SetWork(
                characterBase.chefInfo.isWorking,
                characterBase.waiterInfo.isWorkingForSend, characterBase.waiterInfo.isWorkingForCleanTable, characterBase.waiterInfo.isWorkingCleanBed,
                characterBase.accountantInfo.isWorking,
                characterBase.accostInfo.isWorkingForSolicit, characterBase.accostInfo.isWorkingForGuide,
                characterBase.beaterInfo.isWorking);
            SetPriority(
                characterBase.chefInfo.priority,
                characterBase.waiterInfo.priorityForSend, characterBase.waiterInfo.priorityForCleanTable, characterBase.waiterInfo.priorityForCleanBed,
                characterBase.accountantInfo.priority,
                characterBase.accostInfo.priorityForSolicit, characterBase.accostInfo.priorityForGuide,
                characterBase.beaterInfo.priority);

            WorkerStatusEnum workerStatus = characterBase.GetWorkerStatus(out string workerStatusStr);
            SetStatus(workerStatus, workerStatusStr);
        }
        if (characterData.attributes != null)
        {
            CharacterAttributesBean characterAttributes = characterData.attributes;
            SetLoyal(characterAttributes.loyal);
            SetAttributes(characterData.attributes, characterData.equips);
        }
        if (data.body != null && data.equips != null)
        {
            characterUICpt.SetCharacterData(data.body, data.equips);
            SetSex(data.body.sex);
        }
        //如果是用户,则不能解雇 也不能送礼
        GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData();

        if (data == gameData.userCharacter || data is CharacterForFamilyBean)
        {
            if (btFire != null)
            {
                btFire.gameObject.SetActive(false);
            }
            if (btGift != null)
            {
                btGift.gameObject.SetActive(false);
            }
        }
        else
        {
            if (btFire != null)
            {
                btFire.gameObject.SetActive(true);
            }
            if (btGift != null)
            {
                btGift.gameObject.SetActive(true);
            }
        }
        SetLevelUp(characterData);


        if (infoCharacterPopup != null)
        {
            infoCharacterPopup.SetData(characterData);
        }
    }
Example #8
0
 /// <summary>
 /// 设置枚举
 /// </summary>
 /// <param name="workerStatus"></param>
 public void SetWorkerStatus(WorkerStatusEnum workerStatus)
 {
     this.workerStatus = (int)workerStatus;
 }
Example #9
0
    public WorkerStatusEnum GetWorkerStatus()
    {
        WorkerStatusEnum workerStatus = (WorkerStatusEnum)this.workerStatus;

        return(workerStatus);
    }
Example #10
0
 public void AttendanceChange(ItemGameAttendanceCpt itemView, WorkerStatusEnum workerStatus, CharacterBean characterBean)
 {
     InitAttendancePrice();
 }
Example #11
0
 public void Start()
 {
     mAILerp       = GetComponent <AILerp>();
     mBehaviorTree = GetComponent <BehaviorTree>();
     Status        = WorkerStatusEnum.IDLE;
 }