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); }
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> 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 }); } }
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); } }
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); }
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); }