Example #1
0
        public void DonateBlood(string donorCnp, string bloodType, string rh, int centerId)
        {
            using (UnitOfWork uow = new UnitOfWork())
            {
                var donor = uow.DonorRepository.GetAll().Where(d => d.CNP == donorCnp).FirstOrDefault();

                MedicalAnalysis medicalAnalysis = new MedicalAnalysis();

                BloodBag bloodBag = new BloodBag
                {
                    Status    = BloodBagStatus.Waiting,
                    Stage     = BloodBagStage.Sampling,
                    BloodType = (BloodTypes)Enum.Parse(typeof(BloodTypes), bloodType.ToUpper()),
                    RhType    = (RhTypes)Enum.Parse(typeof(RhTypes), rh.ToUpper()),
                    CenterId  = centerId,
                    Date      = DateTime.Now
                };
                uow.BloodBagRepository.Add(bloodBag);
                uow.Save();

                medicalAnalysis.BloodBag    = bloodBag;
                medicalAnalysis.Donor       = donor;
                medicalAnalysis.IsFilled    = false;
                medicalAnalysis.DateAndTime = DateTime.Now;

                uow.MedicalAnalysisRepository.Add(medicalAnalysis);
                uow.Save();
            }
        }
Example #2
0
        public async Task CreateDonation(
            string requestOrHospitalId,
            string userDonorId,
            double neededQuantity,
            double quantity,
            BloodGroup bloodGroup,
            RhesusFactor rhesusFactor)
        {
            var donorData = this.donorDataUserRepository.All()
                            .FirstOrDefault(ddu => ddu.ApplicationUserId == userDonorId);

            if (donorData == null)
            {
                throw new ArgumentException(GlobalConstants.NoDonorDataErrorMessage);
            }

            var request = this.requestRepository.All()
                          .FirstOrDefault(r => r.Id == requestOrHospitalId);

            var hospitalData = this.hospitalDataUserRepository.All()
                               .FirstOrDefault(hd =>
                                               request != null ?
                                               hd.Id == request.HospitalId : hd.Id == requestOrHospitalId);

            if (hospitalData == null)
            {
                throw new ArgumentException(GlobalConstants.NoHospitalDataErrorMessage);
            }

            var bloodBank = this.bloodBankRepository.All()
                            .FirstOrDefault(bbk => bbk.HospitalDataId == hospitalData.Id);

            var bag = this.bloodBagRepository.All()
                      .FirstOrDefault(bg => bg.BloodBankId == bloodBank.Id);

            var donationEvent = new DonationEvent
            {
                DateOfDonation = DateTime.UtcNow,
                RequestId      = request != null ? requestOrHospitalId : null,
                UserDonorId    = userDonorId,
            };

            await this.donationEventRepository.AddAsync(donationEvent);

            await this.donationEventRepository.SaveChangesAsync();

            bag = new BloodBag
            {
                Quantity       = quantity != 0 ? quantity : neededQuantity,
                CollectionDate = DateTime.UtcNow,
                DonorDataId    = donorData.Id,
                BloodGroup     = bloodGroup,
                RhesusFactor   = rhesusFactor,
                BloodBankId    = bloodBank.Id,
            };

            await this.bloodBagRepository.AddAsync(bag);

            await this.bloodBagRepository.SaveChangesAsync();
        }
        private static async Task SeedDataAsync(ApplicationDbContext dbContext)
        {
            // Seeding blood bank
            var bloodBank = new BloodBank
            {
                HospitalDataId = "123",
            };

            dbContext.BloodBanks.Add(bloodBank);
            await dbContext.SaveChangesAsync();

            // Seeding blood bag
            var bag = new BloodBag
            {
                Quantity       = 500,
                CollectionDate = DateTime.UtcNow,
                DonorDataId    = "789",
                BloodGroup     = BloodGroup.A,
                RhesusFactor   = RhesusFactor.Negative,
                BloodBankId    = bloodBank.Id,
            };
            await dbContext.BloodBags.AddAsync(bag);

            await dbContext.SaveChangesAsync();
        }
        public async Task CreateHospitalProfileAsync(HospitalProfileInputModel input, string userId)
        {
            var user = this.usersRepository.All()
                       .Where(u => u.Id == userId)
                       .FirstOrDefault();

            if (user == null)
            {
                throw new ArgumentException(GlobalConstants.NoUserRegistrationErrorMessage);
            }

            var hospitalData = new HospitalData
            {
                ApplicationUserId = userId,
                Name    = input.Name,
                Contact = new Contact
                {
                    Phone = input.Phone,
                    Email = input.Email,
                },
                Location = new Location
                {
                    Country           = input.Country,
                    City              = input.City,
                    AdressDescription = input.AdressDescription,
                },
            };

            await this.hospitalsRepository.AddAsync(hospitalData);

            await this.hospitalsRepository.SaveChangesAsync();

            var appUserHospitalData = new ApplicationUserHospitalData
            {
                ApplicationUserId = userId,
                HospitalDataId    = hospitalData.Id,
            };

            await this.appUsersHospitalRepository.AddAsync(appUserHospitalData);

            await this.appUsersHospitalRepository.SaveChangesAsync();

            var bloodBank = new BloodBank
            {
                HospitalDataId = hospitalData.Id,
            };

            await this.bloodBankRepository.AddAsync(bloodBank);

            await this.bloodBankRepository.SaveChangesAsync();

            var bag = new BloodBag
            {
                BloodBankId = bloodBank.Id,
            };

            await this.bagRepository.AddAsync(bag);

            await this.bagRepository.SaveChangesAsync();
        }
Example #5
0
        public ActionResult RemoveBloodBag(BloodBag bag)
        {
            Hospital inputHospital = (Hospital)TempData["inputHospital"];

            if (inputHospital != null)
            {
                TempData["inputHospital"] = inputHospital;
            }
            else
            {
                return(RedirectToAction("SignIn", "Hospitals"));
            }


            ViewBag.BloodTypes = new List <object> {
                "All", "A+", "B+", "B-", "O+", "O-", "AB+", "AB-"
            };

            Dictionary <string, object> Parameters1 = new Dictionary <string, object>();

            Parameters1.Add("@blood_type", bag.blood_type);
            Parameters1.Add("@hospital_id", inputHospital.hospital_id);

            ViewBag.bloodbags = dbm.ExecuteReader_proc("getBloodBagsofType", Parameters1);

            return(View());
        }
Example #6
0
    public int[] AddBag(BloodBag bag)
    {
        int[] score = AddAnswer(bag.bloodInfo);
        //Destroy(bag.gameObject);
        bag.gameObject.SetActive(false);

        return(score);
    }
Example #7
0
 public void UpdateBloodBag(BloodBag bloodBag)
 {
     using (UnitOfWork uow = new UnitOfWork())
     {
         uow.BloodBagRepository.Update(bloodBag);
         uow.Save();
     }
 }
Example #8
0
        public ActionResult Create(BloodBag blood_bag, string blood_date)
        {
            string q1 = $"INSERT INTO blood_bag(national_id,blood_bag_date,blood_camp_id,hospital_id,notes,blood_type)" +
                        $"VALUES('{blood_bag.national_id}','{blood_date}','{blood_bag.blood_camp_id}','{blood_bag.hospital_id}','{blood_bag.notes}','{blood_bag.blood_type}')";

            dbm.ExecuteNonQuery(q1);

            return(RedirectToAction("Index"));
        }
Example #9
0
        public ActionResult AddBloodBag(BloodBag bag, string date, string bloodPressure, string glucoseLevel)
        {
            Hospital inputHospital = (Hospital)TempData["inputHospital"];

            if (inputHospital != null)
            {
                TempData["inputHospital"] = inputHospital;
            }
            else
            {
                return(RedirectToAction("SignIn", "Hospitals"));
            }

            Dictionary <string, object> Parameters1 = new Dictionary <string, object>();

            Parameters1.Add("@hospital_id", inputHospital.hospital_id);

            DataTable BloodCamps = dbm.ExecuteReader_proc("GetBloodCamps", Parameters1);

            if (BloodCamps != null)
            {
                ViewBag.BloodCamps = BloodCamps.AsEnumerable().Select(row => new BloodCamp
                {
                    blood_camp_id = Convert.ToInt32(row["blood_camp_id"]),
                    driver_name   = (row["driver_name"]).ToString()
                });
            }

            Parameters1.Add("@national_id", Convert.ToInt64(bag.national_id));
            Parameters1.Add("@blood_bag_date", date);
            Parameters1.Add("@blood_camp_id", bag.blood_camp_id);
            Parameters1.Add("@notes", bag.notes);
            Parameters1.Add("@blood_type", bag.blood_type);


            ViewBag.added = (dbm.ExecuteNonQuery_proc("AddBloodBag", Parameters1) != 0); //This procedure adds the blood bag to stock and inserts the blood type in donor
            if (ViewBag.added == true)
            {
                Parameters1.Clear();
                Parameters1.Add("@hospital_id", inputHospital.hospital_id);
                Parameters1.Add("@national_id", Convert.ToInt64(bag.national_id));
                Parameters1.Add("@report_date", date);
                Parameters1.Add("@blood_pressure", bloodPressure);
                Parameters1.Add("@glucose_level", glucoseLevel);
                Parameters1.Add("@notes", bag.notes);

                dbm.ExecuteNonQuery_proc("insert_donorHealthInfo", Parameters1);
            }

            ViewBag.BloodTypes = new List <object> {
                "A+", "B+", "B-", "O+", "O-", "AB+", "AB-"
            };


            return(View());
        }
Example #10
0
        public void ChangeStatusReject(BloodBag bloodBag)
        {
            using (UnitOfWork uow = new UnitOfWork())
            {
                bloodBag.Status = BloodBagStatus.Rejected;
                bloodBag.Stage  = BloodBagStage.Qualification;

                uow.BloodBagRepository.Update(bloodBag);
                uow.Save();
            }
        }
Example #11
0
 public static Plasma ToPlasma(BloodBag bloodBag)
 {
     return(new Plasma
     {
         BloodType = bloodBag.BloodType,
         ExpirationDateAndTime = bloodBag.Date.AddDays(26),
         SeparationDateAndTime = DateTime.Now,
         CenterId = bloodBag.CenterId,
         Analysis = bloodBag.Analysis,
         Status = ComponentStatus.Available
     });
 }
Example #12
0
 public void ChangeStatus(BloodBag bloodBag)
 {
     using (UnitOfWork uow = new UnitOfWork())
     {
         if (bloodBag.Status == BloodBagStatus.Waiting)
         {
             bloodBag.Status = BloodBagStatus.Accepted;
             bloodBag.Stage  = BloodBagStage.Qualification;
         }
         uow.BloodBagRepository.Update(bloodBag);
         uow.Save();
     }
 }
Example #13
0
 public void SeparateBloodBag(BloodBag bloodBag, Thrombocyte t, Plasma p, RedBloodCell r)
 {
     using (UnitOfWork uow = new UnitOfWork())
     {
         bloodBag.Stage  = BloodBagStage.Separation;
         bloodBag.Status = BloodBagStatus.Destroyed;
         uow.BloodBagRepository.Update(bloodBag);
         uow.ThrombocyteRepository.Add(t);
         uow.PlasmaRepository.Add(p);
         uow.RedBloodCellRepository.Add(r);
         uow.Save();
     }
 }
Example #14
0
 public static RedBloodCell ToRedBloodCell(BloodBag bloodBag)
 {
     return(new RedBloodCell
     {
         BloodType = bloodBag.BloodType,
         ExpirationDateAndTime = bloodBag.Date.AddDays(42),
         RhType = bloodBag.RhType,
         SeparationDateAndTime = DateTime.Now,
         CenterId = bloodBag.CenterId,
         Analysis = bloodBag.Analysis,
         Status = ComponentStatus.Available
     });
 }
Example #15
0
 public static Thrombocyte ToThrombocyte(BloodBag bloodBag)
 {
     return(new Thrombocyte
     {
         BloodType = bloodBag.BloodType,
         ExpirationDateAndTime = bloodBag.Date.AddDays(5),
         RhType = bloodBag.RhType,
         SeparationDateAndTime = DateTime.Now,
         CenterId = bloodBag.CenterId,
         Analysis = bloodBag.Analysis,
         Status = ComponentStatus.Available
     });
 }
Example #16
0
    protected override void End()
    {
        if (_donor != null)
        {
            BloodBag b = Instantiate(bloodbag, _bloodbagSpawn.position, _bloodbagSpawn.rotation).GetComponent <BloodBag>();
            b.bloodInfo = _donor.bloodInfo;
            b.SetBed(this);
            b.GetComponent <MeshRenderer>().material = _materialsBloodBags[((int)_type) - 1];

            GameManager.inst.AddBag(b);
        }

        _running = false;
    }
        private static async Task SeedDataAsync(ApplicationDbContext dbContext)
        {
            // Seeding donationEvent
            var donationEvent = new DonationEvent
            {
                DateOfDonation = DateTime.UtcNow,
                RequestId      = "123",
                UserDonorId    = "456",
            };

            await dbContext.DonationEvents.AddAsync(donationEvent);

            // Seeding blood bag
            var bag = new BloodBag
            {
                Quantity       = 500,
                CollectionDate = DateTime.UtcNow,
                BloodGroup     = BloodGroup.A,
                RhesusFactor   = RhesusFactor.Negative,
            };


            await dbContext.BloodBags.AddAsync(bag);

            await dbContext.SaveChangesAsync();

            // Seeding user for donor
            dbContext.Users.Add(new ApplicationUser
            {
                UserName = "******",
                Email    = "*****@*****.**",
            });

            // Seeding user for hospital
            dbContext.Users.Add(new ApplicationUser
            {
                UserName = "******",
                Email    = "*****@*****.**",
            });

            await dbContext.SaveChangesAsync();
        }
Example #18
0
        private static async Task SeedBloodStockForCenters(ApplicationDbContext context, UserManager <ApplicationUser> userManager)
        {
            var      center1   = context.Centers.Where(c => c.CenterName == "Centru Donare Sânge Cluj-Napoca").FirstOrDefault();
            var      donor1    = context.Donors.Where(d => d.FirstName == "Laura").FirstOrDefault();
            var      donor2    = context.Donors.Where(d => d.FirstName == "Bogdan").FirstOrDefault();
            BloodBag bloodbag1 = new BloodBag()
            {
                Center    = center1,
                Date      = DateTime.Now,
                Status    = BloodBagStatus.Accepted,
                Stage     = BloodBagStage.Qualification,
                BloodType = BloodTypes.B3,
                RhType    = RhTypes.POZITIV,
                CenterId  = center1.Id
            };

            context.BloodBags.Add(bloodbag1);
            context.SaveChanges();

            MedicalAnalysis medicalAnalysis1 = new MedicalAnalysis()
            {
                BloodBag            = bloodbag1,
                DateAndTime         = DateTime.Now,
                ALTLevel            = false,
                Sifilis             = false,
                HepatitisB          = false,
                HepatitisC          = false,
                HIV                 = false,
                HTLV                = false,
                RejectedOtherCauses = false,
                Donor               = donor1,
                IsFilled            = true
            };

            context.MedicalAnalyses.Add(medicalAnalysis1);
            context.SaveChanges();

            BloodBag bloodbag2 = new BloodBag()
            {
                Center    = center1,
                Date      = DateTime.Now,
                Status    = BloodBagStatus.Waiting,
                Stage     = BloodBagStage.Sampling,
                BloodType = BloodTypes.B3,
                RhType    = RhTypes.POZITIV,
                CenterId  = center1.Id
            };

            context.BloodBags.Add(bloodbag2);
            context.SaveChanges();

            MedicalAnalysis medicalAnalysis2 = new MedicalAnalysis()
            {
                BloodBag            = bloodbag2,
                DateAndTime         = DateTime.Now,
                ALTLevel            = false,
                Sifilis             = false,
                HepatitisB          = false,
                HepatitisC          = false,
                HIV                 = false,
                HTLV                = false,
                RejectedOtherCauses = false,
                Donor               = donor1,
                IsFilled            = true
            };

            context.MedicalAnalyses.Add(medicalAnalysis2);
            context.SaveChanges();

            BloodBag bloodbag3 = new BloodBag()
            {
                Center    = center1,
                Date      = DateTime.Now,
                Status    = BloodBagStatus.Accepted,
                Stage     = BloodBagStage.Qualification,
                BloodType = BloodTypes.O1,
                RhType    = RhTypes.POZITIV,
                CenterId  = center1.Id
            };

            context.BloodBags.Add(bloodbag3);
            context.SaveChanges();

            MedicalAnalysis medicalAnalysis3 = new MedicalAnalysis()
            {
                BloodBag            = bloodbag3,
                DateAndTime         = DateTime.Now,
                ALTLevel            = false,
                Sifilis             = false,
                HepatitisB          = false,
                HepatitisC          = false,
                HIV                 = false,
                HTLV                = false,
                RejectedOtherCauses = false,
                Donor               = donor2,
                IsFilled            = true
            };

            context.MedicalAnalyses.Add(medicalAnalysis3);
            context.SaveChanges();

            BloodBag bloodbag4 = new BloodBag()
            {
                Center    = center1,
                Date      = DateTime.Now,
                Status    = BloodBagStatus.Rejected,
                Stage     = BloodBagStage.Sampling,
                BloodType = BloodTypes.B3,
                RhType    = RhTypes.POZITIV,
                CenterId  = center1.Id
            };

            context.BloodBags.Add(bloodbag4);
            context.SaveChanges();

            MedicalAnalysis medicalAnalysis4 = new MedicalAnalysis()
            {
                BloodBag            = bloodbag4,
                DateAndTime         = DateTime.Now,
                ALTLevel            = false,
                Sifilis             = false,
                HepatitisB          = false,
                HepatitisC          = false,
                HIV                 = false,
                HTLV                = false,
                RejectedOtherCauses = true,
                Observations        = "S-a găsit prea multă grăsime în sânge.",
                Donor               = donor1,
                IsFilled            = true
            };

            context.MedicalAnalyses.Add(medicalAnalysis4);
            context.SaveChanges();
        }
Example #19
0
 public void AddBag(BloodBag b)
 {
     bloodBags.Add(b);
 }
Example #20
0
 private void TryGrab()
 {
     Collider[] cols = Physics.OverlapSphere(_grabCenter.position, .75f, _interactObj);
     if (cols != null && cols.Length > 0)
     {
         if (cols[0].CompareTag("Donor"))
         {
             BloodDonor donor = (cols[0].GetComponent <BloodDonor>());
             if (donor.state != BloodDonor.State.taking && donor.state != BloodDonor.State.leave && donor.state != BloodDonor.State.rageQuit)
             {
                 AttachObj(donor, _attrachAnchor);
                 SetBul(true, sprites[(int)donor.bloodInfo.type - 1], "" + donor.bloodInfo.family);
                 ResetHighlightAndBul(false);
             }
             else if (donor.state == BloodDonor.State.rageQuit)
             {
                 donor.PlayRageSound();
             }
         }
         else if (cols[0].CompareTag("Bloodbag"))
         {
             BloodBag bloodbag = (cols[0].GetComponent <BloodBag>());
             AttachObj(bloodbag, _grabCenter);
             SetBul(true, sprites[(int)bloodbag.bloodInfo.type - 1], "" + bloodbag.bloodInfo.family);
             ResetHighlightAndBul(false);
         }
         else if (cols[0].CompareTag("FoodBag"))
         {
             FoodBag bloodbag = (cols[0].GetComponent <FoodBag>());
             AttachObj(bloodbag, _grabCenter);
             ResetHighlightAndBul(true);
         }
     }
     else
     {
         cols = Physics.OverlapSphere(_grabCenter.position, .75f, _interactPlace);
         if (cols != null && cols.Length > 0)
         {
             if (cols[0].CompareTag("BloodShelf") || cols[0].CompareTag("FoodShelf"))
             {
                 Shelf shelf = cols[0].GetComponent <Shelf>();
                 if (shelf != null)
                 {
                     DragableObj b = shelf.TakeOut();
                     if (b != null)
                     {
                         AttachObj(b, _grabCenter);
                         if (b is BloodBag)
                         {
                             BloodBag bloodBag = ((BloodBag)b);
                             SetBul(true, sprites[(int)bloodBag.bloodInfo.type - 1], "" + bloodBag.bloodInfo.family);
                         }
                     }
                 }
             }
             else if (cols[0].CompareTag("CallCenter"))
             {
                 CallCenter cc = cols[0].GetComponent <CallCenter>();
                 if (cc != null)
                 {
                     cc.Open(this);
                 }
             }
         }
     }
 }
    public void NextPage()
    {
        //   void Start () {
        pageNumber++;

        switch (pageNumber)
        {
        case 0:
            Debug.Log("case " + pageNumber);

            bloodAdminTitle.text         = questions[pageNumber];
            bloodAdminButtonText[0].text = "yes";
            bloodAdminButtonText[1].text = "no";
            bloodAdminButtons[2].gameObject.SetActive(false);


            break;

        case 1:
            //Has the patient given consent?

            bloodAdminTitle.text         = questions[pageNumber];
            bloodAdminButtonText[0].text = "yes";
            bloodAdminButtonText[1].text = "no";
            bloodAdminButtons[2].gameObject.SetActive(false);

            //  pageNumber++;


            break;

        case 2:
            //What is the patient identification number?

            bloodAdminTitle.text = questions[pageNumber];
            bloodAdminButtons[2].gameObject.SetActive(true);

            for (int i = 0; i < bloodAdminButtonText.Count; i++)
            {
                bloodAdminButtonText[i].text = patientID[i].ToString();
            }
            //   pageNumber++;
            break;

        case 3:
            //What is the patients name?

            bloodAdminTitle.text = questions[pageNumber];
            bloodAdminButtons[2].gameObject.SetActive(true);

            for (int i = 0; i < bloodAdminButtonText.Count; i++)
            {
                bloodAdminButtonText[i].text = patientName[i];
            }
            //   pageNumber++;
            //bloodAdminButtonText[0].text = patientName[0];
            break;

        case 4:
            //What is the labeled blood group and blood type?

            bloodAdminTitle.text = questions[pageNumber];
            bloodAdminButtons[2].gameObject.SetActive(true);

            for (int i = 0; i < bloodAdminButtonText.Count; i++)
            {
                bloodAdminButtonText[i].text = bloodgroupandtyp[i];
            }
            //   pageNumber++;
            break;

        case 5:
            //What is the labeled expiration date?

            bloodAdminTitle.text = questions[pageNumber];
            bloodAdminButtons[2].gameObject.SetActive(true);

            for (int i = 0; i < bloodAdminButtonText.Count; i++)
            {
                bloodAdminButtonText[i].text = expiration[i];
            }
            //   pageNumber++;
            break;

        case 6:
            //Were blood clots, clumping, or gas bubbles found when inspecting?

            bloodAdminTitle.text = questions[pageNumber];


            bloodAdminButtonText[0].text = "yes";
            bloodAdminButtonText[1].text = "no";
            bloodAdminButtons[2].gameObject.SetActive(false);
            pageNumber++;



            break;

        default:
            BloodBag bloodBag = GameObject.Find("BloodBag").GetComponent <BloodBag>();
            bloodBag.ChecklistComplete();
            break;
        }
    }
Example #22
0
    /// <summary>Check surounding object around the player</summary>
    private void CheckOnDrop()
    {
        Collider[] cols = Physics.OverlapSphere(_grabCenter.position, .75f, _interactPlace);
        if (cols != null && cols.Length > 0)
        {
            if (cols[0].CompareTag("Doctor_Door"))
            {
                Doctor doc = cols[0].GetComponent <Doctor>();
                if (doc != null && _currentObjAttached is BloodDonor)
                {
                    BloodDonor bd = (BloodDonor)_currentObjAttached;
                    if (bd != null)
                    {
                        if (bd.progressionStat == (int)BloodDonor.State.home || bd.state == BloodDonor.State.home)
                        {
                            if (!doc.occupied)
                            {
                                doc.SetDonor(bd);
                            }
                        }
                        else
                        {
                            bd.state = BloodDonor.State.rageQuit;
                        }
                    }
                }
            }
            else if (cols[0].CompareTag("Bed"))
            {
                Bed bed = cols[0].GetComponent <Bed>();
                if (bed != null && _currentObjAttached is BloodDonor)
                {
                    BloodDonor bd = (BloodDonor)_currentObjAttached;
                    if (bd != null)
                    {
                        if ((bd.progressionStat == (int)BloodDonor.State.medic || bd.state == BloodDonor.State.medic) /*&& bed.type == bd.Blood.type*/)
                        {
                            if (!bed.occupied)
                            {
                                bed.SetDonor(bd);
                            }
                        }
                        else
                        {
                            bd.state = BloodDonor.State.rageQuit;
                        }
                    }
                }
                if (_currentObjAttached is FoodBag)
                {
                    if (bed.occupied)
                    {
                        int score = bed.TryFeed(_currentObjAttached);
                        NewScore(score);
                    }
                }
            }
            else if (cols[0].CompareTag("BloodShelf") || cols[0].CompareTag("FoodShelf"))
            {
                Shelf shelf = cols[0].GetComponent <Shelf>();
                if (shelf != null)
                {
                    int score = shelf.FillIn(_currentObjAttached);
                    NewScore(score);
                }
            }
            else if (cols[0].CompareTag("commands"))
            {
                Commands commands = cols[0].GetComponent <Commands>();
                if (commands != null && _currentObjAttached is BloodBag)
                {
                    BloodBag bb = (BloodBag)_currentObjAttached;
                    if (bb != null)
                    {
                        int[] score = commands.AddBag(bb);
                        NewScore(score);
                    }
                }
            }
            else if (_currentObjAttached is BloodDonor)
            {
                ((BloodDonor)_currentObjAttached).onProcess = false;
            }
        }
        else if (_currentObjAttached is BloodDonor)
        {
            ((BloodDonor)_currentObjAttached).onProcess = false;
        }

        ResetHighlightAndBul(true);
    }
Example #23
0
    private void HighlightManagement()
    {
        Collider[] cols = Physics.OverlapSphere(_grabCenter.position, .75f, _interactObj | _interactPlace);

        if (cols.Length <= 0)
        {
            ResetHighlightAndBul(true);
            return;
        }

        Collider col = cols[0];

        if (_currentObjAttached != null && col.transform == _currentObjAttached.transform && cols.Length > 1)
        {
            col = cols[1];
        }

        if (col.CompareTag("Donor"))
        {
            if (_currentObjAttached == null)
            {
                BloodDonor donor = (col.GetComponent <BloodDonor>());
                if (donor != null)
                {
                    SetBul(true, sprites[(int)donor.bloodInfo.type - 1], "" + donor.bloodInfo.family);
                }
                _lastHighlightObj.SetData(col, donor.meshRenderers, true);
            }
            else if (_lastHighlightObj.col != null && _lastHighlightObj.col.transform != col.transform)
            {
                ResetHighlightAndBul(false);
            }
        }
        else if (col.CompareTag("Bloodbag"))
        {
            if (_currentObjAttached == null)
            {
                BloodBag bloodbag = (col.GetComponent <BloodBag>());
                if (bloodbag != null)
                {
                    SetBul(true, sprites[(int)bloodbag.bloodInfo.type - 1], "" + bloodbag.bloodInfo.family);
                }
                _lastHighlightObj.SetData(col, bloodbag.meshRenderers, false);
            }
            else if (_lastHighlightObj.col != null && _lastHighlightObj.col.transform != col.transform)
            {
                ResetHighlightAndBul(false);
            }
        }
        else if (col.CompareTag("BloodShelf"))
        {
            BloodShelf shelf = col.GetComponent <BloodShelf>();
            if (_currentObjAttached == null || _currentObjAttached is BloodBag)
            {
                if (_currentObjAttached == null)
                {
                    SetBul(true, "" + shelf.GetNumber());
                }
                _lastHighlightObj.SetData(col, shelf.meshRenderers, false);
            }
            else
            {
                ResetHighlightAndBul(false);
            }
        }
        else if (col.CompareTag("FoodBag"))
        {
            if (_currentObjAttached == null)
            {
                _lastHighlightObj.SetData(col, col.GetComponent <MeshRenderer>().material, false);
            }
            else if (_lastHighlightObj.col != null && _lastHighlightObj.col.transform != col.transform)
            {
                ResetHighlightAndBul(true);
            }
        }
        else if (col.CompareTag("FoodShelf"))
        {
            FoodShelf shelf = col.GetComponent <FoodShelf>();
            if (_currentObjAttached == null || _currentObjAttached is FoodBag)
            {
                _lastHighlightObj.SetData(col, shelf.meshRenderers, false);
            }
            else
            {
                ResetHighlightAndBul(false);
            }
        }
        else if (col.CompareTag("Doctor_Door") || col.CompareTag("Bed"))
        {
            InteractableWihDonor interactableWihDonor = col.GetComponent <InteractableWihDonor>();
            if (_currentObjAttached != null && _currentObjAttached is BloodDonor)
            {
                BloodDonor donor = (BloodDonor)_currentObjAttached;
                if (/*donor.state != BloodDonor.State.taking &&*/ donor.state != BloodDonor.State.leave && donor.state != BloodDonor.State.rageQuit)
                {
                    _lastHighlightObj.SetData(col, interactableWihDonor.meshRenderers, false);
                }
            }
            else if (_currentObjAttached != null && _currentObjAttached is FoodBag)
            {
                if (interactableWihDonor.occupied)
                {
                    _lastHighlightObj.SetData(col, interactableWihDonor.meshRenderers, false);
                }
            }
            else
            {
                ResetHighlightAndBul(false);
            }
        }
        else if (col.CompareTag("commands"))
        {
            Commands commands = col.GetComponent <Commands>();
            if (_currentObjAttached != null && _currentObjAttached is BloodBag)
            {
                _lastHighlightObj.SetData(col, commands.meshRenderers, false);
            }
        }
        else if (col.CompareTag("CallCenter"))
        {
            CallCenter cc = col.GetComponent <CallCenter>();
            if (!cc.inRecorvery)
            {
                _lastHighlightObj.SetData(col, cc.meshRenderers, false);
            }
        }
        else
        {
            ResetHighlightAndBul(false);
        }
    }