Пример #1
0
        public ActionResult Visualize(long noticeId, Guid userId)
        {
            var noticeRepository = new NoticeRepository(_context);
            var notSeenNotices   = noticeRepository.ListNotSeenNotices(userId);

            var userNotice = new UserNotice
            {
                VisualizationDateTime = DateTime.Now,
                NoticeId = noticeId,
                UserId   = userId
            };

            _context.GetList <UserNotice>().Add(userNotice);
            _context.Save();

            var dateTimeHumanizerStrategy = new DefaultDateTimeHumanizeStrategy();
            var nextNotice = noticeRepository.ListNotSeenNotices(userId).Except(notSeenNotices).FirstOrDefault();

            if (nextNotice != null)
            {
                return(Json(NoticeViewModel.FromEntity(nextNotice, dateTimeHumanizerStrategy)));
            }

            return(new EmptyResult());
        }
Пример #2
0
        public ActionResult NoticePanel()
        {
            var repo    = new NoticeRepository(_context);
            var notices = repo.ListNotSeenNotices(_loggedUser.Id);
            var dateTimeHumanizerStrategy = new DefaultDateTimeHumanizeStrategy();

            return(PartialView("_NoticePanel", NoticeViewModel.FromEntityList(notices, dateTimeHumanizerStrategy)));
        }
Пример #3
0
 internal static NoticeViewModel FromEntity(Notice item, DefaultDateTimeHumanizeStrategy humanizer)
 {
     return(new NoticeViewModel
     {
         Id = item.Id,
         DateTimeDescription = humanizer.Humanize(item.DateTime, DateTime.Now, CultureInfo.CurrentUICulture),
         Text = item.Text,
         ClassroomName = item.DeliveryPlan?.Classroom?.Name,
         DirectMessage = item.User != null
     });
 }
Пример #4
0
        public ActionResult ListComments(Guid classId, int page = 1)
        {
            var classRepository = new ClassRepository(_context);
            var classInfo       = classRepository.GetClass(classId, _loggedUser.Id, GetUserRole(_loggedUser));
            var humanizer       = new DefaultDateTimeHumanizeStrategy();
            var comments        = classInfo.Class.Comments
                                  .OrderByDescending(x => x.DateTime)
                                  .Skip((page - 1) * 10)
                                  .Take(10)
                                  .ToList();

            return(Json(CommentViewModel.FromEntityList(comments, humanizer, _loggedUser.Id),
                        JsonRequestBehavior.AllowGet));
        }
Пример #5
0
 public static ClassViewModel FromEntity(Class item, int depth, DefaultDateTimeHumanizeStrategy humanizer)
 {
     return(new ClassViewModel
     {
         Id = item.Id,
         TeacherId = item.Teacher.Id,
         TeacherName = item.Teacher.Name,
         CourseId = item.Course.Id,
         CourseName = item.Course.Name,
         Name = item.Name,
         Content = item.Content,
         ContentType = item.ContentType,
         CreatedAt = item.CreatedAt,
         DeliveryDays = item.DeliveryDays,
         CreatedAtDescription = humanizer != null
             ? humanizer.Humanize(item.CreatedAt, DateTime.Now, CultureInfo.CurrentUICulture)
             : string.Empty,
         Active = item.Active,
         Order = item.Order,
         Files = depth > 3 ? FileViewModel.FromEntityList(item.Files) : new List <FileViewModel>()
     });
 }
Пример #6
0
 internal static IEnumerable <ClassViewModel> FromEntityList(IEnumerable <ClassDeliveryPlan> classes,
                                                             DefaultDateTimeHumanizeStrategy humanizer)
 {
     return(classes.Select(item => FromEntity(item, humanizer)));
 }
Пример #7
0
 internal static IEnumerable <CommentViewModel> FromEntityList(IEnumerable <Comment> comments,
                                                               DefaultDateTimeHumanizeStrategy humanizer, Guid loggedUserId)
 {
     return(comments.Select(item => FromEntity(item, humanizer, loggedUserId)));
 }
Пример #8
0
 public HistoryService(IContext context, DefaultDateTimeHumanizeStrategy humanizer)
 {
     _context   = context;
     _humanizer = humanizer;
 }
Пример #9
0
 internal static IEnumerable <NoticeViewModel> FromEntityList(IEnumerable <Notice> notices,
                                                              DefaultDateTimeHumanizeStrategy humanizer)
 {
     return(notices.Select(item => FromEntity(item, humanizer)));
 }