Task <ICreateProductResponseDTO> IRequestHandler <CreateProductRepository, ICreateProductResponseDTO> .Handle(CreateProductRepository request, CancellationToken cancellationToken)
        {
            try
            {
                var dynamicParameterTask = base.SetParameterAsync("Create-Product", request);

                var result =
                    sqlClientDbProvider
                    ?.DapperBuilder
                    ?.OpenConnection(sqlClientDbProvider.GetConnection())
                    ?.Parameter(async() => await dynamicParameterTask)
                    ?.Command(async(dbConnection, dynamicParameter) =>
                {
                    try
                    {
                        CreateProductResponseDTO createProductResponseDTO = await dbConnection?.QueryFirstOrDefaultAsync <CreateProductResponseDTO>(sql: "uspSetProduct", param: dynamicParameter, commandType: CommandType.StoredProcedure);
                        return(createProductResponseDTO);
                    }
                    catch
                    {
                        return(null);
                    }
                })
                    ?.ResultAsync <ICreateProductResponseDTO>();

                return(result);
            }
            catch
            {
                throw;
            }
        }
        async Task <bool> IRequestHandler <CreateProductCommand, bool> .Handle(CreateProductCommand request, CancellationToken cancellationToken)
        {
            try
            {
                CreateProductResponseDTO CreateProductResponseDTO = (await mediator.Send <ICreateProductResponseDTO>(mapper.Map <CreateProductRepository>(request))) as CreateProductResponseDTO;

                if (CreateProductResponseDTO != null)
                {
                    mediator.Enqueue(new ProductCreatedIntegrationEvent()
                    {
                        Product = CreateProductResponseDTO
                    });
                    return(true);
                }

                return(false);
            }
            catch
            {
                throw;
            }
        }
Example #3
0
        public object Post(CreateProductRequestDTO request)
        {
            CreateProductResponseDTO result = new CreateProductResponseDTO();

            try
            {
                var     client     = new MongoClient(connectionString);
                var     database   = client.GetDatabase("products");
                var     collection = database.GetCollection <Product>("products");
                Product p          = new Product()
                {
                    name = request.Name, category = request.Category, description = request.Description, price = request.Price
                };
                collection.InsertOne(p);
                result._Id = p._id;
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
            return(result);
        }