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));
        }
        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);
        }
Example #5
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 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);
        }
        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 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);
        }
        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);
        }
Example #10
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);
        }
Example #11
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 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);
        }
        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));
        }
Example #14
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 #16
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 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();
        }
        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);
        }
Example #20
0
 public bool BookHouseAppointment(BookHouseModel newBookHouseModel)
 {
     try
     {
         HouseBooking newHouseBooking = new HouseBooking()
         {
             houseID       = newBookHouseModel.houseId,
             userID        = newBookHouseModel.userId,
             dateOfMeeting = Convert.ToDateTime(newBookHouseModel.dateOfMeeting),
             timeFrom      = Convert.ToDateTime(newBookHouseModel.bookingStartTime).TimeOfDay,
             timeTo        = Convert.ToDateTime(newBookHouseModel.bookingEndTime).TimeOfDay,
             status        = fieldStateManagement.GetActivatedState().fieldStateID,
             dateCreated   = DateTime.Now
         };
         TipezeNyumbaUnitOfWork.Repository <HouseBooking>().Add(newHouseBooking);
         TipezeNyumbaUnitOfWork.SaveChanges();
         return(true);
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         throw;
     }
 }
        public FieldState GetAcccountStateById(int stateID)
        {
            FieldState getFieldState = TipezeNyumbaUnitOfWork.Repository <FieldState>().Get(u => u.fieldStateID == stateID);

            return(getFieldState);
        }
        public FieldState GetDeactivatedState()
        {
            FieldState getFieldState = TipezeNyumbaUnitOfWork.Repository <FieldState>().Get(u => u.state == "Deactivated");

            return(getFieldState);
        }
        public FieldState GetAcccountStateByString(string stateInWords)
        {
            FieldState getFieldState = TipezeNyumbaUnitOfWork.Repository <FieldState>().Get(u => u.state.ToLower() == stateInWords.ToLower());

            return(getFieldState);
        }
        private UserRole GetUserRoleById(int id)
        {
            UserRole getUserRole = TipezeNyumbaUnitOfWork.Repository <UserRole>().Get(u => u.userRoleID == id);

            return(getUserRole);
        }
        private UserRole GetUserRoleByString(string userRoleInWords)
        {
            UserRole getUserRole = TipezeNyumbaUnitOfWork.Repository <UserRole>().Get(u => u.role == userRoleInWords);

            return(getUserRole);
        }
Example #26
0
        public List <DisplayBookHouseModel> GetBookedHouses()
        {
            List <HouseBooking>          getHouses = TipezeNyumbaUnitOfWork.Repository <HouseBooking>().GetAll().ToList();
            List <DisplayBookHouseModel> houseList = new List <DisplayBookHouseModel>();

            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);
                if (houseContactDetail == null)
                {
                    houseList.Add(new DisplayBookHouseModel()
                    {
                        houseID                  = eachHouse.houseID,
                        bedrooms                 = eachHouse.House.bedrooms,
                        masterBedroomEnsuite     = eachHouse.House.masterBedroomEnsuite,
                        selfContained            = eachHouse.House.selfContained,
                        numberOfGarages          = eachHouse.House.numberOfGarages,
                        dateHouseWillBeAvailable = eachHouse.House.dateHouseWillBeAvailable.ToLongDateString(),
                        price                  = eachHouse.House.price,
                        dateUploaded           = eachHouse.House.dateUploaded.ToLongDateString(),
                        description            = eachHouse.House.description,
                        modeOfPayment          = paymentModeInWords,
                        houseState             = eachHouse.House.HouseState.HouseStatus,
                        fenceType              = eachHouse.House.FenceType1.typeOfFence,
                        districtHouseIsLocated = eachHouse.House.District.name,
                        locationInDistrict     = eachHouse.House.LocationsInDistrict.location,
                        bookedBy               = eachHouse.User.firstName + " " + eachHouse.User.lastName,
                        bookedByPhoneNumber    = eachHouse.User.phoneNumber,
                        bookingStartTime       = eachHouse.timeFrom.ToString(),
                        bookingEndTime         = eachHouse.timeTo.ToString()
                    });
                }
                else
                {
                    houseList.Add(new DisplayBookHouseModel()
                    {
                        houseID                  = eachHouse.houseID,
                        bedrooms                 = eachHouse.House.bedrooms,
                        masterBedroomEnsuite     = eachHouse.House.masterBedroomEnsuite,
                        selfContained            = eachHouse.House.selfContained,
                        numberOfGarages          = eachHouse.House.numberOfGarages,
                        dateHouseWillBeAvailable = eachHouse.House.dateHouseWillBeAvailable.ToLongDateString(),
                        price                  = eachHouse.House.price,
                        dateUploaded           = eachHouse.House.dateUploaded.ToLongDateString(),
                        description            = eachHouse.House.description,
                        modeOfPayment          = paymentModeInWords,
                        houseState             = eachHouse.House.HouseState.HouseStatus,
                        fenceType              = eachHouse.House.FenceType1.typeOfFence,
                        phoneNumber1           = eachHouse.House.HouseContactDetail.phoneNumber1,
                        phoneNumber2           = eachHouse.House.HouseContactDetail.phoneNumber2,
                        whatsAppContactNumber  = eachHouse.House.HouseContactDetail.whatsAppContactNumber,
                        email                  = eachHouse.House.HouseContactDetail.email,
                        districtHouseIsLocated = eachHouse.House.District.name,
                        locationInDistrict     = eachHouse.House.LocationsInDistrict.location,
                        bookedBy               = eachHouse.User.firstName + " " + eachHouse.User.lastName,
                        bookedByPhoneNumber    = eachHouse.User.phoneNumber,
                        bookingStartTime       = eachHouse.timeFrom.ToString(),
                        bookingEndTime         = eachHouse.timeTo.ToString()
                    });
                }
            }
            return(houseList);
        }
Example #27
0
        public bool AddHouse(HouseModel newHouseModel)
        {
            District checkDistrictHouseIsLocated = GetDistrictByName(newHouseModel.districtHouseIsLocated);

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

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

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

            if (checkFenceType == null)
            {
                return(false);
            }
            int activatedState = _fieldStateManagement.GetActivatedState().fieldStateID;

            House newHouse = new House()
            {
                districtHouseIsLocated = checkDistrictHouseIsLocated.districtID,
                locationWithInDistrict = checkLocationInDistrict.districtLocationID,
                bedrooms                 = newHouseModel.bedrooms,
                masterBedroomEnsuite     = newHouseModel.masterBedroomEnsuite,
                selfContained            = newHouseModel.selfContained,
                numberOfGarages          = newHouseModel.numberOfGarages,
                fenceType                = checkFenceType.fenceTypeID,
                dateHouseWillBeAvailable = Convert.ToDateTime(newHouseModel.dateHouseWillBeAvailable),
                price             = newHouseModel.price,
                modeOfPayment     = Convert.ToInt32(newHouseModel.modeOfPayment),
                dateUploaded      = DateTime.Now,
                description       = newHouseModel.description,
                currentHouseState = checkHouseState.houseStateID,
                state             = activatedState
            };

            HouseContactDetail houseContactDetail = new HouseContactDetail()
            {
                houseID               = newHouse.houseID,
                phoneNumber1          = newHouseModel.phoneNumber1,
                phoneNumber2          = newHouseModel.phoneNumber2,
                whatsAppContactNumber = newHouseModel.whatsAppContactNumber,
                email = newHouseModel.email,
                state = activatedState
            };


            HouseOwner setHouseOwner = new HouseOwner()
            {
                userID  = newHouseModel.userId,
                houseID = newHouseModel.houseID,
                status  = activatedState
            };

            TipezeNyumbaUnitOfWork.Repository <House>().Add(newHouse);
            TipezeNyumbaUnitOfWork.Repository <HouseContactDetail>().Add(houseContactDetail);
            TipezeNyumbaUnitOfWork.Repository <HouseOwner>().Add(setHouseOwner);
            TipezeNyumbaUnitOfWork.SaveChanges();
            return(true);
        }