private SubscriptionType GetSubscriptionTypeById(int id)
        {
            SubscriptionType getSubscriptionType = TipezeNyumbaUnitOfWork.Repository <SubscriptionType>()
                                                   .Get(u => u.subscriptionID == id);

            return(getSubscriptionType);
        }
Example #2
0
        private LocationsInDistrict GetLocationInDistrictByName(int districtId, string location)
        {
            LocationsInDistrict getDistrictLocation = TipezeNyumbaUnitOfWork.Repository <LocationsInDistrict>()
                                                      .Get(u => u.districtID == districtId && u.location.ToLower() == location.ToLower());

            return(getDistrictLocation);
        }
Example #3
0
        public List <HouseModel> GetAllAvailableHousesByDateRange(string district, DateTime startDate, DateTime endDate, string location = null)
        {
            List <House>      getHouses;
            List <HouseModel> houseList = new List <HouseModel>();

            if (location == null)
            {
                getHouses = TipezeNyumbaUnitOfWork.Repository <House>()
                            .GetAll(u => u.District.name.ToLower() == district.ToLower() && u.dateHouseWillBeAvailable >= startDate.Date && u.dateHouseWillBeAvailable <= endDate.Date && u.HouseState.HouseStatus.ToLower() == "available").ToList();
            }
            else
            {
                getHouses = TipezeNyumbaUnitOfWork.Repository <House>()
                            .GetAll(u => u.District.name.ToLower() == district.ToLower() && u.dateHouseWillBeAvailable >= startDate && u.dateHouseWillBeAvailable <= endDate && u.LocationsInDistrict.location.ToLower() == location.ToLower() && u.HouseState.HouseStatus.ToLower() == "available").ToList();
            }
            if (getHouses.Count == 0)
            {
                return(null);
            }
            foreach (var eachHouse in getHouses)
            {
                string             paymentModeInWords = eachHouse.PaymentMode.number + " " + eachHouse.PaymentMode.DurationType.type;
                HouseContactDetail houseContactDetail = TipezeNyumbaUnitOfWork.Repository <HouseContactDetail>()
                                                        .Get(u => u.houseID == eachHouse.houseID);
                _houseDisplay.SetHouseDetails(houseContactDetail, houseList, eachHouse, paymentModeInWords);
            }
            return(houseList);
        }
        private SubscriptionType GetSubscriptionTypeByString(string subscriptionType)
        {
            SubscriptionType getSubscriptionType = TipezeNyumbaUnitOfWork.Repository <SubscriptionType>()
                                                   .Get(u => u.type == subscriptionType);

            return(getSubscriptionType);
        }
Example #5
0
        private HouseState GetHouseStatesByName(string houseState)
        {
            HouseState getHouseState = TipezeNyumbaUnitOfWork.Repository <HouseState>()
                                       .Get(u => u.HouseStatus.ToLower() == houseState.ToLower());

            return(getHouseState);
        }
Example #6
0
        private FenceType GetFenceTypeByName(string fenceType)
        {
            FenceType getFenceType = TipezeNyumbaUnitOfWork.Repository <FenceType>()
                                     .Get(u => u.typeOfFence.ToLower() == fenceType.ToLower());

            return(getFenceType);
        }
Example #7
0
        private District GetDistrictByName(string district)
        {
            District getDistrict = TipezeNyumbaUnitOfWork.Repository <District>()
                                   .Get(u => u.name.ToLower() == district.ToLower());

            return(getDistrict);
        }
        public HouseModel GetHouseFavouriteById(int houseId, int userId)
        {
            HouseFavourite getFavouriteHouse = TipezeNyumbaUnitOfWork.Repository <HouseFavourite>().Get(u => u.houseID == houseId && u.userID == userId && u.status == _fieldStateManagement.GetActivatedState().fieldStateID);

            if (getFavouriteHouse == null)
            {
                return(null);
            }
            string     paymentModeInWords = getFavouriteHouse.House.PaymentMode.number + " " + getFavouriteHouse.House.PaymentMode.DurationType.type;
            HouseModel houseToDisplay     = new HouseModel()
            {
                houseID = getFavouriteHouse.houseID,
                districtHouseIsLocated = getFavouriteHouse.House.District.name,
                bedrooms                 = getFavouriteHouse.House.bedrooms,
                masterBedroomEnsuite     = getFavouriteHouse.House.masterBedroomEnsuite,
                selfContained            = getFavouriteHouse.House.selfContained,
                numberOfGarages          = getFavouriteHouse.House.numberOfGarages,
                fenceType                = getFavouriteHouse.House.FenceType1.typeOfFence,
                dateHouseWillBeAvailable = getFavouriteHouse.House.dateHouseWillBeAvailable.ToLongDateString(),
                price         = getFavouriteHouse.House.price,
                modeOfPayment = paymentModeInWords,
                dateUploaded  = getFavouriteHouse.House.dateUploaded.ToLongDateString(),
                description   = getFavouriteHouse.House.description,
                houseState    = getFavouriteHouse.House.HouseState.HouseStatus
            };

            return(houseToDisplay);
        }
        private ClientState GetClientStateByName(string clientState)
        {
            ClientState getClientState = TipezeNyumbaUnitOfWork.Repository <ClientState>()
                                         .Get(u => u.clientStatus.ToLower() == clientState.ToLower());

            return(getClientState);
        }
        public List <UserOutputModel> GetBlockedUsers()
        {
            string      blockedStateToLower = "Blocked";
            List <User> allUsers            = TipezeNyumbaUnitOfWork.Repository <User>().GetAll(u => u.FieldState.state.ToLower() == blockedStateToLower.ToLower())
                                              .ToList();

            return(_usersToDisplay.FormatUsersToDisplay(allUsers));
        }
Example #11
0
        public bool UpdateHouseDetails(int id, HouseModel houseDetails)
        {
            District checkDistrictHouseIsLocated = GetDistrictByName(houseDetails.districtHouseIsLocated);

            if (checkDistrictHouseIsLocated == null)
            {
                return(false);
            }
            LocationsInDistrict checkLocationInDistrict = GetLocationInDistrictByName(checkDistrictHouseIsLocated.districtID, houseDetails.districtHouseIsLocated);

            if (checkLocationInDistrict == null)
            {
                return(false);
            }
            HouseState checkHouseState = GetHouseStatesByName(houseDetails.houseState);

            if (checkHouseState == null)
            {
                return(false);
            }
            FenceType checkFenceType = GetFenceTypeByName(houseDetails.fenceType);

            if (checkFenceType == null)
            {
                return(false);
            }

            House houseToUpdate = TipezeNyumbaUnitOfWork.Repository <House>().Get(u => u.houseID == id);

            if (houseToUpdate == null)
            {
                return(false);
            }
            houseToUpdate.districtHouseIsLocated = checkDistrictHouseIsLocated.districtID;
            houseToUpdate.locationWithInDistrict = checkLocationInDistrict.districtLocationID;
            houseToUpdate.bedrooms                 = houseDetails.bedrooms;
            houseToUpdate.masterBedroomEnsuite     = houseDetails.masterBedroomEnsuite;
            houseToUpdate.selfContained            = houseDetails.selfContained;
            houseToUpdate.numberOfGarages          = houseDetails.numberOfGarages;
            houseToUpdate.fenceType                = checkFenceType.fenceTypeID;
            houseToUpdate.dateHouseWillBeAvailable = Convert.ToDateTime(houseDetails.dateHouseWillBeAvailable);
            houseToUpdate.price             = houseDetails.price;
            houseToUpdate.modeOfPayment     = Convert.ToInt32(houseDetails.modeOfPayment);
            houseToUpdate.dateUploaded      = Convert.ToDateTime(houseDetails.dateUploaded);
            houseToUpdate.description       = houseDetails.description;
            houseToUpdate.currentHouseState = checkHouseState.houseStateID;

            houseToUpdate.HouseContactDetail.phoneNumber1          = houseDetails.phoneNumber1;
            houseToUpdate.HouseContactDetail.phoneNumber2          = houseDetails.phoneNumber2;
            houseToUpdate.HouseContactDetail.whatsAppContactNumber = houseDetails.whatsAppContactNumber;
            houseToUpdate.HouseContactDetail.email = houseDetails.email;

            TipezeNyumbaUnitOfWork.Repository <House>().Attach(houseToUpdate);
            TipezeNyumbaUnitOfWork.SaveChanges();
            return(true);
        }
        public List <UserOutputModel> GetAllUsers()
        {
            List <User> allUsers = TipezeNyumbaUnitOfWork.Repository <User>().GetAll().ToList();

            if (allUsers.Count == 0)
            {
                return(null);
            }
            return(_usersToDisplay.FormatUsersToDisplay(allUsers));
        }
        public List <UserOutputModel> GetDeactivatedUsers()
        {
            List <User> deactivatedUsers = TipezeNyumbaUnitOfWork.Repository <User>()
                                           .GetAll(u => u.FieldState.state == "Deactivated").ToList();

            if (deactivatedUsers.Count == 0)
            {
                return(null);
            }
            return(_usersToDisplay.FormatUsersToDisplay(deactivatedUsers));
        }
        public List <UserOutputModel> GetUsers(string systemRole)
        {
            List <User> allUsers = TipezeNyumbaUnitOfWork.Repository <User>().GetAll(u => u.UserRole.role == systemRole)
                                   .ToList();

            if (allUsers.Count == 0)
            {
                return(null);
            }
            return(_usersToDisplay.FormatUsersToDisplay(allUsers));
        }
Example #15
0
        public bool RemoveHouse(int id)
        {
            House houseToRemove = TipezeNyumbaUnitOfWork.Repository <House>().Get(u => u.houseID == id);

            if (houseToRemove == null)
            {
                return(false);
            }
            TipezeNyumbaUnitOfWork.Repository <House>().Delete(houseToRemove);
            TipezeNyumbaUnitOfWork.SaveChanges();
            return(true);
        }
        public bool RemoveUser(int id)
        {
            User userToRemove = TipezeNyumbaUnitOfWork.Repository <User>().Get(u => u.userID == id);

            if (userToRemove == null)
            {
                return(false);
            }
            TipezeNyumbaUnitOfWork.Repository <User>().Delete(userToRemove);
            TipezeNyumbaUnitOfWork.SaveChanges();
            return(true);
        }
        public bool DeactivateObject(int id)
        {
            User userAccountToActivate = TipezeNyumbaUnitOfWork.Repository <User>().Get(u => u.userID == id);

            if (userAccountToActivate == null)
            {
                return(false);
            }
            userAccountToActivate.FieldState.state = "Deactivated";
            TipezeNyumbaUnitOfWork.Repository <User>().Attach(userAccountToActivate);
            TipezeNyumbaUnitOfWork.SaveChanges();
            return(true);
        }
        public bool VerifyCredentials(string username, string password)
        {
            User getUser = TipezeNyumbaUnitOfWork.Repository <User>()
                           .Get(u => u.phoneNumber == username || u.email == username);

            if (getUser == null)
            {
                return(false);
            }
            bool verifyIfPasswordIsCorrect = _hashPassword.IsPasswordCorrect(getUser, password);

            return(verifyIfPasswordIsCorrect);
        }
Example #19
0
        public List <HouseModel> GetAllHouses()
        {
            List <House>      getHouses = TipezeNyumbaUnitOfWork.Repository <House>().GetAll().ToList();
            List <HouseModel> houseList = new List <HouseModel>();

            foreach (var eachHouse in getHouses)
            {
                string             paymentModeInWords = eachHouse.PaymentMode.number + " " + eachHouse.PaymentMode.DurationType.type;
                HouseContactDetail houseContactDetail = TipezeNyumbaUnitOfWork.Repository <HouseContactDetail>()
                                                        .Get(u => u.houseID == eachHouse.houseID);
                _houseDisplay.SetHouseDetails(houseContactDetail, houseList, eachHouse, paymentModeInWords);
            }
            return(houseList);
        }
        public List <HouseModel> GetHousesAsFavourites(int userId)
        {
            List <HouseFavourite> getHouses = TipezeNyumbaUnitOfWork.Repository <HouseFavourite>().GetAll(u => u.userID == userId && u.status == _fieldStateManagement.GetActivatedState().fieldStateID).ToList();
            List <HouseModel>     houseList = new List <HouseModel>();

            foreach (var eachHouse in getHouses)
            {
                string             paymentModeInWords = eachHouse.House.PaymentMode.number + " " + eachHouse.House.PaymentMode.DurationType.type;
                HouseContactDetail houseContactDetail = TipezeNyumbaUnitOfWork.Repository <HouseContactDetail>()
                                                        .Get(u => u.houseID == eachHouse.houseID);
                _houseDisplay.SetHouseDetails(houseContactDetail, houseList, eachHouse.House, paymentModeInWords);
            }
            return(houseList);
        }
        //public bool MakeHouseFavourite(int houseId, int userId)
        //{
        //    HouseFavourite getHouseFavourite = TipezeNyumbaUnitOfWork.Repository<HouseFavourite>()
        //        .Get(u => u.houseID == houseId && u.userID == userId);
        //    if (getHouseFavourite == null)
        //    {
        //        return false;
        //    }
        //    if (getHouseFavourite.FieldState.state.ToLower() == "Activated".ToLower())
        //    {
        //        return true;
        //    }
        //    getHouseFavourite.status = _fieldStateManagement.GetActivatedState().fieldStateID;
        //    TipezeNyumbaUnitOfWork.Repository<HouseFavourite>().Attach(getHouseFavourite);
        //    TipezeNyumbaUnitOfWork.SaveChanges();
        //    return true;
        //}
        public bool RemoveHouseFromFavourites(int houseId, int userId)
        {
            HouseFavourite getHouseFavourite = TipezeNyumbaUnitOfWork.Repository <HouseFavourite>()
                                               .Get(u => u.houseID == houseId && u.userID == userId);

            if (getHouseFavourite == null)
            {
                return(false);
            }
            getHouseFavourite.status = _fieldStateManagement.GetDeactivatedState().fieldStateID;
            TipezeNyumbaUnitOfWork.Repository <HouseFavourite>().Attach(getHouseFavourite);
            TipezeNyumbaUnitOfWork.SaveChanges();
            return(true);
        }
Example #22
0
        public List <HouseModel> GetAllHousesByDistrict(string district)
        {
            List <House> getHouses = TipezeNyumbaUnitOfWork.Repository <House>()
                                     .GetAll(u => u.District.name.ToLower() == district.ToLower() && u.HouseState.HouseStatus.ToLower() == "available").ToList();
            List <HouseModel> houseList = new List <HouseModel>();

            foreach (var eachHouse in getHouses)
            {
                string             paymentModeInWords = eachHouse.PaymentMode.number + " " + eachHouse.PaymentMode.DurationType.type;
                HouseContactDetail houseContactDetail = TipezeNyumbaUnitOfWork.Repository <HouseContactDetail>()
                                                        .Get(u => u.houseID == eachHouse.houseID);
                _houseDisplay.SetHouseDetails(houseContactDetail, houseList, eachHouse, paymentModeInWords);
            }
            return(houseList);
        }
        public List <UserOutputModel> GetInterestedHouseClients(int houseId)
        {
            List <InterestedClient> getInterestedClients = TipezeNyumbaUnitOfWork.Repository <InterestedClient>()
                                                           .GetAll(u => u.houseID == houseId).ToList();

            if (getInterestedClients.Count == 0)
            {
                return(null);
            }
            List <User> interestedClients = new List <User>();

            foreach (InterestedClient eachClient in getInterestedClients)
            {
                User tempUser = eachClient.User;
                interestedClients.Add(tempUser);
            }
            return(_usersToDisplay.FormatUsersToDisplay(interestedClients));
        }
        public bool UpdateUserDetails(int id, UserInputModel userDetails)
        {
            User userToUpdate = TipezeNyumbaUnitOfWork.Repository <User>().Get(u => u.userID == id);

            if (userToUpdate == null)
            {
                return(false);
            }
            userToUpdate.firstName            = userDetails.firstName;
            userToUpdate.lastName             = userDetails.lastName;
            userToUpdate.email                = userDetails.email;
            userToUpdate.userType             = GetUserRoleByString(userDetails.userRoleForUser).userRoleID;
            userToUpdate.userSubscriptionType = GetSubscriptionTypeByString(userDetails.userSubscriptionType).subscriptionID;
            userToUpdate.phoneNumber          = userDetails.phoneNumber;
            TipezeNyumbaUnitOfWork.Repository <User>().Attach(userToUpdate);
            TipezeNyumbaUnitOfWork.SaveChanges();
            return(true);
        }
Example #25
0
        public List <HouseModel> GetHousesByPriceRange(string district, decimal minimumPrice, decimal maximumPrice, string location = null)
        {
            List <House> getHouses = string.Equals(location, null, StringComparison.Ordinal) ? TipezeNyumbaUnitOfWork.Repository <House>().GetAll(u => u.District.name.ToLower() == district.ToLower() && u.price >= minimumPrice && u.price <= maximumPrice && u.HouseState.HouseStatus.ToLower() == "available").ToList() : TipezeNyumbaUnitOfWork.Repository <House>().GetAll(u => u.District.name.ToLower() == district.ToLower() && u.price >= minimumPrice && u.price <= maximumPrice && u.LocationsInDistrict.location.ToLower() == location.ToLower() && u.HouseState.HouseStatus.ToLower() == "available").ToList();

            if (getHouses.Count == 0)
            {
                return(null);
            }
            List <HouseModel> houseList = new List <HouseModel>();

            foreach (var eachHouse in getHouses)
            {
                string             paymentModeInWords = eachHouse.PaymentMode.number + " " + eachHouse.PaymentMode.DurationType.type;
                HouseContactDetail houseContactDetail = TipezeNyumbaUnitOfWork.Repository <HouseContactDetail>()
                                                        .Get(u => u.houseID == eachHouse.houseID);
                _houseDisplay.SetHouseDetails(houseContactDetail, houseList, eachHouse, paymentModeInWords);
            }
            return(houseList);
        }
 public bool AddHouseToFavourites(int houseId, int userId)
 {
     try
     {
         HouseFavourite checkHouseFavouriteExist = TipezeNyumbaUnitOfWork.Repository <HouseFavourite>()
                                                   .Get(u => u.houseID == houseId && u.userID == userId);
         int   activatedState    = _fieldStateManagement.GetActivatedState().fieldStateID;
         House checkIfHouseExist = TipezeNyumbaUnitOfWork.Repository <House>().Get(u => u.houseID == houseId);
         if (checkIfHouseExist == null)
         {
             return(false);
         }
         if (checkHouseFavouriteExist != null)
         {
             if (checkHouseFavouriteExist.status == activatedState)
             {
                 return(true);
             }
             checkHouseFavouriteExist.status = activatedState;
             TipezeNyumbaUnitOfWork.Repository <HouseFavourite>().Attach(checkHouseFavouriteExist);
             TipezeNyumbaUnitOfWork.SaveChanges();
             return(true);
         }
         HouseFavourite newHouseFavourite = new HouseFavourite()
         {
             userID  = userId,
             houseID = houseId,
             status  = _fieldStateManagement.GetActivatedState().fieldStateID
         };
         TipezeNyumbaUnitOfWork.Repository <HouseFavourite>().Add(newHouseFavourite);
         TipezeNyumbaUnitOfWork.SaveChanges();
         return(true);
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         throw;
     }
 }
Example #27
0
        public bool UpdateHouseStatus(int houseId, string houseStatus)
        {
            HouseState checkHouseState = GetHouseStatesByName(houseStatus);

            if (checkHouseState == null)
            {
                return(false);
            }
            try
            {
                House getHouseToUpdate = TipezeNyumbaUnitOfWork.Repository <House>().Get(u => u.houseID == houseId);
                getHouseToUpdate.currentHouseState = checkHouseState.houseStateID;
                TipezeNyumbaUnitOfWork.Repository <House>().Attach(getHouseToUpdate);
                TipezeNyumbaUnitOfWork.SaveChanges();
                return(true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
        public UserInputModel GetUser(int userId)
        {
            User userToGet = TipezeNyumbaUnitOfWork.Repository <User>().Get(u => u.userID == userId);

            if (userToGet == null)
            {
                return(null);
            }
            UserInputModel userModel = new UserInputModel()
            {
                userID               = userToGet.userID,
                firstName            = userToGet.firstName,
                lastName             = userToGet.lastName,
                email                = userToGet.email,
                phoneNumber          = userToGet.phoneNumber,
                dateTimeCreated      = userToGet.dateTimeCreated,
                userRoleForUser      = userToGet.UserRole.role,
                userSubscriptionType = userToGet.SubscriptionType.type,
                accountState         = userToGet.FieldState.state
            };

            return(userModel);
        }
        public bool AddInterestedClient(int houseId, int userId, string clientState)
        {
            int activatedState = _fieldStateManagement.GetActivatedState().fieldStateID;
            InterestedClient checkIfClientAlreadyExist = TipezeNyumbaUnitOfWork.Repository <InterestedClient>()
                                                         .Get(u => u.houseID == houseId && u.userID == userId);

            if (checkIfClientAlreadyExist != null)
            {
                if (checkIfClientAlreadyExist.status == activatedState)
                {
                    return(true);
                }
                checkIfClientAlreadyExist.status = activatedState;
                TipezeNyumbaUnitOfWork.Repository <InterestedClient>().Attach(checkIfClientAlreadyExist);
                TipezeNyumbaUnitOfWork.SaveChanges();
                return(true);
            }
            ClientState checkClientState = GetClientStateByName(clientState);

            if (checkClientState == null)
            {
                return(false);
            }
            InterestedClient newInterestedClient = new InterestedClient()
            {
                userID  = userId,
                houseID = houseId,
                interestedClientState = checkClientState.stateID,
                status      = _fieldStateManagement.GetActivatedState().fieldStateID,
                dateCreated = DateTime.Now
            };

            TipezeNyumbaUnitOfWork.Repository <InterestedClient>().Add(newInterestedClient);
            TipezeNyumbaUnitOfWork.SaveChanges();
            return(true);
        }
        public void AddUser(UserInputModel newUser)
        {
            SubscriptionType checkUserSubscription = GetSubscriptionTypeByString(newUser.userSubscriptionType);
            FieldState       checkFieldState       = _fieldStateManagement.GetActivatedState();
            UserRole         checkUserRole         = GetUserRoleByString(newUser.userRoleForUser);

            HashPassword hashPasswordObject = new HashPassword();
            User         userDetails        = new User()
            {
                firstName            = newUser.firstName,
                lastName             = newUser.lastName,
                email                = newUser.email,
                dateTimeCreated      = DateTime.Now,
                phoneNumber          = newUser.phoneNumber,
                accountState         = checkFieldState.fieldStateID,
                userSubscriptionType = checkUserSubscription.subscriptionID,
                userType             = checkUserRole.userRoleID,
                password             = hashPasswordObject.CreateHashedPassword(newUser.password),
                passwordSalt         = hashPasswordObject.Salt
            };

            TipezeNyumbaUnitOfWork.Repository <User>().Add(userDetails);
            TipezeNyumbaUnitOfWork.SaveChanges();
        }