Exemplo n.º 1
0
        private string BuildStringServicesAndAdmin(string servicesWithoutAdmin, ref Dictionary <string, int> listService)
        {
            string result = "";

            string[] serviceArray = servicesWithoutAdmin.Split(new string[] { ClinicConstant.StringBetweenServicesInDoanhThu }, StringSplitOptions.None);

            for (int i = 0; i < serviceArray.Count(); i++)
            {
                IMedicine service = currentServices.Where(x => x.Name == serviceArray[i]).FirstOrDefault();
                result += (serviceArray[i] + ClinicConstant.StringBetweenServiceAndAdmin + (service == null?"": service.Admin));
                if (i != serviceArray.Count() - 1)
                {
                    result += "\n";
                }
                if ((!String.IsNullOrEmpty(serviceArray[i])) && serviceArray[i][0] == '@')
                {
                    if (listService.ContainsKey(serviceArray[i]))
                    {
                        listService[serviceArray[i]]++;
                    }
                    else
                    {
                        listService.Add(serviceArray[i], 1);
                    }
                }
            }

            return(result);
        }
Exemplo n.º 2
0
        static void Main()
        {
            var laboratory = new Laboratory(100);
            var samples    = laboratory.GimmeSamples(1000);

            IMouse[] mice = laboratory.GimmeMice(10);

            IMedicine poisonedSample = null;
            var       options        = new ParallelOptions()
            {
                MaxDegreeOfParallelism = laboratory.NumberOfLaborants
            };

            var sessions = DistibuteSamplesByMice(samples, mice);

            Parallel.ForEach(sessions.Sessions, options, session =>
            {
                foreach (var sample in session.Samples)
                {
                    session.Mouse.GetMedicine(sample);
                }
            });

            var bits = ToBitArray(0);

            for (int i = 0; i < mice.Length; i++)
            {
                bits[i] = !mice[i].IsAlive;
            }

            var index = ToInt(bits);

            Console.WriteLine($"Sample number {index} is poisoned");
            Console.ReadKey();
        }
Exemplo n.º 3
0
        public int AddMedicine(string name, string type, DateTime validity, int supplierID)
        {
            ISupplier supplier = supplierRepo.GetSupplier(supplierID);
            double    price    = medicinePriceCalc.CalculatePrice(validity, supplier);
            IMedicine medicine = factor.CreateMedicine(name, type, validity, price);

            return(medicineRepo.SaveMedicine(medicine));
        }
Exemplo n.º 4
0
            public void GetMedicine(IMedicine drop)
            {
                if (_makeMedicineWork == null)
                {
                    _makeMedicineWork = Task.Run(async() =>
                    {
                        await Task.Delay(MedicineTimeToWork);
                    });
                }

                if (drop is Medicine medicine && medicine.IsPoisoned)
                {
                    _isAlive = false;
                }
            }
Exemplo n.º 5
0
 public int SaveMedicine(IMedicine medicine)
 {
     this.medicine.Add(++number, medicine);
     return(number);
 }
Exemplo n.º 6
0
        public string BuyMedicine(int medicineID)
        {
            IMedicine medicine = medicineRepo.GetMedicine(medicineID);

            return(medicine.Price.ToString());
        }