public override bool IsActual(IIntranetActivity activity) { var news = (NewsBase)activity; var isActual = base.IsActual(news) && news.PublishDate <= DateTime.UtcNow && !IsShowIfUnpublish(news); return(isActual); }
public override Guid Create(IIntranetActivity activity) { return(base.Create(activity, activityId => { var subscribeSettings = Map(activity); subscribeSettings.ActivityId = activityId; _activitySubscribeSettingService.Create(subscribeSettings); })); }
protected virtual void AssignLinkPreview(Guid newActivityId, IIntranetActivity activity) { if (activity is IHasLinkPreview linkPreview) { if (linkPreview.LinkPreviewId.HasValue) { _activityLinkPreviewService.AddLinkPreview(newActivityId, linkPreview.LinkPreviewId.Value); } } }
protected virtual async Task AssignLinkPreviewAsync(Guid newActivityId, IIntranetActivity activity) { if (activity is IHasLinkPreview linkPreview) { if (linkPreview.LinkPreviewId.HasValue) { await _activityLinkPreviewService.AddLinkPreviewAsync(newActivityId, linkPreview.LinkPreviewId.Value); } } }
protected virtual bool CanPerform(IIntranetActivity activity, PermissionActionEnum action, PermissionActionEnum administrationAction) { var currentMember = _intranetMemberService.GetCurrentMember(); var ownerId = ((IHaveOwner)activity).OwnerId; var isOwner = ownerId == currentMember.Id; var act = isOwner ? action : administrationAction; var result = _permissionsService.Check(currentMember, new PermissionSettingIdentity(act, PermissionActivityType)); return(result); }
public ActivityReminderDataModel GetActivityReminderDataModel(IIntranetActivity activity, Enum activityType) { return(new ActivityReminderDataModel { Url = _linkService.GetLinks(activity.Id).Details, Title = activity.Title, NotificationType = activityType, ActivityType = activity.Type, IsPinned = activity.IsPinned, IsPinActual = activity.IsPinActual }); }
public ActivityNotifierDataModel GetActivityNotifierDataModel(IIntranetActivity activity, Enum notificationType, Guid notifierId) { return(new ActivityNotifierDataModel { NotificationType = notificationType, ActivityType = activity.Type, Title = GetNotifierDataTitle(activity).TrimByWordEnd(MaxTitleLength), Url = _linkService.GetLinks(activity.Id).Details, NotifierId = notifierId, IsPinned = activity.IsPinned, IsPinActual = activity.IsPinActual }); }
public CommentNotifierDataModel GetCommentNotifierDataModel(IIntranetActivity activity, CommentModel comment, Enum notificationType, Guid notifierId) { return(new CommentNotifierDataModel { CommentId = comment.Id, NotificationType = notificationType, NotifierId = notifierId, Title = GetNotifierDataTitle(activity).TrimByWordEnd(MaxTitleLength), Url = _commentLinkHelper.GetDetailsUrlWithComment(activity.Id, comment.Id), IsPinned = activity.IsPinned, IsPinActual = activity.IsPinActual }); }
public virtual bool IsPinActual(IIntranetActivity activity) { if (!activity.IsPinned) { return(false); } if (activity.EndPinDate.HasValue) { return(activity.EndPinDate.Value.ToUniversalTime() > DateTime.UtcNow); } return(true); }
public LikesNotifierDataModel GetLikesNotifierDataModel(IIntranetActivity activity, Enum notificationType, Guid notifierId) { return(new LikesNotifierDataModel { Title = GetNotifierDataTitle(activity).TrimByWordEnd(MaxTitleLength), NotificationType = notificationType, ActivityType = activity.Type, NotifierId = notifierId, CreatedDate = DateTime.UtcNow, Url = _linkService.GetLinks(activity.Id).Details, IsPinned = activity.IsPinned, IsPinActual = activity.IsPinActual }); }
protected virtual void Save(IIntranetActivity activity, Action <IIntranetActivity> afterSaveAction) { var entity = _activityRepository.Get(activity.Id); entity.JsonData = activity.ToJson(); _activityLocationService.Set(activity.Id, activity.Location); _activityRepository.Update(entity); _intranetMediaService.Update(activity.Id, activity.MediaIds.JoinToString()); AssignLinkPreview(activity); afterSaveAction?.Invoke(activity); UpdateActivityCache(activity.Id); }
protected virtual async Task AssignLinkPreviewAsync(IIntranetActivity activity) { if (activity is IHasLinkPreview linkPreview) { if (!linkPreview.LinkPreviewId.HasValue) { await _activityLinkPreviewService.RemovePreviewRelationsAsync(activity.Id); } if (linkPreview.LinkPreviewId.HasValue) { await _activityLinkPreviewService.UpdateLinkPreviewAsync(activity.Id, linkPreview.LinkPreviewId.Value); } } }
protected virtual void AssignLinkPreview(IIntranetActivity activity) { if (activity is IHasLinkPreview linkPreview) { if (!linkPreview.LinkPreviewId.HasValue) { _activityLinkPreviewService.RemovePreviewRelations(activity.Id); } if (linkPreview.LinkPreviewId.HasValue) { _activityLinkPreviewService.UpdateLinkPreview(activity.Id, linkPreview.LinkPreviewId.Value); } } }
protected virtual async Task SaveAsync(IIntranetActivity activity, Action <IIntranetActivity> afterSaveAction) { var entity = await _activityRepository.GetAsync(activity.Id); entity.JsonData = activity.ToJson(); await _activityLocationService.SetAsync(activity.Id, activity.Location); await _activityRepository.UpdateAsync(entity); await _intranetMediaService.UpdateAsync(activity.Id, activity.MediaIds.JoinToString()); await AssignLinkPreviewAsync(activity); afterSaveAction?.Invoke(activity); await UpdateActivityCacheAsync(activity.Id); }
private bool CanPerform(IIntranetActivity cached, IntranetActivityActionEnum action) { var currentUser = _intranetUserService.GetCurrentUser(); var isWebmaster = _permissionsService.IsUserWebmaster(currentUser); if (isWebmaster) { return(true); } var ownerId = Get(cached.Id).OwnerId; var isOwner = ownerId == currentUser.Id; var isUserHasPermissions = _permissionsService.IsRoleHasPermissions(currentUser.Role, Type, action); return(isOwner && isUserHasPermissions); }
protected virtual Guid Create(IIntranetActivity activity, Action <Guid> afterCreateAction) { var newActivity = new IntranetActivityEntity { Type = Type.ToInt(), JsonData = activity.ToJson() }; _activityRepository.Create(newActivity); var newActivityId = newActivity.Id; _activityLocationService.Set(newActivityId, activity.Location); _intranetMediaService.Create(newActivityId, activity.MediaIds.JoinToString()); AssignLinkPreview(newActivityId, activity); afterCreateAction?.Invoke(newActivityId); UpdateActivityCache(newActivityId); return(newActivityId); }
public override bool CanEdit(IIntranetActivity activity) { var currentUser = _intranetUserService.GetCurrentUser(); var isWebmaster = _permissionsService.IsUserWebmaster(currentUser); if (isWebmaster) { return(true); } var ownerId = Get(activity.Id).OwnerId; var isOwner = ownerId == currentUser.Id; var isUserHasPermissions = _permissionsService.IsRoleHasPermissions(currentUser.Role, Type, IntranetActivityActionEnum.Edit); return(isOwner && isUserHasPermissions); }
internal INotifierDataValue GetNotifierDataValue(OldNotifierData oldData, IIntranetActivity activity, Enum notificationType) { INotifierDataValue result; switch (notificationType) { case NotificationTypeEnum.ActivityLikeAdded: { result = _notifierDataHelper.GetLikesNotifierDataModel(activity, notificationType, oldData.NotifierId); break; } case NotificationTypeEnum.CommentAdded: case NotificationTypeEnum.CommentReplied: case NotificationTypeEnum.CommentEdited: case NotificationTypeEnum.CommentLikeAdded: { var commentId = ParseCommentId(oldData.Url); var comment = _commentsService.Get(commentId); result = _notifierDataHelper.GetCommentNotifierDataModel(activity, comment, notificationType, oldData.NotifierId); break; } case NotificationTypeEnum.BeforeStart: { result = _notifierDataHelper.GetActivityReminderDataModel(activity, notificationType); break; } case NotificationTypeEnum.EventHided: case NotificationTypeEnum.EventUpdated: { result = _notifierDataHelper.GetActivityNotifierDataModel(activity, notificationType, oldData.NotifierId); break; } default: result = null; break; } return(result); }
public ActivityReminderDataModel GetActivityReminderDataModel(IIntranetActivity activity, Enum activityType) { var model = new ActivityReminderDataModel { Url = _linkService.GetLinks(activity.Id).Details, Title = activity.Title, NotificationType = activityType, ActivityType = activity.Type, IsPinned = activity.IsPinned, IsPinActual = activity.IsPinActual }; if (activity.Type is IntranetActivityTypeEnum.Events) { var @event = (Event)activity; model.StartDate = @event.StartDate; } return(model); }
public override bool IsActual(IIntranetActivity activity) { var news = (NewsBase)activity; var isActual = base.IsActual(news); if (!isActual) { return(false); } if (IsExpired(news)) { news.IsHidden = true; news.UnpublishDate = null; Save(news); return(false); } return(news.PublishDate <= DateTime.UtcNow || IsOwner(news)); }
public virtual bool CanDelete(IIntranetActivity activity) => false;
public virtual bool CanEdit(IIntranetActivity activity) => CanPerform(activity, PermissionActionEnum.Edit, PermissionActionEnum.EditOther);
public virtual bool CanDelete(IIntranetActivity activity) => CanPerform(activity, PermissionActionEnum.Delete, PermissionActionEnum.DeleteOther);
public virtual bool IsActual(IIntranetActivity activity) { var pagePromotion = activity as T; return(pagePromotion != null && !pagePromotion.IsHidden && pagePromotion.PublishDate <= DateTime.UtcNow); }
public virtual bool CanEdit(IIntranetActivity activity) => false;
private static string GetNotifierDataTitle(IIntranetActivity activity) => activity.Type is IntranetActivityTypeEnum.Bulletins ? activity.Description.StripHtml() : activity.Title;
public bool IsPinActual(IIntranetActivity activity) => false;
public async Task <ActivityReminderDataModel> GetActivityReminderDataModelAsync(IIntranetActivity activity, Enum notificationType) { var model = new ActivityReminderDataModel { Url = (await _linkService.GetLinksAsync(activity.Id))?.Details, Title = activity.Title, NotificationType = notificationType, ActivityType = activity.Type, IsPinned = activity.IsPinned, IsPinActual = activity.IsPinActual }; if (activity.Type is IntranetActivityTypeEnum.Events) { var @event = (Event)activity; model.StartDate = @event.StartDate; } return(model); }
public virtual void Save(IIntranetActivity activity) { UpdateActivityCache(activity.Id); }
public virtual Guid Create(IIntranetActivity activity) => activity.Id;