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); }
/// <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); } }
/// <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); }