Ejemplo n.º 1
0
        public async Task <ActionResult <WorkerHoliday> > PostWorkerHoliday(WorkerHoliday workerHoliday)
        {
            IsPossibleAddNewHoliday isPossibleAdd = new IsPossibleAddNewHoliday();

            if (isPossibleAdd.HolidayCalc(workerHoliday) == false)
            {
                return(BadRequest());
            }
            isPossibleAdd = null; // обрываем все ссылки на объект, на который ссылался dateRecycle
            FreeMem.CollectMethod();

            _context.WorkerHolidays.Add(workerHoliday);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetWorkerHoliday", new { id = workerHoliday.PMId }, workerHoliday));
        }
Ejemplo n.º 2
0
        //Проверяем по алгоритму, чтобы уточнить, не превысилось ли кол-во сотрудников
        //отправленных в отпуск, если метод даст true, значит лимит не превысился
        private bool IsPossibleToSendToHoliday(WorkerHoliday worker)
        {
            bool res = false;

            switch (worker.Position)
            {
            case PositionsStrings.QA:
                if (getList.Positions.Dev == 0 && getList.Positions.Selfself == 0)
                {
                    if (getList.Positions.QA < 3)
                    {
                        res = true;
                    }
                    else
                    {
                        res = false;
                    }
                }
                else
                {
                    if (getList.Positions.QA < 1)
                    {
                        res = true;
                    }
                    else
                    {
                        res = false;
                    }
                }

                break;

            case PositionsStrings.Dev:
                if (getList.Positions.TL == 0 && getList.Positions.Selfself == 0)
                {
                    if (getList.Positions.QA < 2)
                    {
                        if (getList.Positions.Dev < 2)
                        {
                            res = true;
                        }
                        else
                        {
                            res = false;
                        }
                    }
                    else
                    {
                        if (getList.Positions.Dev == 0)
                        {
                            res = true;
                        }
                        else
                        {
                            res = false;
                        }
                    }
                }
                else
                {
                    res = false;
                }
                break;

            case PositionsStrings.TL:
                if (getList.Positions.Dev == 0 && getList.Positions.Selfself == 0)
                {
                    if (getList.Positions.TL < 1)
                    {
                        res = true;
                    }
                    else
                    {
                        res = false;
                    }
                }
                else
                {
                    res = false;
                }
                break;

            default: break;
            }

            return(res);
        }