コード例 #1
0
        private IEnumerable <ShelterSearchResltsModel> GetShelters(string searchInput)
        {
            var dbContext = new HomelessHelperDbContext();

            if (string.IsNullOrEmpty(searchInput))
            {
                return(dbContext.Shelters.Join(dbContext.Beds, shelter => shelter.Id, bed => bed.Shelter.Id,
                                               (shelter, bed) => new ShelterSearchResltsModel()
                {
                    ShelterId = shelter.Id,
                    ShelterName = shelter.Name,
                    ShelterType = shelter.Type,
                    Beds = shelter.Beds,
                    ShelterAddress = shelter.Address,
                    ServicesOffered = shelter.ServicesOffered
                }).ToList().Take(15));
            }

            var results = dbContext.Shelters.Join(dbContext.Beds, shelter => shelter.Id, bed => bed.Shelter.Id,
                                                  (shelter, bed) => new ShelterSearchResltsModel()
            {
                ShelterId       = shelter.Id,
                ShelterName     = shelter.Name,
                ShelterType     = shelter.Type,
                Beds            = shelter.Beds,
                ShelterAddress  = shelter.Address,
                ServicesOffered = shelter.ServicesOffered
            }).Where(x => x.ShelterName.Contains(searchInput) || x.ShelterType.ToString().Equals(searchInput, StringComparison.InvariantCultureIgnoreCase) ||
                     x.ShelterAddress.City.Equals(searchInput, StringComparison.InvariantCultureIgnoreCase) || x.ShelterAddress.Zip == searchInput).ToList().Take(15);

            return(results);
        }
コード例 #2
0
        public ActionResult CheckOut(Client client)
        {
            var dbContext = new HomelessHelperDbContext();

            dbContext.Clients.Attach(client);
            client.Shelter = null;
            dbContext.SaveChanges();
            return(Json(true));
        }
コード例 #3
0
        public ShelterMatcherResponse Match(Client client, ShelterType shelterType, HomelessHelperDbContext dbContext)
        {
            var shelterFinder = new ShelterFinder();

            var shelter = shelterFinder.Find(shelterType);

            if (shelter != null && shelter.Any())
            {
                var bedFinder = new RoomBedFinder();

                var availableBeds = bedFinder.Find(shelter[0].Id, DateTime.Today);
                if (availableBeds != null && availableBeds.Any())
                {
                    shelter[0].Bookings.Add(new BedBooking
                    {
                        Bed         = availableBeds[0],
                        ClientId    = client.Id,
                        CheckInDate = DateTime.Today,
                    });
                    return(new ShelterMatcherResponse
                    {
                        IsBooked = true,
                        Shelter = shelter[0],
                        Message = $"Shelter Name : {shelter[0].Name}. Bed Number : {availableBeds[0].Number}",
                        Name = $"{client.FirstName} {client.LastName}",
                        Address = shelter[0].Address
                    });
                }
                return(new ShelterMatcherResponse
                {
                    Message = "No shelter available",
                    Name = $"{client.FirstName} {client.LastName}"
                });
            }
            return(new ShelterMatcherResponse
            {
                Message = "No shelter available",
                Name = $"{client.FirstName} {client.LastName}"
            });
        }
コード例 #4
0
        public List <Bed> Find(Guid shelterID, DateTime checkinDate)
        {
            var dbContext = new HomelessHelperDbContext();
            var shelter   = dbContext.Shelters.Where(x => x.Id == shelterID).Include(x => x.Beds).Include(x => x.Bookings).FirstOrDefault();

            var beds = new List <Bed>();

            foreach (var bed in shelter.Beds)
            {
                if (shelter.Bookings == null)
                {
                    beds.Add(bed);
                }
                else
                {
                    if (!shelter.Bookings.Any(x => x.Bed == bed && x.CheckOutDate == null))
                    {
                        beds.Add(bed);
                    }
                }
            }
            return(beds);
        }
コード例 #5
0
 public GetClientsQuery(HomelessHelperDbContext context)
 {
     _context = context;
 }
コード例 #6
0
 public SearchController()
 {
     _dbContext = new HomelessHelperDbContext();
 }
コード例 #7
0
 public void Setup()
 {
     _dbContext = new HomelessHelperDbContext();
 }
コード例 #8
0
 public ShelterController()
 {
     _dbContext = new HomelessHelperDbContext();
 }
コード例 #9
0
 public DataImporter(HomelessHelperDbContext context)
 {
     _context = context;
 }
コード例 #10
0
 public EditInTakeController()
 {
     _dbContext = new HomelessHelperDbContext();
 }
コード例 #11
0
        public List <Shelter> Find(ShelterType shelterType)
        {
            var dbContext = new HomelessHelperDbContext();

            return(dbContext.Shelters.Where(x => x.Type == shelterType).Include(x => x.Bookings).Include(x => x.Address).ToList());
        }