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); } }
/// <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); }
/// <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); } }
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(); } } }
/// <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; } }
/// <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); } }
/// <summary> /// 设置枚举 /// </summary> /// <param name="workerStatus"></param> public void SetWorkerStatus(WorkerStatusEnum workerStatus) { this.workerStatus = (int)workerStatus; }
public WorkerStatusEnum GetWorkerStatus() { WorkerStatusEnum workerStatus = (WorkerStatusEnum)this.workerStatus; return(workerStatus); }
public void AttendanceChange(ItemGameAttendanceCpt itemView, WorkerStatusEnum workerStatus, CharacterBean characterBean) { InitAttendancePrice(); }
public void Start() { mAILerp = GetComponent <AILerp>(); mBehaviorTree = GetComponent <BehaviorTree>(); Status = WorkerStatusEnum.IDLE; }