Example #1
0
        /// <summary>
        /// Feltétel kiértékelése.
        /// </summary>
        /// <param name="proxy">A hallgatót és kurzusokat összekötő proxy.</param>
        /// <returns>A kiértékelés eredménye.</returns>
        public Result Evaluate(StudentCourseProxy proxy)
        {
            Course course = proxy.Check(this.Code);

            if (course == null)
            {
                // Ha nem volt ilyen kurzusa
                return(new Result(this.LongName, false));
            }
            else
            {
                if (this.Signature || !course.HasCompleted || (this.Exclusive && !proxy.Lock(this.Code)))
                {
                    // Ha volt ilyen kurzusa, és
                    // - aláírás kell csak belőle
                    // - nem teljesítette
                    // - kizárás miatt nem használható
                    // Ez az eredmény nem módosítja az átlagot.
                    return(new Result(this.LongName, this.Signature ? course.HasSignature : false));
                }
                else
                {
                    // Ha a kurzus használható és teljesített,
                    // az eredmény módosítja az átlagot.
                    return(new Result(course, !proxy.Use(this.Code)));
                }
            }
        }
Example #2
0
 /// <summary>
 /// A sorbarendezéshez a kreditsúlyozott osztályzatot használjuk. Az aláírás értéke, ahogy a nem
 /// teljesített tárgyé is, nulla. A kizárásos tárgyak súlyozása negatív.
 /// </summary>
 /// <param name="proxy">A hallgatókat kurzusokkal összekötő proxy.</param>
 /// <returns>Kreditsúlyozott átlag mint rendezőszám. [?]</returns>
 public double Order(StudentCourseProxy proxy)
 {
     if (!this.Signature)
     {
         Course course = proxy.Check(this.Code);
         if (course != null && course.HasCompleted)
         {
             return(course.Credit * course.Grade + (this.Exclusive ? -100 : 0));
         }
     }
     return(0);
 }