Exemple #1
0
        /// <summary>
        /// برسی یکسان بودن نمونه جاری با نمونه ورودی
        /// </summary>
        /// <param name="obj">نمونه وردی</param>
        /// <returns>نتیجه برسی</returns>
        public override bool Equals(object obj)
        {
            bool areEqual = true;

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

            if (!(obj is WorkSchedule))
            {
                return(false);
            }

            WorkSchedule a = this;
            WorkSchedule b = obj as WorkSchedule;


            for (int i = 0; i < 24; i++)
            {
                areEqual &= a.m_daysInWeek[DayOfWeek.Saturday][i] == b.m_daysInWeek[DayOfWeek.Saturday][i];
                areEqual &= a.m_daysInWeek[DayOfWeek.Sunday][i] == b.m_daysInWeek[DayOfWeek.Sunday][i];
                areEqual &= a.m_daysInWeek[DayOfWeek.Monday][i] == b.m_daysInWeek[DayOfWeek.Monday][i];
                areEqual &= a.m_daysInWeek[DayOfWeek.Tuesday][i] == b.m_daysInWeek[DayOfWeek.Tuesday][i];
                areEqual &= a.m_daysInWeek[DayOfWeek.Wednesday][i] == b.m_daysInWeek[DayOfWeek.Wednesday][i];
                areEqual &= a.m_daysInWeek[DayOfWeek.Thursday][i] == b.m_daysInWeek[DayOfWeek.Thursday][i];
                areEqual &= a.m_daysInWeek[DayOfWeek.Friday][i] == b.m_daysInWeek[DayOfWeek.Friday][i];
            }

            return(areEqual);
        }
Exemple #2
0
        /// <summary>
        /// تبدیل رشته ورودی به یک WorkSchedule
        /// </summary>
        /// <param name="s">رشته ورودی</param>
        /// <exception cref="InvalidFormatException" >فرمت نامعتبر است</exception>
        /// <exception cref="ArgumentNullException" >ورودی خالی داده شده</exception>
        /// <returns>workschedule</returns>
        public static WorkSchedule Parse(string s)
        {
            ///[Preparing for parse]
            if (!Validator.IsMatch(s, RegExPatterns.WorkSchedule, System.Text.RegularExpressions.RegexOptions.IgnoreCase))
            {
                throw new InvalidFormatException();
            }

            WorkSchedule workschedule = new WorkSchedule();

            string[] daysInWeek = s.Split('-');
            ///[Preparing for parse]
            int i = 0;
            ///[Converting each day value from hexadecimal to binary]
            Dictionary <DayOfWeek, BitArray> temp = new Dictionary <DayOfWeek, BitArray>(workschedule.m_daysInWeek);

            foreach (var weekDay in workschedule.m_daysInWeek.Keys)
            {
                string hoursInDay = Convert.ToString(Convert.ToInt32(daysInWeek[i], 16), 2).PadLeft(24, '0');
                temp[weekDay] = convertStringToBitarray(hoursInDay);
                i++;
            }
            workschedule.m_daysInWeek = temp;
            return(workschedule);
            ///[Converting each day value from hexadecimal to binary]
        }
Exemple #3
0
 /// <summary>
 /// ایجاد یک کپی کامل از نمونه جاری
 /// </summary>
 /// <returns>نمونه کپی شده</returns>
 public object Clone()
 {
     return(WorkSchedule.Parse(this.serialize()));
 }