Ejemplo n.º 1
0
        private static void Show(SomeJob <Worker.Worker> job)
        {
            Console.WriteLine("Вкажіть ім'я раба про якого потрібно вивести інфу");
            string name = Console.ReadLine();

            job.Show(name);
        }
Ejemplo n.º 2
0
        private static void Calculation(SomeJob <Worker.Worker> job)
        {
            Console.WriteLine("Вкажіть премію працівникові");
            int pr = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Вкажіть ім'я працівника: ");
            string name = Console.ReadLine();

            job.Calculetion(pr, name);
        }
Ejemplo n.º 3
0
        public int GetClosestJob(SomeJob job, List <SomeJob> someJobs)
        {
            for (int i = 0; i < someJobs.Count; i++)
            {
                if (someJobs[i].StartTime >= job.EndTime)
                {
                    return(i);
                }
            }

            return(-1);
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            SomeJob <Worker.Worker> job = new SomeJob <Worker.Worker>("Шарага");
            bool alive = true;

            while (alive)
            {
                ConsoleColor color = Console.ForegroundColor;
                Console.ForegroundColor = ConsoleColor.DarkGreen;
                Console.WriteLine("1. Додати робітника \t 2. Додати робочі години робітникові \n 3. Переглянути інформацію робітника \t 4. Нарахувати відсотки \t 5. Вийти");
                Console.WriteLine("Введіть номер пункут: ");
                Console.ForegroundColor = color;
                try
                {
                    int command = Convert.ToInt32(Console.ReadLine());

                    switch (command)
                    {
                    case 4:
                        Calculation(job);
                        break;

                    case 1:
                        HirengWorker(job);
                        break;

                    case 2:
                        AddWorkHourse(job);
                        break;

                    case 3:
                        Show(job);
                        break;

                    case 5:
                        alive = false;
                        continue;
                    }
                }
                catch (Exception ex)
                {
                    color = Console.ForegroundColor;
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine(ex.Message);
                    Console.ForegroundColor = color;
                }
            }
        }
Ejemplo n.º 5
0
        private static void HirengWorker(SomeJob <Worker.Worker> job)
        {
            Console.WriteLine("Вкажіть статуc раба: ");
            Console.WriteLine("Menager \t Employee \t Freelancer");
            string status        = Console.ReadLine();
            bool   correctStatus = true;
            Status st            = Status.Employee;

            while (correctStatus)
            {
                if (status == "Menager")
                {
                    st            = Status.Manager;
                    correctStatus = false;
                }
                else if (status == "Employee")
                {
                    st            = Status.Employee;
                    correctStatus = false;
                }
                else if (status == "FreeLancer")
                {
                    st            = Status.FreeLancer;
                    correctStatus = false;
                }
                else
                {
                    Console.WriteLine("Введи блять нормільний статус");
                    status = Console.ReadLine();
                }
            }
            Console.WriteLine("Вкажіть зарплату раба: ");
            int sal = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Вкажіть ім'я для раба: ");
            string name = Console.ReadLine();

            Console.WriteLine("Вкажіть премію для раба: ");
            int pr = Convert.ToInt32(Console.ReadLine());



            job.Hiring(st, sal, pr, name,
                       addHourseWorkHandler, calcultionHandler, addNewWorkerJandler, showHandler);
        }
Ejemplo n.º 6
0
        // Start is called before the first frame update
        void Start()
        {
            NativeArray <float> result = new NativeArray <float>(1, Allocator.TempJob);

            SomeJob jobData = new SomeJob {
                a = 5, b = 3, result = result
            };

            JobHandle handle = jobData.Schedule();

            handle.Complete();

            float resultOfJob = result[0];

            Debug.Log(resultOfJob);

            result.Dispose();
        }
Ejemplo n.º 7
0
        private static void AddWorkHourse(SomeJob <Worker.Worker> job)
        {
            Console.WriteLine("Вкажіть дату додавання годин: ");
            Console.Write("Рік \t");
            int year = Convert.ToInt32(Console.ReadLine());

            Console.Write("\t Місяць \t");
            int month = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("\t День \t");
            int      day  = Convert.ToInt32(Console.ReadLine());
            DateTime date = new DateTime(year, month, day);

            Console.WriteLine("Вкажіть кількість годин: ");
            int count = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Вкажіть ім'я: ");
            string name = Console.ReadLine();

            job.AddHourse(date, count, name);
        }
Ejemplo n.º 8
0
        public void GenerateJobsTimeline()
        {
            List <SomeJob> someJobs = new List <SomeJob>();

            // fill jobs with jit load func events
            foreach (BJit jit in Jits)
            {
                if (jit.IsFull == true)
                {
                    someJobs.Add(new SomeJob {
                        StartTime = jit.JobStartAt, EndTime = jit.JobEndAt, Type = SomeJobType.Jit
                    });
                }
            }

            foreach (BGCItem gcItem in GCItems)
            {
                if (gcItem.IsFull != true)
                {
                    continue;
                }

                bool isAdded = false;
                for (int i = 0; i < someJobs.Count; i++)
                {
                    SomeJob someJob = someJobs[i];
                    if (someJob.Type != SomeJobType.GC && gcItem.JobStartAt > someJob.StartTime && gcItem.JobStartAt < someJob.EndTime) // if gc job inside jit job
                    {
                        // lets know how it overlaps antoher
                        if (gcItem.JobEndAt < someJob.EndTime) // if gc is smaller than jit (how it must be)
                        {
                            //split large job
                            SomeJob firstPart = new SomeJob {
                                StartTime = someJob.StartTime, EndTime = gcItem.JobStartAt, Type = SomeJobType.Jit
                            };
                            SomeJob secondPart = new SomeJob {
                                StartTime = gcItem.JobEndAt, EndTime = someJob.EndTime, Type = SomeJobType.Jit
                            };
                            // create gc job
                            SomeJob gcPart = new SomeJob {
                                StartTime = gcItem.JobStartAt, EndTime = gcItem.JobEndAt, Type = SomeJobType.GC
                            };
                            // insert new jobs
                            someJobs.RemoveAt(i);
                            someJobs.Insert(i, secondPart);
                            someJobs.Insert(i, gcPart);
                            someJobs.Insert(i, firstPart);
                            i      += 2;
                            isAdded = true;
                        }
                    }
                }

                if (isAdded == false)
                {
                    // create gc job
                    SomeJob gcJob = new SomeJob {
                        StartTime = gcItem.JobStartAt, EndTime = gcItem.JobEndAt, Type = SomeJobType.GC
                    };
                    int i = GetClosestJob(gcJob, someJobs);
                    if (i == -1) // if not found insert to the end
                    {
                        someJobs.Add(gcJob);
                    }
                    else // insert at index place
                    {
                        someJobs.Insert(i, gcJob);
                    }
                }
            }

            ulong startTime = GlobalOffset;
            ulong step      = 1000000000; // 1 sec
            int   index     = 0;
            List <BJobsPercentage> jpbss = new List <BJobsPercentage>();

            if (someJobs.Count == 0)
            {
                return;
            }

            startTime = someJobs.First().StartTime;
            for (ulong sec = startTime; sec < someJobs.Last().EndTime; sec += step)
            {
                BJobsPercentage jpbs = new BJobsPercentage()
                {
                    Time = sec, BThread = this
                };
                jpbss.Add(jpbs);
                List <SomeJob> jobs = GetJobsBetween(ref index, sec, sec + step, someJobs);
                if (jobs.Count == 0)
                {
                    continue;
                }

                if (jobs.First().StartTime < sec) // check if first job is already have started
                {
                    ulong endTime = jobs.First().EndTime > sec + step ? sec + step : jobs.First().EndTime;
                    switch (jobs.First().Type)
                    {
                    case SomeJobType.GC:
                        jpbs.GC += endTime - sec;
                        break;

                    case SomeJobType.Jit:
                        jpbs.Jit += endTime - sec;
                        break;
                    }
                }
                else
                {
                    ulong endTime = jobs.First().EndTime > sec + step ? sec + step : jobs.First().EndTime;
                    switch (jobs.First().Type)
                    {
                    case SomeJobType.GC:
                        jpbs.GC += endTime - jobs.First().StartTime;
                        break;

                    case SomeJobType.Jit:
                        jpbs.Jit += endTime - jobs.First().StartTime;
                        break;
                    }
                }

                for (int i = 1; i < jobs.Count - 1; i++)
                {
                    SomeJob prev    = jobs[i - 1];
                    SomeJob current = jobs[i];

                    switch (current.Type)
                    {
                    case SomeJobType.GC:
                        jpbs.GC += current.EndTime - current.StartTime;
                        break;

                    case SomeJobType.Jit:
                        jpbs.Jit += current.EndTime - current.StartTime;
                        break;
                    }
                }

                if (jobs.Count > 1 && jobs.Last().EndTime > sec + step) // check if first job is longer than can be
                {
                    switch (jobs.Last().Type)
                    {
                    case SomeJobType.GC:
                        jpbs.GC += sec + step - jobs.Last().StartTime;
                        break;

                    case SomeJobType.Jit:
                        jpbs.Jit += sec + step - jobs.Last().StartTime;
                        break;
                    }
                }
                else if (jobs.Count > 1)
                {
                    switch (jobs.Last().Type)
                    {
                    case SomeJobType.GC:
                    {
                        jpbs.GC += jobs.Last().EndTime - jobs.Last().StartTime;
                        break;
                    }

                    case SomeJobType.Jit:
                    {
                        jpbs.Jit += jobs.Last().EndTime - jobs.Last().StartTime;
                        break;
                    }
                    }
                }
            }

            JobsPercentages = jpbss;
        }
Ejemplo n.º 9
0
    private JobHandle SomeTaskJob()
    {
        var job = new SomeJob();

        return(job.Schedule());
    }