Exemple #1
0
 public Task <List <ListOutDto> > GetLists(
     [Parent] GroupOutDto group,
     [Service] ListQuery listService,
     bool getArchieved = false)
 => getArchieved?
 listService.GetArchievedLists(group.Id) :
     listService.GetLists(group.Id);
 public static Group AsDbModel(this GroupOutDto group)
 => new Group
 {
     Id          = group.Id,
     Name        = group.Name,
     Description = group.Description,
     CreatedBy   = group.CreatedBy.AsDbModel(),
     UsersJson   = group.Users.Select(AsDbModel).ToJson(),
     ListIdsList = group.ListIds.JoinNullable()
 };
        private void Validate(GroupOutDto group)
        {
            if (group.Name.IsEmpty())
            {
                throw new ArgumentException($"{nameof(GroupOutDto.Name)} cannot be null or empty");
            }

            if (group.Users.IsEmpty())
            {
                throw new ArgumentException($"{nameof(GroupOutDto.Users)} must have one or more user");
            }
        }
        private Task NotifyUsers(GroupOutDto createdGroup)
        {
            var usersToNotify = createdGroup.Users.Where(user => user.Id != createdGroup.CreatedBy.Id);

            if (usersToNotify.IsEmpty())
            {
                return(Task.CompletedTask);
            }

            // TODO: Ths should call notification service
            return(Task.CompletedTask);
        }
        public async Task <GroupOutDto> AddGroup(GroupOutDto group)
        {
            Validate(group);

            group.Id = Guid.NewGuid().ToString();
            var createdByUser = await userRepository.Get(group.CreatedBy.Id);

            if (createdByUser == null)
            {
                throw new UserForbiddenException(group.CreatedBy.Id, group.CreatedBy.Username);
            }

            var createdGroup = (await groupRepository.Upsert(group.AsDbModel())).AsOutModel();

            createdByUser.AddGroupId(createdGroup.Id);
            await userRepository.Upsert(createdByUser);

            return(createdGroup);
        }
Exemple #6
0
 public Task <GroupOutDto> CreateGroup(
     [Service] IGroupService service,
     GroupOutDto group)
 => service.AddGroup(group);