public override ModulesListViewModel GetModulesListViewModel()
        {
            var isAdmin = IsAdmin(Utility.ParaCondition.SignInFunction.Admin);
            var param   = new SignInEventParam()
            {
                MemberId = _parameters.MemberId, CircleKey = _parameters.CircleKey, NotDeleted = true, Pages = _parameters.Pages, Rows = _parameters.Rows
            };

            _list.SignInList = signInService.GetMutipEventData(param, isAdmin);
            // _list.SignInList= _service.GetList(param);
            _list.IsAdminRole = isAdmin;
            _list.ModuleKey   = _parameters.ModuleKey;
            _list.LearningId  = _circle.Id;
            _list.CircleKey   = _parameters.CircleKey;
            _list.CircleName  = _circle.Name;

            return(_list);
        }
Beispiel #2
0
        /// <summary>
        /// 載入點名活動
        /// </summary>
        /// <param name="token"></param>
        /// <param name="outerKey"></param>
        public void SignIn_LoadMultipleDetails(Guid token, string outerKey)
        {
            var tokenInfo = CheckToken(token.ToString());

            if (tokenInfo == null)
            {
                return;
            }
            try
            {
                // 是否為合法使用者
                var auth  = new ServerCheckItem();
                var check = AuthCheck(token, ref auth);
                if (check)
                {
                    var authService = new AuthService();
                    // 將outerKey轉回event guid
                    var tokenArray = new List <Guid>();
                    outerKey.Split(',').ToList().ForEach(item => tokenArray.Add(Service.Utility.OuterKeyHelper.PageTokenToGuid(item)));
                    var activityInfo     = signInService.GetSignInInfomation(tokenArray.FirstOrDefault());
                    var checkisAdminRole = authService.CheckFunctionAuth(activityInfo.LearningId, SignInFunction.Admin, tokenInfo.MemberId);
                    // 取出點名活動、簽到記錄
                    var param = new SignInEventParam()
                    {
                        EventIds = tokenArray, MemberId = auth.MemberId
                    };
                    var obj = signInService.GetMutipEventData(param, checkisAdminRole);

                    Clients.Caller.renderMultipleDetails(obj);
                }
                else
                {
                    Clients.Caller.onError("SignIn_LoadMultipleDetails", "身分驗證失敗,請重新登入!token:[" + token + "]");
                }
            }
            catch (Exception ex)
            {
                var msg = string.Format("{0}\n\n{1}", ex.Message, ex.StackTrace);

                Clients.Caller.onError("SignIn_LoadMultipleDetails", "載入點名細節發生意外: " + msg);
            }
        }
Beispiel #3
0
        /// <summary>
        /// 取得點名資訊
        /// </summary>
        /// <param name="eventIds">活動 eventId</param>
        /// <param name="memberId">查詢指定人員(id)簽到紀錄,若傳入null表示查詢所有人</param>
        /// <returns></returns>
        public IEnumerable <Infrastructure.ValueObject.SignInEvent> GetSignInData(SignInEventParam param)
        {
            var isSce = Convert.ToBoolean(ConfigurationManager.AppSettings["isSce"].ToString());
            var list  = _uow.ActivitysRepo.GetSignInData(param, isSce);

            #region //整理回傳資訊

            var signIn = from l in list
                         group l by new
            {
                l.Id,
                l.ToRoomId,
                l.ModuleKey,
                l.OuterKey,
                l.CreatorAccount,
                l.CreatorPhoto,
                l.CreatorName,
                l.Created_Utc,
                l.Updated_Utc,
                l.Deleted_Utc,
                l.ActivityDate,
                l.StartDate,
                l.Duration,
                l.IsNewest,
                l.ActivityId,
                l.Name,
                l.SignInKey,
                l.SignInPwd,
                l.Publish_Utc
            }
            into g
                select new Infrastructure.ValueObject.SignInEvent
            {
                Id             = g.Key.Id,
                ToRoomId       = g.Key.ToRoomId,
                ModuleKey      = g.Key.ModuleKey,
                Text           = "",    //訊息專用欄位,點名預塞空字串
                OuterKey       = g.Key.OuterKey,
                CreatorAccount = g.Key.CreatorAccount,
                CreatorName    = g.Key.CreatorName,
                Created_Utc    = g.Key.Created_Utc,
                CreatorPhoto   = g.Key.CreatorPhoto,
                Updated_Utc    = g.Key.Updated_Utc,
                Deleted_Utc    = g.Key.Deleted_Utc,
                ActivityDate   = g.Key.ActivityDate,
                StartDate      = g.Key.StartDate,
                Duration       = g.Key.Duration,
                IsNewest       = g.Key.IsNewest,
                ActivityId     = g.Key.ActivityId,
                Name           = g.Key.Name,
                SignInPwd      = g.Key.SignInPwd,
                SignInKey      = g.Key.SignInKey,
                Publish_Utc    = g.Key.Publish_Utc,
                Logs           = (from k in list
                                  orderby k.Sort    // UI預設是ican5排序
                                  where k.OuterKey == g.Key.OuterKey
                                  select new Infrastructure.ValueObject.SignInLog
                {
                    LeaveEventId = k.LeaveEventId,
                    Sort = k.Sort,
                    StuId = k.StuId,
                    StudId = k.StudId,
                    StudName = k.StudName,
                    StudPhoto = k.StudPhoto,
                    Status = k.Status,
                    LeaveStatus = k.LeaveStatus,
                    Time = Convert.ToDateTime(k.Time).ToLocalTime(),
                    CreatorAccount = k.LogCreator,
                    UpdateDate_Utc = k.LogUpdateDate
                }).ToArray()
            };
            #endregion

            //分頁
            if (param.Pages.HasValue && param.Rows.HasValue)
            {
                int skipRows = (param.Pages.Value - 1) * param.Rows.Value;
                signIn = signIn.OrderByDescending(t => t.Publish_Utc).Skip(skipRows).Take(param.Rows.Value);
            }
            return(signIn);
        }