/// <summary> /// /// </summary> /// <param name="guideId"></param> /// <param name="progress"></param> /// <returns></returns> protected bool TryGetProgress(int guideId, out GuideProgressItem progress) { progress = null; if (_guideSet.FindKey(guideId) == null) { return(false); } progress = _userGuide.GuideProgress.Find(m => m.GuideId == guideId); return(progress != null); }
/// <summary> /// 检测是否有引导 /// </summary> /// <param name="progress"></param> /// <returns></returns> public bool Check(out GuideProgressItem progress) { V guideData; progress = null; CheckUserGuide(); int currGuideId = _userGuide == null ? 0 : _userGuide.CurrGuideId; if (currGuideId == 0) { if (TryGetNextId(currGuideId, out guideData)) { currGuideId = guideData.ID; } else { CloseGuide(); return(false); } } GuideProgressItem guideProgress; if (TryGetOrAddProgress(currGuideId, out guideProgress)) { if (guideProgress.Status != GuideStatus.Closed) { progress = guideProgress; return(true); } if (TryGetNextId(currGuideId, out guideData)) { //下发下一个引导 if (TryGetOrAddProgress(guideData.ID, out guideProgress)) { progress = guideProgress; return(true); } } else { CloseGuide(); return(false); } } return(false); }
/// <summary> /// 尝试获取引导进度 /// </summary> /// <param name="guideId"></param> /// <param name="progress"></param> /// <returns></returns> protected bool TryGetOrAddProgress(int guideId, out GuideProgressItem progress) { progress = null; if (_guideSet.FindKey(guideId) == null) { return(false); } progress = _userGuide.GuideProgress.Find(m => m.GuideId == guideId); if (progress == null) { progress = new GuideProgressItem() { GuideId = guideId }; _userGuide.CurrGuideId = guideId; _userGuide.GuideProgress.Add(progress); } return(true); }