public async Task <IActionResult> Update(MongoUser user)
        {
            try
            {
                var guid   = Guid.Parse(User.Claims.SingleOrDefault(t => t.Type == "guid").Value);
                var target = await _unitOfWork.MongoUsers.GetByIdAsync(guid);

                target.Birthday    = user.Birthday;
                target.LastName    = user.LastName;
                target.Email       = user.Email;
                target.Name        = user.Name;
                target.PhoneMain   = user.PhoneMain;
                target.PhoneSecond = user.PhoneSecond;
                target.State       = user.State;
                target.City        = user.City;
                var updatedUser = await _unitOfWork.MongoUsers.UpdateAsync(target);

                if (updatedUser != null)
                {
                    return(Ok(updatedUser));
                }
                return(BadRequest("User info wasn't updated"));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
        public async Task <IActionResult> UpdatePrivacy(MongoUser user)
        {
            try
            {
                var guid   = Guid.Parse(User.Claims.SingleOrDefault(t => t.Type == "guid").Value);
                var target = await _unitOfWork.MongoUsers.GetByIdAsync(guid);

                target.HideProfile = user.HideProfile;
                if (!string.IsNullOrEmpty(user.Password))
                {
                    target.Password = _passwordHasher.HashPassword(target, user.Password);
                }
                var updatedUser = await _unitOfWork.MongoUsers.UpdateAsync(target);

                if (updatedUser != null)
                {
                    return(Ok(updatedUser));
                }
                return(BadRequest("User info wasn't updated"));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
        public async Task <IActionResult> Insert(MongoUser user)
        {
            try
            {
                var updatedUser = await _unitOfWork.MongoUsers.InsertAsync(user);

                if (updatedUser != null)
                {
                    return(Ok(updatedUser));
                }
                return(BadRequest("User info wasn't updated"));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }