public async Task <ResponseResult> RegisterData(string userName, BFarmer farmer)
        {
            var response = new ResponseResult();

            if (await Query().AnyAsync(m => m.Email.Equals(farmer.Email, StringComparison.OrdinalIgnoreCase)))
            {
                response.Status = Status.Fail;
                response.Data.Add("email", $"email {farmer.Email} already exist");
                return(response);
            }

            var user = await _dbContext.Users.FirstOrDefaultAsync(u => u.UserName.Equals(userName, StringComparison.OrdinalIgnoreCase));

            if (user == null)
            {
                throw new UserReferenceNotFoundException("The user reference does not exist");
            }

            var farmerEntity = farmer.ToDbFarmer();

            farmerEntity.DateCreated = DateTime.Now;
            farmerEntity.DateUpdated = DateTime.Now;
            user.Farmer = farmerEntity;
            _dbContext.Entry(user).State = EntityState.Modified;
            await _dbContext.SaveChangesAsync();

            farmer.Id       = farmerEntity.Id;
            response.Status = Status.Success;
            response.Data.Add("info", "farmer successfully created");
            return(response);
        }
        public async Task <ResponseResult> RegisterFarmer(BUser user, BFarmer farmer)
        {
            var response = new ResponseResult();

            if (await _dbContext.Users.AnyAsync(u => u.UserName == user.UserName) || await Query().AnyAsync(m => m.Email == farmer.Email))
            {
                response.Status = Status.Fail;
                response.Data.Add("username", $"username {user.UserName} already exist");
                return(response);
            }

            var farmerEntity = farmer.ToDbFarmer();

            farmerEntity.DateCreated = DateTime.Now;
            farmerEntity.DateUpdated = DateTime.Now;
            var userEntity = user.ToDbUser();

            userEntity.DateCreated = DateTime.Now;
            userEntity.DateUpdated = DateTime.Now;
            farmerEntity.User      = userEntity;
            await _dbContext.Farmers.AddAsync(farmerEntity);

            await _dbContext.SaveChangesAsync();

            response.Status = Status.Success;
            response.Data.Add("info", "farmer successfully created");
            return(response);
        }