public IActionResult Delete(int id)
        {
            UserEntity userDb = _userRepository.GetSingle(id);

            if (userDb == null)
            {
                return(new NotFoundResult());
            }
            else
            {
                IEnumerable <Model.Entities.Fraction> existingFraction = _fractionRepository.FindBy(uh => uh.User.Id == id);
                if (existingFraction != null)
                {
                    throw new Exception("Cannot delete user because it has fractions tied to it!");
                }
                IEnumerable <Recycling.Model.Entities.UserHub> userHubs = _userHubRepository.FindBy(a => a.UserId == id);

                foreach (var userHub in userHubs)
                {
                    _userHubRepository.Delete(userHub);
                }

                _userRepository.Delete(userDb);

                _userRepository.Commit();

                return(new NoContentResult());
            }
        }
        public IActionResult Get(int id)
        {
            UserEntity user = _userRepository.GetSingle(u => u.Id == id, u => u.TrashDeliveries);

            if (user != null)
            {
                User userDto = Mapper.Map <UserEntity, User>(user);
                return(new OkObjectResult(userDto));
            }
            else
            {
                return(NotFound());
            }
        }
        public IActionResult Create([FromBody] UserEntity user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            UserEntity newUser = new UserEntity {
                FirstName = user.FirstName, LastName = user.LastName
            };

            _userRepository.Add(newUser);
            _userRepository.Commit();

            user = Mapper.Map <UserEntity, UserEntity>(newUser);

            CreatedAtRouteResult result = CreatedAtRoute("GetUser", new { controller = "Users", id = user.Id }, user);

            return(result);
        }
        public IActionResult Patch(int id, [FromBody] User user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            UserEntity userDb = _userRepository.GetSingle(id);

            if (userDb == null)
            {
                return(NotFound());
            }
            else
            {
                userDb.FirstName = user.FirstName;
                userDb.LastName  = user.LastName;
                _userRepository.Commit();
            }

            var userDto = Mapper.Map <UserEntity, User>(userDb);

            return(new OkObjectResult(userDto));
        }