public List <Infrastructure.ValueObject.SignInEvent> GetMutipEventData(Infrastructure.DataTransferObject.SignInEventParam param, bool IsAdminRole) { if (!string.IsNullOrEmpty(param.CircleKey)) { //int learningId = cacheService.GetCircle(param.CircleKey).Id; } else { // 目前活動都是在同一個學習圈內發生,直接以第一個點名活動來判斷是否有管理權限 var eventId = param.EventIds.First(); var objEvent = _uow.EntityRepository <ActRollCall>().GetFirst(x => x.EventId == eventId); } // 取得點名活動 var list = signInLogService.GetSignInData(param).ToList(); //有管理權限,統計各狀態數量 if (IsAdminRole) { foreach (var data in list) { data.sOuterKey = Utility.OuterKeyHelper.GuidToPageToken(data.OuterKey); var counts = data.Logs.GroupBy(x => x.Status); var status = Utility.ParaCondition.AttendanceState.Status; foreach (var s in status) { var sum = new Infrastructure.ValueObject.SignStatus { Name = s.Value, Value = s.Key, Count = 0 }; var log = counts.SingleOrDefault(x => x.Key == s.Key); if (log != null) { sum.Count = log.Count(); } data.SignInCount.Add(sum); } } } else { foreach (var signIn in list) { //非管理者,不顯示手動簽到驗證碼 signIn.SignInPwd = ""; signIn.sOuterKey = Utility.OuterKeyHelper.GuidToPageToken(signIn.OuterKey); //是否參與該次活動 if (signIn.Logs.FirstOrDefault().Status == Utility.ParaCondition.AttendanceState.NoNeed) { signIn.IsNoAuth = true; } } } return(list); }
/// <summary> /// 塞Count = 0的狀態列表 /// </summary> /// <returns></returns> private List <Infrastructure.ValueObject.SignStatus> SetEmptyStatus() { var result = new List <Infrastructure.ValueObject.SignStatus>(); var statusKeyArray = System.Enum.GetValues(typeof(Infrastructure.ValueObject.AttendanceStateEnum)).Cast <Infrastructure.ValueObject.AttendanceStateEnum>().ToList(); // 從 enum 取得資料當作 key foreach (var status in statusKeyArray) { var item = new Infrastructure.ValueObject.SignStatus(); var value = Convert.ToInt32(status); item.Count = 0; item.Name = status.ToString(); item.Value = value.ToString(); result.Add(item); } return(result); }