예제 #1
0
        public static DayOfWeek GetDayOfWeekByBit(eBitDayOfWeek bitDayOfWeek)
        {
            switch (bitDayOfWeek)
            {
            case eBitDayOfWeek.Monday:
                return(DayOfWeek.Monday);

            case eBitDayOfWeek.Tuesday:
                return(DayOfWeek.Tuesday);

            case eBitDayOfWeek.Wednesday:
                return(DayOfWeek.Wednesday);

            case eBitDayOfWeek.Thursday:
                return(DayOfWeek.Thursday);

            case eBitDayOfWeek.Friday:
                return(DayOfWeek.Friday);

            case eBitDayOfWeek.Saturday:
                return(DayOfWeek.Saturday);

            case eBitDayOfWeek.Sunday:
                return(DayOfWeek.Sunday);
            }
            throw new Exception("Illegal day of week.");
        }
        /// <summary>
        /// Serializes this instance.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        public EntityObjectHierarchy Serialize <T>()
        {
            CalendarEventRecurrenceEntity recurrenceEntity = new CalendarEventRecurrenceEntity();

            recurrenceEntity.DayOfMonth = RPattern.ByMonthDay.Count != 0 ? RPattern.ByMonthDay[0] : 0;
            eBitDayOfWeek dayOfWeekMask = eBitDayOfWeek.Unknown;
            eInstanceType instance      = eInstanceType.InstanceFirst;

            //Primary key
            McRecurrencePattern mcRecurrencePattern = RPattern as McRecurrencePattern;

            if (mcRecurrencePattern != null)
            {
                recurrenceEntity.PrimaryKeyId = mcRecurrencePattern.MetaObjectId;
            }
            //Copy RPATTERN Parameters to entity property
            foreach (string paramName in RPattern.Parameters.Keys)
            {
                iCal2EntityMapping.MappingResult mapRes = iCal2EntityMapping.iCalProp2EntityProp <T>(paramName);
                if (mapRes != null && RPattern.Parameters.ContainsKey(paramName))
                {
                    foreach (string paramValue in ((Parameter)RPattern.Parameters[paramName]).Values)
                    {
                        recurrenceEntity[mapRes.Name] = EntityPropConverter.ToEntityProperty(mapRes.ValueType, paramValue);
                    }
                }
            }

            foreach (DaySpecifier daySpec in RPattern.ByDay)
            {
                if (daySpec.Num != int.MinValue)
                {
                    instance = (eInstanceType)daySpec.Num;
                }
                switch (daySpec.DayOfWeek)
                {
                case DayOfWeek.Sunday:
                    dayOfWeekMask |= eBitDayOfWeek.Sunday;
                    break;

                case DayOfWeek.Friday:
                    dayOfWeekMask |= eBitDayOfWeek.Friday;
                    break;

                case DayOfWeek.Monday:
                    dayOfWeekMask |= eBitDayOfWeek.Monday;
                    break;

                case DayOfWeek.Saturday:
                    dayOfWeekMask |= eBitDayOfWeek.Saturday;
                    break;

                case DayOfWeek.Thursday:
                    dayOfWeekMask |= eBitDayOfWeek.Thursday;
                    break;

                case DayOfWeek.Tuesday:
                    dayOfWeekMask |= eBitDayOfWeek.Tuesday;
                    break;

                case DayOfWeek.Wednesday:
                    dayOfWeekMask |= eBitDayOfWeek.Wednesday;
                    break;
                }
            }
            recurrenceEntity.DayOfWeekMask = (int)dayOfWeekMask;
            recurrenceEntity.Instance      = (int)instance;
            recurrenceEntity.Interval      = RPattern.Interval;

            eRecurrenceType recType = eRecurrenceType.RecursDaily;

            if (RPattern.Frequency == FrequencyType.Daily)
            {
                recType = eRecurrenceType.RecursDaily;
            }
            else if (RPattern.Frequency == FrequencyType.Weekly)
            {
                recType = eRecurrenceType.RecursWeekly;
            }
            else if (RPattern.Frequency == FrequencyType.Yearly)
            {
                recType = eRecurrenceType.RecursYearly;
            }
            //TODO: MOTH YEAR NTLR
            recurrenceEntity.RecurrenceType = (int)recType;
            recurrenceEntity.MonthOfYear    = RPattern.ByMonth.Count != 0 ? RPattern.ByMonth[0] : 0;
            if (RPattern.Until != null)
            {
                recurrenceEntity.PatternEndDate = DateTime.SpecifyKind(RPattern.Until.Value, DateTimeKind.Local);
            }
            recurrenceEntity.Occurrences = RPattern.Count == int.MinValue ? 0 : RPattern.Count;

            return(new EntityObjectHierarchy(recurrenceEntity));
        }
예제 #3
0
 public static DayOfWeek GetDayOfWeekByBit(eBitDayOfWeek bitDayOfWeek)
 {
     switch (bitDayOfWeek)
     {
         case eBitDayOfWeek.Monday:
             return DayOfWeek.Monday;
         case eBitDayOfWeek.Tuesday:
             return DayOfWeek.Tuesday;
         case eBitDayOfWeek.Wednesday:
             return DayOfWeek.Wednesday;
         case eBitDayOfWeek.Thursday:
             return DayOfWeek.Thursday;
         case eBitDayOfWeek.Friday:
             return DayOfWeek.Friday;
         case eBitDayOfWeek.Saturday:
             return DayOfWeek.Saturday;
         case eBitDayOfWeek.Sunday:
             return DayOfWeek.Sunday;
     }
     throw new Exception("Illegal day of week.");
 }
예제 #4
0
        /// <summary>
        /// Transfers the property2 outlook property.
        /// </summary>
        /// <param name="propertyName">Name of the property.</param>
        /// <param name="data">The data.</param>
        private void TransferProperty2OutlookProperty(string propertyName, SyncTransferData data)
        {
            object propValue = data.Properties[propertyName];

            if (propValue == null)
            {
                return;
            }

            if (propertyName == RecurrencePatternTransferData.FieldRecurrenceType)
            {
                eRecurrenceType recType = (eRecurrenceType)(int)propValue;
                switch (recType)
                {
                case eRecurrenceType.RecursDaily:
                    RPattern.RecurrenceType = Outlook.OlRecurrenceType.olRecursDaily;
                    break;

                case eRecurrenceType.RecursMonthly:
                    RPattern.RecurrenceType = Outlook.OlRecurrenceType.olRecursMonthly;
                    break;

                case eRecurrenceType.RecursMonthNth:
                    RPattern.RecurrenceType = Outlook.OlRecurrenceType.olRecursMonthNth;
                    break;

                case eRecurrenceType.RecursWeekly:
                    RPattern.RecurrenceType = Outlook.OlRecurrenceType.olRecursWeekly;
                    break;

                case eRecurrenceType.RecursYearly:
                    RPattern.RecurrenceType = Outlook.OlRecurrenceType.olRecursYearly;
                    break;

                case eRecurrenceType.RecursYearNth:
                    RPattern.RecurrenceType = Outlook.OlRecurrenceType.olRecursYearNth;
                    break;
                }
            }
            else if (propertyName == RecurrencePatternTransferData.FieldDayOfWeekMask)
            {
                eBitDayOfWeek dayOfWeekMask = (eBitDayOfWeek)(int)propValue;
                RPattern.DayOfWeekMask = (Outlook.OlDaysOfWeek)(int) dayOfWeekMask;
            }
            else if (propertyName == RecurrencePatternTransferData.FieldPatternEndDate)
            {
                RPattern.PatternEndDate = (DateTime)propValue;
            }
            else if (propertyName == RecurrencePatternTransferData.FieldDayOfMonth)
            {
                RPattern.DayOfMonth = (int)propValue;
            }
            else if (propertyName == RecurrencePatternTransferData.FieldInstance)
            {
                RPattern.Instance = (int)propValue;
            }
            else if (propertyName == RecurrencePatternTransferData.FieldInterval)
            {
                RPattern.Interval = (int)propValue;
            }
            else if (propertyName == RecurrencePatternTransferData.FieldMonthOfYear)
            {
                RPattern.MonthOfYear = (int)propValue;
            }
            else if (propertyName == RecurrencePatternTransferData.FieldOccurrences)
            {
                RPattern.Occurrences = (int)propValue;
            }
        }