Esempio n. 1
0
        public override ConverterResponseModel MapViewModel(EventEditPageModel node, EventEditPageViewModel viewModel)
        {
            var id = _context.ParseQueryString("id").TryParseGuid();

            if (!id.HasValue)
            {
                return(NotFoundResult());
            }

            var @event = _eventService.Get(id.Value);

            if (@event == null || @event.IsHidden)
            {
                return(NotFoundResult());
            }

            if (@event.GroupId.HasValue)
            {
                var group = _groupService.Get(@event.GroupId.Value);
                if (group != null && group.IsHidden)
                {
                    return(NotFoundResult());
                }
            }

            if (!_eventService.CanEdit(id.Value))
            {
                return(ForbiddenResult());
            }

            viewModel.Details                = GetDetails(@event);
            viewModel.Links                  = _feedLinkService.GetLinks(@event.Id);
            viewModel.CanEditOwner           = _permissionsService.Check(PermissionResourceTypeEnum.Events, PermissionActionEnum.EditOwner);
            viewModel.AllowedMediaExtensions = _eventService.GetMediaSettings().AllowedMediaExtensions;
            viewModel.PinAllowed             = _permissionsService.Check(PermissionResourceTypeEnum.Events, PermissionActionEnum.CanPin);

            if (viewModel.CanEditOwner)
            {
                viewModel.Members = GetUsersWithAccess(new PermissionSettingIdentity(PermissionActionEnum.Create, PermissionResourceTypeEnum.Events));
            }

            var requestGroupId = HttpContext.Current.Request["groupId"];

            if (Guid.TryParse(requestGroupId, out var groupId) && @event.GroupId == groupId)
            {
                viewModel.GroupHeader = _groupHelper.GetHeader(groupId);
            }

            return(OkResult());
        }
        public override ConverterResponseModel MapViewModel(EventDetailsPageModel node,
                                                            EventDetailsPageViewModel viewModel)
        {
            var idStr = HttpUtility.ParseQueryString(_baselineRequestContext.NodeRequestParams.NodeUrl.Query)
                        .TryGetQueryValue <string>("id");

            if (!Guid.TryParse(idStr, out var id))
            {
                return(NotFoundResult());
            }

            var @event = _eventsService.Get(id);

            if (@event == null || @event.IsHidden)
            {
                return(NotFoundResult());
            }

            if (@event.GroupId.HasValue)
            {
                var group = _groupService.Get(@event.GroupId.Value);
                if (group != null && group.IsHidden)
                {
                    return(NotFoundResult());
                }
            }

            if (!_permissionsService.Check(PermissionResourceTypeEnum.Events, PermissionActionEnum.View))
            {
                return(ForbiddenResult());
            }

            var member = _memberService.GetCurrentMember();

            viewModel.Details       = GetDetails(@event);
            viewModel.Tags          = _userTagService.Get(id);
            viewModel.CanEdit       = _eventsService.CanEdit(id);
            viewModel.IsGroupMember = [email protected] || member.GroupIds.Contains(@event.GroupId.Value);

            var groupIdStr = HttpContext.Current.Request["groupId"];

            if (Guid.TryParse(groupIdStr, out var groupId) && @event.GroupId == groupId)
            {
                viewModel.GroupHeader = _groupHelper.GetHeader(groupId);
            }

            return(OkResult());
        }
        protected virtual EventViewModel GetViewModel(EventBase @event, ActivityFeedOptions options)
        {
            var model = @event.Map <EventViewModel>();

            model.CanEdit      = _eventsService.CanEdit(@event);
            model.CanSubscribe = _eventsService.CanSubscribe(@event.Id);
            model.Links        = options.Links;
            model.IsReadOnly   = options.IsReadOnly;

            model.HeaderInfo       = @event.Map <IntranetActivityDetailsHeaderViewModel>();
            model.HeaderInfo.Owner = _intranetMemberService.Get(@event).Map <MemberViewModel>();
            model.HeaderInfo.Links = options.Links;

            return(model);
        }