public ActionResult <GroupConversationReadDto> GetForUser(int id, int userId) { if (_userRepository.Get(userId) == null) { return(StatusCode(StatusCodes.Status400BadRequest, "User doesn't exist.")); } GroupConversation found = _groupConversationRepository.Get(id); if (found == null) { return(StatusCode(StatusCodes.Status400BadRequest, "GroupConversation doesn't exist.")); } List <int> formattedParticipantIds = FormatHelper.CsvToListInt(found.ParticipantIds); if (found.CreatorId != userId && !formattedParticipantIds.Any(e => e == userId)) { return(StatusCode(StatusCodes.Status403Forbidden, "You can't access GroupConversations you're not a part of.")); } GroupConversationReadDto result = _mapper.Map <GroupConversationReadDto>(found); result.ParticipantIdsList = formattedParticipantIds; return(StatusCode(StatusCodes.Status200OK, result)); }
public ActionResult <IEnumerable <GroupConversationReadDto> > Get() { List <GroupConversation> found = _groupConversationRepository.Get().ToList(); List <GroupConversationReadDto> result = new List <GroupConversationReadDto>(); foreach (GroupConversation item in found) { GroupConversationReadDto dto = _mapper.Map <GroupConversationReadDto>(item); dto.ParticipantIdsList = FormatHelper.CsvToListInt(item.ParticipantIds); result.Add(dto); } return(StatusCode(StatusCodes.Status200OK, _mapper.Map <IEnumerable <GroupConversationReadDto> >(result))); }
public ActionResult <GroupConversationReadDto> Get(int id) { GroupConversation found = _groupConversationRepository.Get(id); if (found == null) { return(StatusCode(StatusCodes.Status400BadRequest, "GroupConversation doesn't exist.")); } GroupConversationReadDto result = _mapper.Map <GroupConversationReadDto>(found); List <int> formattedParticipantIds = FormatHelper.CsvToListInt(found.ParticipantIds); result.ParticipantIdsList = formattedParticipantIds; return(StatusCode(StatusCodes.Status200OK, result)); }
public ActionResult <GroupConversationReadDto> Create([FromBody] GroupConversationCreateDto request) { if (_userRepository.Get(request.CreatorId) == null) { return(StatusCode(StatusCodes.Status400BadRequest, "User doesn't exist.")); } if (request.ParticipantIdsList.Any(e => _userRepository.Get(e) == null)) { return(StatusCode(StatusCodes.Status400BadRequest, "One or more Users don't exist.")); } GroupConversation newEntity = _mapper.Map <GroupConversation>(request); newEntity.ParticipantIds = FormatHelper.ListIntToCsv(request.ParticipantIdsList); newEntity = _groupConversationRepository.Create(newEntity); GroupConversationReadDto result = _mapper.Map <GroupConversationReadDto>(newEntity); result.ParticipantIdsList = request.ParticipantIdsList; return(StatusCode(StatusCodes.Status201Created, result)); }