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; } } } } }
public void AddPosition(Position position, DateTime date) { if (HasPosition(position)) { throw new DuplicateInCollectionException(BusinessObjectEnum.Position); } EmployeePositions.Add(new EmployeePosition { Position = position, AssignmentDate = date }); }