public async Task <IActionResult> Post([FromBody] ProductDtoModel model)
        {
            //if (!(await _authorizationService.AuthorizeAsync(this.User, new string[] { }, Authorization.Policies.AssignAllowedRolesPolicy)).Succeeded)
            //    return new ChallengeResult();

            var product = _mapper.Map <Product>(model);
            await _unitOfWork.Products.PostAsync(product);

            product.DateCreated  = DateTime.UtcNow;
            product.DateModified = DateTime.UtcNow;
            _unitOfWork.SaveChanges();
            return(Ok(_mapper.Map <ProductViewModel>(product)));
        }
        public async Task <IActionResult> Put(int id, [FromBody] ProductDtoModel model)
        {
            //if (!(await _authorizationService.AuthorizeAsync(this.User, new string[] { }, Authorization.Policies.AssignAllowedRolesPolicy)).Succeeded)
            //    return new ChallengeResult();
            var product = await _unitOfWork.Products.GetByIdAsync(id);

            if (product == null)
            {
                return(NotFound(id));
            }

            product = _mapper.Map(model, product);
            _unitOfWork.Products.Put(product);
            product.DateModified = DateTime.UtcNow;
            _unitOfWork.SaveChanges();
            return(Ok(_mapper.Map <ProductViewModel>(product)));
        }