public async Task <IActionResult> Edit(int id, [Bind("BloodDonationID,DonationDate,Volume,NurseID,DonorID")] BloodDonation bloodDonation)
        {
            if (id != bloodDonation.BloodDonationID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(bloodDonation);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!BloodDonationExists(bloodDonation.BloodDonationID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["DonorID"] = new SelectList(_context.Donors, "DonorID", "FullName", bloodDonation.DonorID);
            ViewData["NurseID"] = new SelectList(_context.Nurses, "NurseID", "FullName", bloodDonation.NurseID);
            return(View(bloodDonation));
        }
        public async Task AddBloodDonationAsync(DateTime dateOfDonation, int volume, string donorPesel,
                                                string personnelPesel)
        {
            var guid  = Guid.NewGuid();
            var donor = await donorRepository.GetAsync(donorPesel);

            if (donor == null)
            {
                throw new UserNotFoundException($"{nameof(donor)} not found.");
            }

            var personnel = await personnelRepository.GetAsync(personnelPesel);

            if (personnel == null)
            {
                throw new UserNotFoundException($"{nameof(personnel)} not found.");
            }

            var bloodType = donor.BloodType;

            donor.UpdateTimeOfLastDonation(dateOfDonation);
            await donorRepository.UpdateAsync(donor);

            var bloodDonation = new BloodDonation(guid, dateOfDonation, volume, bloodType, donor, personnel);
            await bloodDonationRepository.AddAsync(bloodDonation);
        }
Esempio n. 3
0
        public BloodDonation StartBloodDonation(Donor donor)
        {
            if (donor.IsBlocked())
            {
                throw new ArgumentException();
            }
            var bloodDonation = new BloodDonation(0, donor);

            ActiveDonations.Add(bloodDonation);
            return(bloodDonation);
        }
        public async Task <IActionResult> Create([Bind("BloodDonationID,DonationDate,Volume,NurseID,DonorID")] BloodDonation bloodDonation)
        {
            if (ModelState.IsValid)
            {
                _context.Add(bloodDonation);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["DonorID"] = new SelectList(_context.Donors, "DonorID", "FullName", bloodDonation.DonorID);
            ViewData["NurseID"] = new SelectList(_context.Nurses, "NurseID", "FullName", bloodDonation.NurseID);
            return(View(bloodDonation));
        }
        public static void Initialize(BBSContext context)
        {
            context.Database.EnsureCreated();

            // Look for any students.
            if (context.Hospitals.Any())
            {
                return; //DB seeded
            }

            var hospitals = new Hospital[]
            {
                new Hospital {
                    Name = "New York Presbyterian Med Center", Address = "2960 Broadway, New York, NY 10027"
                },
                new Hospital {
                    Name = "Mount Sinai Hospital", Address = "1468 Madison Ave, New York, NY 10029"
                }
            };

            foreach (var h in hospitals)
            {
                context.Hospitals.Add(h);
            }
            context.SaveChanges();

            var nurses = new Nurse[]
            {
                new Nurse {
                    FirstName  = "Adela", LastName = "Rosario", PESEL = "95072495285",
                    HireDate   = DateTime.Parse("2012-09-01"),
                    HospitalID = hospitals.Single(h => h.Name == "New York Presbyterian Med Center").HospitalID
                },
                new Nurse {
                    FirstName  = "Kimberly", LastName = "Garrison", PESEL = "81080785425",
                    HireDate   = DateTime.Parse("2005-12-05"),
                    HospitalID = hospitals.Single(h => h.Name == "Mount Sinai Hospital").HospitalID
                },
                new Nurse {
                    FirstName  = "Stephen", LastName = "Wells", PESEL = "88060999799",
                    HireDate   = DateTime.Parse("2012-03-07"),
                    HospitalID = hospitals.Single(h => h.Name == "New York Presbyterian Med Center").HospitalID
                },
            };

            foreach (var n in nurses)
            {
                context.Nurses.Add(n);
            }
            context.SaveChanges();

            var donors = new Donor[]
            {
                new Donor {
                    FirstName = "Jaiden", LastName = "Mathis", BloodType = "0 Rh+", PESEL = "97122144198"
                },
                new Donor {
                    FirstName = "Taylor", LastName = "Bird", BloodType = "A Rh-", PESEL = "87051874938"
                },
                new Donor {
                    FirstName = "Beth", LastName = "Emery", BloodType = "B Rh-", PESEL = "00271433989"
                },
                new Donor {
                    FirstName = "Chelsea", LastName = "Whitfield", BloodType = "AB Rh+", PESEL = "92111041681"
                }
            };

            foreach (var d in donors)
            {
                context.Donors.Add(d);
            }
            context.SaveChanges();

            var bloodDonations = new BloodDonation[]
            {
                new BloodDonation {
                    Volume       = 500,
                    DonationDate = DateTime.Parse("2019-05-06"),
                    DonorID      = donors.Single(d => d.PESEL == "97122144198").DonorID,
                    NurseID      = nurses.Single(n => n.PESEL == "95072495285").NurseID
                },
                new BloodDonation {
                    Volume       = 400,
                    DonationDate = DateTime.Parse("2019-05-08"),
                    DonorID      = donors.Single(d => d.PESEL == "87051874938").DonorID,
                    NurseID      = nurses.Single(n => n.PESEL == "95072495285").NurseID
                },
                new BloodDonation {
                    Volume       = 300,
                    DonationDate = DateTime.Parse("2019-02-01"),
                    DonorID      = donors.Single(d => d.PESEL == "00271433989").DonorID,
                    NurseID      = nurses.Single(n => n.PESEL == "81080785425").NurseID
                },
                new BloodDonation {
                    Volume       = 600,
                    DonationDate = DateTime.Parse("2019-05-13"),
                    DonorID      = donors.Single(d => d.PESEL == "00271433989").DonorID,
                    NurseID      = nurses.Single(n => n.PESEL == "81080785425").NurseID
                },
                new BloodDonation {
                    Volume       = 340,
                    DonationDate = DateTime.Parse("2019-05-08"),
                    DonorID      = donors.Single(d => d.PESEL == "92111041681").DonorID,
                    NurseID      = nurses.Single(n => n.PESEL == "88060999799").NurseID
                }
            };

            foreach (var b in bloodDonations)
            {
                context.BloodDonations.Add(b);
            }
            context.SaveChanges();
        }
Esempio n. 6
0
 public async Task ScheduleAppointment(BloodDonation donation)
 {
     // TODO: Use a model class and validate client input before saving
     donation.Status = BloodDonationStatus.Scheduled;
     await _dbContext.SaveChangesAsync();
 }
Esempio n. 7
0
 public async Task UpdateAsync(BloodDonation bloodDonation)
 {
     await Task.CompletedTask;
 }
Esempio n. 8
0
 public async Task AddAsync(BloodDonation bloodDonation)
 => await Task.FromResult(bloodDonations.Add(bloodDonation));
Esempio n. 9
0
 public async Task UpdateAsync(BloodDonation bloodDonation)
 {
     context.BloodDonations.Update(bloodDonation);
     await context.SaveChangesAsync();
 }
Esempio n. 10
0
        public async Task AddAsync(BloodDonation bloodDonation)
        {
            await context.BloodDonations.AddAsync(bloodDonation);

            await context.SaveChangesAsync();
        }
Esempio n. 11
0
 public void AbortDonation(BloodDonation bloodDonation)
 {
     ActiveDonations.Remove(bloodDonation);
     bloodDonation.EndDonation();
 }