Пример #1
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);
        }
        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);
        }
Пример #3
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);
        }
Пример #4
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 void SetHouseDetails(HouseContactDetail houseContactDetail, List <HouseModel> houseList, House eachHouse,
                             string paymentModeInWords)
 {
     if (houseContactDetail == null)
     {
         houseList.Add(new HouseModel()
         {
             houseID                  = eachHouse.houseID,
             bedrooms                 = eachHouse.bedrooms,
             masterBedroomEnsuite     = eachHouse.masterBedroomEnsuite,
             selfContained            = eachHouse.selfContained,
             numberOfGarages          = eachHouse.numberOfGarages,
             dateHouseWillBeAvailable = eachHouse.dateHouseWillBeAvailable.ToLongDateString(),
             price                  = eachHouse.price,
             dateUploaded           = eachHouse.dateUploaded.ToLongDateString(),
             description            = eachHouse.description,
             modeOfPayment          = paymentModeInWords,
             houseState             = eachHouse.HouseState.HouseStatus,
             fenceType              = eachHouse.FenceType1.typeOfFence,
             districtHouseIsLocated = eachHouse.District.name,
             locationInDistrict     = eachHouse.LocationsInDistrict.location
         });
     }
     else
     {
         houseList.Add(new HouseModel()
         {
             houseID                  = eachHouse.houseID,
             bedrooms                 = eachHouse.bedrooms,
             masterBedroomEnsuite     = eachHouse.masterBedroomEnsuite,
             selfContained            = eachHouse.selfContained,
             numberOfGarages          = eachHouse.numberOfGarages,
             dateHouseWillBeAvailable = eachHouse.dateHouseWillBeAvailable.ToLongDateString(),
             price                  = eachHouse.price,
             dateUploaded           = eachHouse.dateUploaded.ToLongDateString(),
             description            = eachHouse.description,
             modeOfPayment          = paymentModeInWords,
             houseState             = eachHouse.HouseState.HouseStatus,
             fenceType              = eachHouse.FenceType1.typeOfFence,
             phoneNumber1           = eachHouse.HouseContactDetail.phoneNumber1,
             phoneNumber2           = eachHouse.HouseContactDetail.phoneNumber2,
             whatsAppContactNumber  = eachHouse.HouseContactDetail.whatsAppContactNumber,
             email                  = eachHouse.HouseContactDetail.email,
             districtHouseIsLocated = eachHouse.District.name,
             locationInDistrict     = eachHouse.LocationsInDistrict.location
         });
     }
 }
Пример #6
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 string AddAHouse(HouseDetails newHouse)
        {
            try
            {
                //House details to put in house entity
                House houseToAddInDB = new House();
                houseToAddInDB.districtHouseIsLocated = Convert.ToInt32(newHouse.district);
                houseToAddInDB.bedrooms                 = newHouse.bedrooms;
                houseToAddInDB.masterBedroomEnsuite     = newHouse.masterBedroomEnsuite;
                houseToAddInDB.selfContained            = newHouse.selfContained;
                houseToAddInDB.numberOfGarages          = newHouse.numberOfGarages;
                houseToAddInDB.fenceType                = Convert.ToInt32(newHouse.fenceType);
                houseToAddInDB.dateHouseWillBeAvailable = newHouse.dateHouseWillBeAvailable;
                houseToAddInDB.price             = newHouse.price;
                houseToAddInDB.modeOfPayment     = Convert.ToInt32(newHouse.modeOfPayment);
                houseToAddInDB.dateUploaded      = DateTime.Now;
                houseToAddInDB.description       = newHouse.description;
                houseToAddInDB.currentHouseState = Convert.ToInt32(newHouse.houseState);
                houseToAddInDB.state             = getFieldStateID("Activated");


                //House contact details to add for new house
                HouseContactDetail newHouseDetail = new HouseContactDetail();
                newHouseDetail.phoneNumber1          = newHouse.phoneNumber1;
                newHouseDetail.phoneNumber2          = newHouse.phoneNumber2;
                newHouseDetail.email                 = newHouse.email;
                newHouseDetail.whatsAppContactNumber = newHouse.whatsAppContactNumber;
                newHouseDetail.houseID               = houseToAddInDB.houseID;
                newHouseDetail.state                 = getFieldStateID("Activated");
                TipezeNyumbaServiceUnitOfWork.Repository <House>().Add(houseToAddInDB);
                TipezeNyumbaServiceUnitOfWork.Repository <HouseContactDetail>().Add(newHouseDetail);
                TipezeNyumbaServiceUnitOfWork.SaveChanges();

                return("Successful");
            }
            catch (Exception)
            {
                return("Failed to add new house, please confirm if the input parameters were inserted as required");
            }
        }
        public string UpdateHouseDetails(HouseDetails houseDetailsFromClient)
        {
            try
            {
                //Updating the house table
                House houseToUpdateInDB = TipezeNyumbaServiceUnitOfWork.Repository <House>().Get(u => u.houseID == houseDetailsFromClient.houseID);
                houseToUpdateInDB.districtHouseIsLocated = Convert.ToInt32(houseDetailsFromClient.district);
                houseToUpdateInDB.bedrooms                 = houseDetailsFromClient.bedrooms;
                houseToUpdateInDB.masterBedroomEnsuite     = houseDetailsFromClient.masterBedroomEnsuite;
                houseToUpdateInDB.selfContained            = houseDetailsFromClient.selfContained;
                houseToUpdateInDB.numberOfGarages          = houseDetailsFromClient.numberOfGarages;
                houseToUpdateInDB.fenceType                = Convert.ToInt32(houseDetailsFromClient.fenceType);
                houseToUpdateInDB.dateHouseWillBeAvailable = houseDetailsFromClient.dateHouseWillBeAvailable;
                houseToUpdateInDB.price             = houseDetailsFromClient.price;
                houseToUpdateInDB.modeOfPayment     = Convert.ToInt32(houseDetailsFromClient.modeOfPayment);
                houseToUpdateInDB.dateUploaded      = DateTime.Now;
                houseToUpdateInDB.description       = houseDetailsFromClient.description;
                houseToUpdateInDB.currentHouseState = Convert.ToInt32(houseDetailsFromClient.houseState);

                //Updating the HouseContactDetails table
                HouseContactDetail updatedHouseContactDetails = TipezeNyumbaServiceUnitOfWork.Repository <HouseContactDetail>().Get(u => u.houseID == houseDetailsFromClient.houseID);
                updatedHouseContactDetails.email                 = houseDetailsFromClient.email;
                updatedHouseContactDetails.phoneNumber1          = houseDetailsFromClient.phoneNumber1;
                updatedHouseContactDetails.phoneNumber2          = houseDetailsFromClient.phoneNumber2;
                updatedHouseContactDetails.whatsAppContactNumber = houseDetailsFromClient.whatsAppContactNumber;

                TipezeNyumbaServiceUnitOfWork.Repository <House>().Attach(houseToUpdateInDB);
                TipezeNyumbaServiceUnitOfWork.Repository <HouseContactDetail>().Attach(updatedHouseContactDetails);
                TipezeNyumbaServiceUnitOfWork.SaveChanges();
                return("Successful");
            }
            catch (Exception ex)
            {
                return("Failed to add new house, please confirm if the input parameters were inserted as required " + ex.Message);
            }
        }
Пример #9
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);
        }
Пример #10
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);
        }