public async Task <CommandResponseDto> UpdateProductOption(UpdateProductOptionCommand command)
        {
            try
            {
                await _mediator.Send(command);
            }
            catch (Exception ex)
            {
                return(CommandResponseDto.Fail(GetErrorMessage(ex)));
            }

            return(CommandResponseDto.Success);
        }
Example #2
0
        private async Task HandleConnection(
            CancellationTokenSource cancellationTokenSource,
            StreamReader reader,
            StreamWriter writer)
        {
            var json = await reader.ReadJsonAsync(cancellationTokenSource.Token);

            var loginDto = json.FromJson <LoginDto>();

            var commandResponseDto = new CommandResponseDto {
                ErrorCode = (int)CommandErrorCode.Success
            };

            if (!TryAuthorize(loginDto))
            {
                commandResponseDto.ErrorCode = (int)CommandErrorCode.WrongLogin;
                await writer.WriteLineAsync(commandResponseDto.ToJson()).ConfigureAwait(false);

                return;
            }

            await writer.WriteLineAsync(commandResponseDto.ToJson()).ConfigureAwait(false);

            var connection = _connectionFactory.Create(loginDto);

            lock (ConnectionsLock)
            {
                _connections.Add(connection);
            }
            try
            {
                await connection.RunAsync(reader, writer, cancellationTokenSource).ConfigureAwait(false);
            }
            finally
            {
                lock (ConnectionsLock)
                {
                    _connections.Remove(connection);
                }

                Log.Info($"{loginDto.Login} disconnected");
            }
        }
        private async Task HandleIncomingDataAsync(StreamReader reader, CancellationToken cancellationToken)
        {
            while (!cancellationToken.IsCancellationRequested)
            {
                try
                {
                    var command = await _adminCommandFactory.CreateAsync(reader, cancellationToken).ConfigureAwait(false);

                    if (command == null)
                    {
                        if (reader.EndOfStream)
                        {
                            return;
                        }

                        continue;
                    }

                    if (!(command is StartPushingStateAdminCommand))
                    {
                        continue;
                    }

                    command.Validate(_game);

                    var commandResponseDto = command.Execute(_game);
                    Send(commandResponseDto);

                    _pushDataState = PushDataState.First;
                }
                catch (CommandException exception)
                {
                    var commandResponseDto = new CommandResponseDto
                    {
                        ErrorCode = (int)exception.ErrorCode,
                        Message   = exception.Message
                    };
                    Send(commandResponseDto);
                }
            }
        }
        public async Task CreateProductOptionShouldReturnErrorWhenFail()
        {
            // Arrange
            _productOptionService.Setup(x => x.CreateProductOption(It.IsAny <CreateProductOptionCommand>())).ReturnsAsync(CommandResponseDto.Fail("Error message!"));

            var controller = new ProductOptionsController(_productOptionService.Object);

            // Act
            var response = await controller.CreateOption(Guid.NewGuid(), new ProductOptionRequestDto());

            // Assert
            Assert.IsInstanceOfType(response, typeof(BadRequestErrorMessageResult));
            Assert.AreEqual(((BadRequestErrorMessageResult)response).Message, "Error message!");
        }
Example #5
0
        public async Task UpdateProductShouldReturnErrorWhenFail()
        {
            // Arrange
            _productInterface.Setup(x => x.UpdateProduct(It.IsAny <UpdateProductCommand>())).ReturnsAsync(CommandResponseDto.Fail("Error update message!"));

            var controller = new ProductsController(_productInterface.Object);

            // Act
            var response = await controller.Update(Guid.NewGuid(), new Business.Dtos.Product.Request.ProductRequestDto());

            // Assert
            Assert.IsInstanceOfType(response, typeof(BadRequestErrorMessageResult));
            Assert.AreEqual(((BadRequestErrorMessageResult)response).Message, "Error update message!");
        }