public ResultViewModel Post([FromBody] EditorProductViewModel model, [FromServices] ICategoryRepository categoryRepository)
        {
            model.Validate();

            if (model.Invalid)
            {
                return(new ResultViewModel()
                {
                    Success = false,
                    Message = "Não foi possível cadastrar o produto",
                    Data = model
                });
            }

            if (categoryRepository.NotExists(model.CategoryId))
            {
                model.AddNotification("CategoryId", "Categoria não encontrada");

                return(new ResultViewModel()
                {
                    Success = false,
                    Message = "Não foi possível cadastrar o produto",
                    Data = model
                });
            }

            var product = new Product()
            {
                Title       = model.Title,
                Description = model.Description,
                Price       = model.Price,
                Quantity    = model.Quantity,
                Image       = model.Image,
                CategoryId  = model.CategoryId,

                CreateDate     = DateTime.Now,
                LastUpdateDate = DateTime.Now
            };

            _productRepository.Create(product);

            return(new ResultViewModel()
            {
                Success = true,
                Message = "Produto criado com sucesso.",
                Data = product
            });
        }