public IViewComponentResult Invoke()
        {
            var eventCookie = new EventCookieModel();
            var eventInfo   = new EventHeaderInfo();

            var cookie = HttpContext.Request.Cookies.Where(q => q.Key.Contains(Constants.EventCookie)).LastOrDefault();

            if (!string.IsNullOrEmpty(cookie.Value))
            {
                eventCookie = JsonConvert.DeserializeObject <EventCookieModel>(cookie.Value);
            }
            else
            {
                var eventCode       = HttpContext.User.FindFirstValue(ClaimTypes.Name);
                var eventLoadedInfo = _unitOfWork.MstEventRepository.LoadEventInfoByCode(eventCode);
                HttpContext.Response.Cookies.Append(Constants.EventCookie, eventLoadedInfo.Message, new CookieOptions {
                    Expires = DateTimeOffset.Now.AddMonths(1)
                });

                eventCookie = JsonConvert.DeserializeObject <EventCookieModel>(eventLoadedInfo.Message);
            }

            eventInfo.EventName = eventCookie.Name;
            eventInfo.Eventdate = eventCookie.EventTime;

            return(View("_LayoutHeaderPartial", eventInfo));
        }
예제 #2
0
        public AjaxResponseModel LoadEventInfoByCode(string eventCode)
        {
            eventCode = eventCode.Replace(Constants.SurveyUserName, "").Replace(Constants.SurveyUserName.ToLower(), "");
            var entity = _context.MstEvents.Where(q => q.ApplicationUser.UserName == eventCode).FirstOrDefault();

            if (entity == null)
            {
                return(new AjaxResponseModel(false, null));
            }
            EventCookieModel eventVM = new EventCookieModel
            {
                Cd        = entity.Cd,
                EventCode = entity.Code,
                StartDate = entity.StartDate.ToString(),
                EndDate   = entity.EndDate.ToString(),
                EventTime = string.Format("初日 {0}({1})|最終日 {2}({3})", entity.StartDate?.ToString(Constants.ExactDateFormat)
                                          , Commons.GetDayOfWeekJP(entity.StartDate)
                                          , entity.EndDate?.ToString(Constants.ExactDateFormat)
                                          , Commons.GetDayOfWeekJP(entity.EndDate)),
                ApplicationUserId = entity.ApplicationUserId,
                Name = entity.Name
            };
            string result = Newtonsoft.Json.JsonConvert.SerializeObject(eventVM);

            return(new AjaxResponseModel(true, result.ToString()));
        }