Ejemplo n.º 1
0
        public async Task AddAsync(Guid groupId, GroupMemberSubscriptionModel model)
        {
            var groupMember = GetNewGroupMember(groupId, model);
            await _groupMemberRepository.AddAsync(groupMember);

            await _memberCacheService.UpdateMemberCacheAsync(groupMember.MemberId);
        }
Ejemplo n.º 2
0
        public void Add(Guid groupId, GroupMemberSubscriptionModel model)
        {
            var groupMember = GetNewGroupMember(groupId, model);

            _groupMemberRepository.Add(groupMember);
            _memberCacheService.UpdateMemberCache(groupMember.MemberId);
        }
Ejemplo n.º 3
0
        public virtual async Task <IHttpActionResult> Subscribe(Guid groupId)
        {
            var currentMember = await _memberService.GetCurrentMemberAsync();

            var group = await _groupService.GetAsync(groupId);

            if (group == null || group.IsHidden)
            {
                return(NotFound());
            }

            if (await _groupMemberService.IsGroupMemberAsync(groupId, currentMember.Id))
            {
                await _groupMemberService.RemoveAsync(groupId, currentMember.Id);
            }
            else
            {
                var subscription = new GroupMemberSubscriptionModel
                {
                    MemberId = currentMember.Id,
                    IsAdmin  = false
                };

                await _groupMemberService.AddAsync(groupId, subscription);
            }

            return(Ok(_groupLinkProvider.GetGroupRoomLink(groupId)));
        }
Ejemplo n.º 4
0
 private GroupMember GetNewGroupMember(Guid groupId, GroupMemberSubscriptionModel subscription)
 {
     return(new GroupMember
     {
         Id = Guid.NewGuid(),
         MemberId = subscription.MemberId,
         GroupId = groupId,
         IsAdmin = subscription.IsAdmin
     });
 }
Ejemplo n.º 5
0
        public virtual RedirectToUmbracoPageResult Subscribe(Guid groupId)
        {
            var currentMember = _memberService.GetCurrentMember();

            if (_groupMemberService.IsGroupMember(groupId, currentMember.Id))
            {
                _groupMemberService.Remove(groupId, currentMember.Id);
            }
            else
            {
                var subscription = new GroupMemberSubscriptionModel
                {
                    MemberId = currentMember.Id,
                    IsAdmin  = false
                };

                _groupMemberService.Add(groupId, subscription);
            }

            return(RedirectToCurrentUmbracoPage(Request.QueryString));
        }
Ejemplo n.º 6
0
        public async Task <Guid> CreateAsync(GroupCreateModel model, GroupMemberSubscriptionModel creator)
        {
            var group = model.Map <GroupModel>();

            group.CreatorId = await _memberService.GetCurrentMemberIdAsync();

            group.GroupTypeId = GroupTypeEnum.Open.ToInt();

            var createdMedias = _mediaHelper.CreateMedia(model, MediaFolderTypeEnum.GroupsContent).ToList();

            group.ImageId = createdMedias.Any()
                ? (int?)createdMedias.First()
                : null;

            var groupId = await _groupService.CreateAsync(group);

            await AddAsync(groupId, creator);

            await _groupMediaService.GroupTitleChangedAsync(groupId, @group.Title);

            return(groupId);
        }