public async Task <ActionResult <Seller> > AddSeller(SellerCreateDto sellerDto)
        {
            var user = await _unitOfWork.UserRepository.GetById(sellerDto.UserId);

            if (user == null)
            {
                return(BadRequest("There is no such a user!"));
            }

            var seller = await _unitOfWork.SellerRepository.GetSellerByUserId(sellerDto.UserId);

            if (seller != null)
            {
                return(BadRequest("There is already a seller created from that user!"));
            }

            var sellerNew = new Seller {
                UserId = sellerDto.UserId,
                Name   = sellerDto.Name.ToLower(),
                City   = sellerDto.City
            };

            _unitOfWork.SellerRepository.Add(sellerNew);

            if (await _unitOfWork.Complete())
            {
                return(Ok());
            }
            return(BadRequest("The seller could not be added!"));
        }
        public ActionResult Create(SellerCreateDto sellerCreateDto)
        {
            if (sellerCreateDto == null)
            {
                return(Problem());
            }

            //check if the user has permission
            var user   = HttpContext.User;
            int userId = int.Parse(user.Claims.FirstOrDefault(c => c.Type == "Id").Value);

            if (userId != sellerCreateDto.UserId)
            {
                return(Forbid());
            }

            var seller = _mapper.Map <Seller>(sellerCreateDto);

            _unitOfWork.Sellers.Add(seller);
            _unitOfWork.SaveChanges();
            return(NoContent());
        }