public async Task <ValidationResultModel <ProductResponse> > Save(CreateProductRequest model)
        {
            var result = new ValidationResultModel <ProductResponse>();

            if (!result.Succeeded)
            {
                return(result);
            }

            Products product = null;

            if (!string.IsNullOrWhiteSpace(model.Id))
            {
                product = (await _productRepository.GetProducts(new GetProductRequest {
                    Id = model.Id
                })).Single();
            }

            var productDbModel = model.Map <CreateProductRequest, Products>(product);

            productDbModel = await _productRepository.Save(productDbModel);

            //Save Revision with RabbitMQ
            await _rabbitMqService.RabbitMqSender(product, RabbitMqConstants.ProductRevisionQueue);

            result.Model = productDbModel.Map <Products, ProductResponse>();

            return(result);
        }