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); }
public Task <GroupOutDto> CreateGroup( [Service] IGroupService service, GroupOutDto group) => service.AddGroup(group);