Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        /// <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);
        }