public bool Schedule(ServiceRequest sr)
        {
            TechnicianController techCtr = new TechnicianController();

            List <Package>    packages = sr.ServiceContract.Packages;
            List <Technician> techs    = techCtr.Read();

            Technician     techMin = null;
            Service        serMin  = null;
            RequestAgent   reqAgent;
            List <Service> skills;

            foreach (Package i in packages)
            {
                foreach (Technician j in techs)
                {
                    skills = j.Skills;

                    foreach (Service k in skills)
                    {
                        if (k.Equals(i.Service))
                        {
                            int queueDuration    = GetQueueDuration(j);
                            int queueDurationMin = GetQueueDuration(j);
                            if (techMin != null)
                            {
                                queueDurationMin = GetQueueDuration(techMin);
                            }

                            if (queueDuration <= queueDurationMin)
                            {
                                techMin = j;
                                serMin  = k;
                            }
                        }
                    }
                }

                if (techMin == null)
                {
                    return(false);
                }

                techMin.EmploymentStatus = "Working";
                techCtr.Update(techMin);
                reqAgent = new RequestAgent(serMin, techMin);
                rqCtr.Add(reqAgent, sr);

                return(true);
            }

            return(false);
        }