void RequestToEmployee(IList <Employee> employee, IList <Request> requests, EmployeePositions position, int waitingTime)
        {
            List <Request> subRequests = new List <Request>();

            if (requests.Count > 0 && waitingTime > 0)
            {
                subRequests = requests.Where(x => (DateTime.Now - x.CreatedDate).Seconds > waitingTime).ToList();
            }

            if (subRequests.Count > 0)
            {
                List <Employee> employees = employee.Where(x => x.PositionId == (Int32)position).ToList();
                if (employees != null && employees.Count > 0)
                {
                    foreach (Request request in subRequests)
                    {
                        Employee _employee = employees.FirstOrDefault();
                        if (_employee != null)
                        {
                            _employee.RequestId = request.Id;
                            DB.Employees.Update(_employee);
                            employees.Remove(_employee);

                            request.StateId = (Int32)RequestStates.Processing;
                            DB.Requests.Update(request);
                            requests.Remove(request);
                        }
                        else
                        {
                            break;
                        }
                    }
                }
            }
        }
Esempio n. 2
0
        public void AddPosition(Position position, DateTime date)
        {
            if (HasPosition(position))
            {
                throw new DuplicateInCollectionException(BusinessObjectEnum.Position);
            }

            EmployeePositions.Add(new EmployeePosition
            {
                Position       = position,
                AssignmentDate = date
            });
        }