コード例 #1
0
ファイル: COrganizer.cs プロジェクト: yjrui/coffeebean
        public virtual bool Push(CDriver.Progress progress)
        {
            for (int i = 0; i < this.EmptyListsToPush.Length; i++)
            {
                for (int j = 0; j < this.MedOrganizers[i].StreamCount; j++)
                {
                    IOrganizerItem organizerItem = this.MedOrganizers[i].GetStream(j + 1) as IOrganizerItem;
                    organizerItem.GetType();
                }
                foreach (IOrganizerItem current in this.EmptyListsToPush[i])
                {
                    current.Commit();
                }
            }
            if (this.Events != null)
            {
                foreach (COrganizerEntry cOrganizerEntry in this.Events)
                {
                    cOrganizerEntry.Commit();
                }
            }
            if (this.Notes != null)
            {
                foreach (COrganizerEntry cOrganizerEntry2 in this.Notes)
                {
                    cOrganizerEntry2.Commit();
                }
            }
            if (this.Tasks != null)
            {
                foreach (COrganizerEntry cOrganizerEntry3 in this.Tasks)
                {
                    cOrganizerEntry3.Commit();
                }
            }
            int min = 0;
            int max = 1000 / ((this.MedOrganizers.Length > 0) ? this.MedOrganizers.Length : 1);

            for (int k = 0; k < this.MedOrganizers.Length; k++)
            {
                IOrganizer organizer = this.MedOrganizers[k];
                for (int l = 0; l < organizer.StreamCount; l++)
                {
                    IOrganizerItem organizerItem2 = organizer.GetStream(l + 1) as IOrganizerItem;
                    organizerItem2.GetType();
                }
                IOperation operation = organizer.Flush() as IOperation;
                if (!CDriver.OperationToProgress(operation, progress, min, max))
                {
                    return(false);
                }
            }
            return(progress(1000));
        }
コード例 #2
0
ファイル: COrganizerEntries.cs プロジェクト: yjrui/coffeebean
 internal void DeleteEntry(COrganizerEntry entry, int index)
 {
     entry.MedOrganizerItem.Delete();
     (base.Parent as COrganizer).EmptyListsToPush[index].AddLast(entry.MedOrganizerItem);
     for (int i = 0; i < (base.Parent as COrganizer).MedOrganizers[index].StreamCount; i++)
     {
         IOrganizerItem organizerItem = (base.Parent as COrganizer).MedOrganizers[index].GetStream(i + 1) as IOrganizerItem;
         organizerItem.GetType();
     }
     this.Remove(entry);
 }
コード例 #3
0
ファイル: COrganizer.cs プロジェクト: yjrui/coffeebean
        public bool Update(CDriver.Progress progress)
        {
            if (this.Events != null)
            {
                this.Events.Invalidate();
            }
            if (this.Tasks != null)
            {
                this.Tasks.Invalidate();
            }
            if (this.Notes != null)
            {
                this.Notes.Invalidate();
            }
            for (int i = 0; i < this.EmptyListsToPush.Length; i++)
            {
                this.EmptyListsToPush[i].Clear();
                this.EmptyLists[i].Clear();
            }
            int num  = 0;
            int num2 = 1000 / ((this.MedOrganizers.Length > 0) ? this.MedOrganizers.Length : 1);

            for (int j = 0; j < this.MedOrganizers.Length; j++)
            {
                IOrganizer organizer = this.MedOrganizers[j];
                IOperation operation = organizer.Cache() as IOperation;
                if (!CDriver.OperationToProgress(operation, progress, num, num + num2 / 2))
                {
                    return(false);
                }
                int num3;
                try
                {
                    num3 = organizer.StreamCount;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(this.ToString() + "Unable to query StreamCount property [ " + ex.Message + " ]");
                    num3 = 0;
                }
                for (int k = 1; k <= num3; k++)
                {
                    IOrganizerItem organizerItem = (IOrganizerItem)organizer.GetStream(k);
                    if (organizerItem.Type == 1)
                    {
                        this.Events.AddLast(new COrganizerEntry(this.Events, organizerItem, this.Events.EntryDescriptor));
                    }
                    else
                    {
                        if (organizerItem.Type == 3)
                        {
                            this.Notes.AddLast(new COrganizerEntry(this.Notes, organizerItem, this.Notes.EntryDescriptor));
                        }
                        else
                        {
                            if (organizerItem.Type == 2)
                            {
                                this.Tasks.AddLast(new COrganizerEntry(this.Tasks, organizerItem, this.Tasks.EntryDescriptor));
                            }
                            else
                            {
                                this.EmptyLists[j].AddLast(organizerItem);
                            }
                        }
                    }
                    if (!progress(num + num2 * k / num3 / 2 + num2 / 2))
                    {
                        return(false);
                    }
                }
                num += num2;
            }
            return(progress(1000));
        }
コード例 #4
0
ファイル: COrganizerEntry.cs プロジェクト: yjrui/coffeebean
        internal COrganizerEntry(CItem parent, IOrganizerItem medOrganizerItem, CEntryItem.CDescriptor entryDescriptor) : base(parent)
        {
            if (!(parent is COrganizerEntries))
            {
                throw new Exception("Internal error");
            }
            this.EntryDescriptor  = entryDescriptor;
            this.Items            = new CEntryItem[this.EntryDescriptor.DataTypes.Length];
            this.MedOrganizerItem = medOrganizerItem;
            for (int i = 0; i < this.EntryDescriptor.DataTypes.Length; i++)
            {
                CEntryItem.EDataType eDataType = this.EntryDescriptor.DataTypes[i][0];
                this.Items[i]          = new CEntryItem(this, this.EntryDescriptor.DataTypes[i]);
                this.Items[i].DataType = eDataType;
                int num = 1;
                try
                {
                    CEntryItem.EDataType eDataType2 = eDataType;
                    if (eDataType2 != CEntryItem.EDataType.Number)
                    {
                        switch (eDataType2)
                        {
                        case CEntryItem.EDataType.Description:
                            (this.Items[i].Data as CEntryItem.CData.CTextData).Text = this.MedOrganizerItem.Description;
                            if (this.MedOrganizerItem.Description == "")
                            {
                                num = 0;
                            }
                            break;

                        case CEntryItem.EDataType.Summary:
                            (this.Items[i].Data as CEntryItem.CData.CTextData).Text = this.MedOrganizerItem.Summary;
                            if (this.MedOrganizerItem.Summary == "")
                            {
                                num = 0;
                            }
                            break;

                        case CEntryItem.EDataType.Location:
                            (this.Items[i].Data as CEntryItem.CData.CTextData).Text = this.MedOrganizerItem.Location;
                            if (this.MedOrganizerItem.Location == "")
                            {
                                num = 0;
                            }
                            break;

                        default:
                            switch (eDataType2)
                            {
                            case CEntryItem.EDataType.AlarmTime:
                            {
                                int num2;
                                (this.Items[i].Data as CEntryItem.CData.CTimeData).Time = this.MedOrganizerItem.GetAudioAlarmTimestamp(out num2);
                                if (num2 == 0)
                                {
                                    num = 0;
                                }
                                break;
                            }

                            case CEntryItem.EDataType.CompletedTime:
                                (this.Items[i].Data as CEntryItem.CData.CTimeData).Time = this.MedOrganizerItem.GetCompletedTimestamp(out num);
                                break;

                            case CEntryItem.EDataType.DueToTime:
                                (this.Items[i].Data as CEntryItem.CData.CTimeData).Time = this.MedOrganizerItem.GetDueToTimestamp(out num);
                                break;

                            case CEntryItem.EDataType.EndTime:
                                (this.Items[i].Data as CEntryItem.CData.CTimeData).Time = this.MedOrganizerItem.GetEndTimestamp(out num);
                                break;

                            case CEntryItem.EDataType.StartTime:
                                (this.Items[i].Data as CEntryItem.CData.CTimeData).Time = this.MedOrganizerItem.GetStartTimestamp(out num);
                                break;
                            }
                            break;
                        }
                    }
                    else
                    {
                        (this.Items[i].Data as CEntryItem.CData.CNumberData).Number = this.MedOrganizerItem.PhoneNumber;
                        if (this.MedOrganizerItem.PhoneNumber == "")
                        {
                            num = 0;
                        }
                    }
                    if (num == 0)
                    {
                        this.Items[i].DataType = CEntryItem.EDataType.Empty;
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(this.ToString() + " : [ " + ex.Message + " ]");
                    this.Items[i].DataType = CEntryItem.EDataType.Empty;
                }
            }
            this._Changed = false;
        }
コード例 #5
0
ファイル: COrganizerEntry.cs プロジェクト: yjrui/coffeebean
 internal override void Invalidate()
 {
     this.MedOrganizerItem = null;
     base.Invalidate();
 }