public async Task <IActionResult> Delete([FromRoute] UserDialogAddDTO userDialogAddDTO) { ServiceResponse <bool> serviceResponse = await _dialogService.DeleteUserFromDialogAsync(userDialogAddDTO); if (serviceResponse.Success == false) { return(BadRequest(serviceResponse.Message)); } return(Ok(serviceResponse)); }
public async Task <IActionResult> Post(UserDialogAddDTO userDialogAddDTO) { ServiceResponse <int> serviceResponse = await _dialogService.AddUserToDialogAsync(userDialogAddDTO); if (serviceResponse.Success == false) { return(BadRequest(serviceResponse.Message)); } return(Ok(serviceResponse)); }
public async Task AddUserToDialogAsyncAddsChatEventCallsBotNotifier() { UserDialogAddDTO userDialogAddDTO = new UserDialogAddDTO(); _dialogRepositoryMock.Setup(r => r.GetAsync(It.IsAny <int>())).Returns(Task.FromResult(new Dialog())); ServiceResponse <int> serviceResponse = await _service.AddUserToDialogAsync(userDialogAddDTO); _chatEventRepositoryMock.Verify(r => r.Add(It.IsAny <ChatEvent>()), Times.Once); _botNotifierMock.Verify(r => r.NotifyAsync(), Times.Once); }
public async Task AddUserToDialogAsyncReturnsServiceResponseWithExMessage_IfErrorOccurs() { UserDialogAddDTO userDialogAddDTO = new UserDialogAddDTO(); _dbContextMock.Setup(r => r.SaveChangesAsync(CancellationToken.None)).Callback(() => throw new Exception()); ServiceResponse <int> serviceResponse = await _service.AddUserToDialogAsync(userDialogAddDTO); Assert.False(serviceResponse.Success); Assert.NotNull(serviceResponse.Message); }
public async Task AddUserToDialogAsyncAddsUserCallsSaveChanges_and_ReturnsServiceResponseWithData() { UserDialogAddDTO userDialogAddDTO = new UserDialogAddDTO(); _dialogRepositoryMock.Setup(r => r.GetAsync(It.IsAny <int>())).Returns(Task.FromResult(new Dialog())); ServiceResponse <int> serviceResponse = await _service.AddUserToDialogAsync(userDialogAddDTO); _dialogRepositoryMock.Verify(r => r.AddUserToDialog(It.IsAny <UserDialog>()), Times.Once); _dbContextMock.Verify(r => r.SaveChangesAsync(CancellationToken.None), Times.AtLeast(1)); Assert.IsAssignableFrom <ServiceResponse <int> >(serviceResponse); Assert.True(serviceResponse.Success); }
public async Task AddUserToDialogAsyncReturnsServiceResponseWithExMessage_IfDialogIsPrivate() { UserDialogAddDTO userDialogAddDTO = new UserDialogAddDTO(); _dialogRepositoryMock.Setup(r => r.GetAsync(It.IsAny <int>())) .Returns(Task.FromResult(It.Is <Dialog>(m => m.IsTeteATete == true))); ServiceResponse <int> serviceResponse = await _service.AddUserToDialogAsync(userDialogAddDTO); _dialogRepositoryMock.Verify(r => r.AddUserToDialog(It.IsAny <UserDialog>()), Times.Never); _chatEventRepositoryMock.Verify(r => r.Add(It.IsAny <ChatEvent>()), Times.Never); _botNotifierMock.Verify(r => r.NotifyAsync(), Times.Never); Assert.False(serviceResponse.Success); Assert.NotNull(serviceResponse.Message); }
public async Task <ServiceResponse <bool> > DeleteUserFromDialogAsync(UserDialogAddDTO userDialogDTO) { ServiceResponse <bool> serviceResponse = new ServiceResponse <bool>(); try { UserDialog userDialog = await _dialogRepository.GetUserDialogByFKIdAsync(userDialogDTO.UserId, userDialogDTO.DialogId); if (userDialog == null) { serviceResponse.Success = false; serviceResponse.Message = "Нет такого пользователя"; return(serviceResponse); } var dialog = await _dialogRepository.GetAsync(userDialogDTO.DialogId); if (dialog.IsTeteATete) { serviceResponse.Success = false; serviceResponse.Message = "Только два пользователя. Нельзя удалить из приватной беседы"; return(serviceResponse); } _dialogRepository.DeleteUserFromDialog(userDialog); await _context.SaveChangesAsync(); _chatEventRepository.Add(new ChatEvent() { UserId = userDialogDTO.UserId, DialogId = userDialogDTO.DialogId, TypeOfActionId = (int)ActionTypes.UserDeleted }); await _context.SaveChangesAsync(); _botNotifier.NotifyAsync(); serviceResponse.Data = true; } catch (Exception ex) { serviceResponse.Success = false; serviceResponse.Message = ex.Message; return(serviceResponse); } return(serviceResponse); }
public async Task <ServiceResponse <int> > AddUserToDialogAsync(UserDialogAddDTO userDialogDTO) { ServiceResponse <int> serviceResponse = new ServiceResponse <int>(); try { var dialog = await _dialogRepository.GetAsync(userDialogDTO.DialogId); if (dialog.IsTeteATete) { serviceResponse.Success = false; serviceResponse.Message = "Только два пользователя"; return(serviceResponse); } UserDialog userDialog = new UserDialog() { DialogId = userDialogDTO.DialogId, UserId = userDialogDTO.UserId }; _dialogRepository.AddUserToDialog(userDialog); await _context.SaveChangesAsync(); _chatEventRepository.Add(new ChatEvent() { UserId = userDialogDTO.UserId, DialogId = userDialogDTO.DialogId, TypeOfActionId = (int)ActionTypes.UserAdded }); await _context.SaveChangesAsync(); _botNotifier.NotifyAsync(); serviceResponse.Data = userDialog.UserId; } catch (Exception ex) { serviceResponse.Success = false; serviceResponse.Message = ex.Message + ex.InnerException; return(serviceResponse); } return(serviceResponse); }