Ejemplo n.º 1
0
        public virtual bool Update(CDriver.Progress progress)
        {
            this.InvalidateChildren();
            IOperation operation = this.MedPhonebook.Cache() as IOperation;

            if (!CDriver.OperationToProgress(operation, progress, 0, 500))
            {
                return(false);
            }
            int num = 0;

            try
            {
                num = this.MedPhonebook.StreamCount;
            }
            catch (Exception ex)
            {
                Console.WriteLine(this.ToString() + "Unable to query StreamCount property [ " + ex.Message + " ]");
                return(true);
            }
            for (int i = 1; i <= num; i++)
            {
                IPhonebookItem phonebookItem = (IPhonebookItem)this.MedPhonebook.GetStream(i);
                if (phonebookItem.Empty == 0)
                {
                    base.AddLast(new CPhonebookEntry(this, phonebookItem));
                }
                else
                {
                    this.EmptyList.AddFirst(phonebookItem);
                }
                if (!progress(1000 * i / num / 2 + 500))
                {
                    return(false);
                }
            }
            return(progress(1000));
        }
Ejemplo n.º 2
0
 internal override void Invalidate()
 {
     this.MedPhonebookItem = null;
     base.Invalidate();
 }
Ejemplo n.º 3
0
        internal CPhonebookEntry(CItem parent, IPhonebookItem medPhonebookItem) : base(parent)
        {
            if (!(parent is CPhonebookEntries))
            {
                throw new Exception("Internal error");
            }
            this.EntryDescriptor  = ((CPhonebook)base.Parent.Parent).EntryDescriptor;
            this.MedPhonebookItem = medPhonebookItem;
            this.Items            = new CEntryItem[this.EntryDescriptor.DataTypes.Length];
            for (int i = 0; i < this.Items.Length; i++)
            {
                this.Items[i] = new CEntryItem(this, this.EntryDescriptor.DataTypes[i]);
            }
            if (!((CPhonebook)base.Parent.Parent).MergedLabels.HasValue || !((CPhonebook)base.Parent.Parent).MergedLabels.Value)
            {
                for (int j = 0; j < this.EntryDescriptor.DataTypes.Length; j++)
                {
                    if (this.Items[j].DataType == CEntryItem.EDataType.Empty && Array.IndexOf <CEntryItem.EDataType>(this.EntryDescriptor.DataTypes[j], CEntryItem.EDataType.Label) >= 0)
                    {
                        this.Items[j].DataType = CEntryItem.EDataType.Label;
                        if (this.Items[j].Data is CEntryItem.CData.CTextData)
                        {
                            CEntryItem.CData.CTextData cTextData = (CEntryItem.CData.CTextData) this.Items[j].Data;
                            cTextData._Text = this.MedPhonebookItem.Label;
                        }
                    }
                }
            }
            int itemCount = this.MedPhonebookItem.ItemCount;

            for (int k = 1; k <= itemCount; k++)
            {
                CEntryItem.EDataType itemType = (CEntryItem.EDataType) this.MedPhonebookItem.GetItemType(k);
                int l = 0;
                while (l < this.EntryDescriptor.DataTypes.Length)
                {
                    if (this.Items[l].DataType == CEntryItem.EDataType.Empty && Array.IndexOf <CEntryItem.EDataType>(this.EntryDescriptor.DataTypes[l], itemType) >= 0)
                    {
                        this.Items[l].DataType = itemType;
                        if (this.Items[l].Data is CEntryItem.CData.CAddressData)
                        {
                            CEntryItem.CData.CAddressData cAddressData     = (CEntryItem.CData.CAddressData) this.Items[l].Data;
                            IPhonebookAddress             phonebookAddress = (IPhonebookAddress)this.MedPhonebookItem.GetItemAddress(k);
                            cAddressData._Addrext = phonebookAddress.GetText(531);
                            cAddressData._Street  = phonebookAddress.GetText(527);
                            cAddressData._City    = phonebookAddress.GetText(523);
                            cAddressData._Country = phonebookAddress.GetText(530);
                            cAddressData._POBox   = phonebookAddress.GetText(527);
                            cAddressData._State   = phonebookAddress.GetText(524);
                            cAddressData._Zip     = phonebookAddress.GetText(525);
                        }
                        if (this.Items[l].Data is CEntryItem.CData.CTextData)
                        {
                            CEntryItem.CData.CTextData cTextData2 = (CEntryItem.CData.CTextData) this.Items[l].Data;
                            cTextData2._Text = this.MedPhonebookItem.GetItemText(k);
                        }
                        if (this.Items[l].Data is CEntryItem.CData.CNumberData)
                        {
                            CEntryItem.CData.CNumberData cNumberData = (CEntryItem.CData.CNumberData) this.Items[l].Data;
                            cNumberData._Number = this.MedPhonebookItem.GetItemText(k);
                        }
                        if (!(this.Items[l].Data is CEntryItem.CData.CTimeData))
                        {
                            break;
                        }
                        CEntryItem.CData.CTimeData cTimeData = (CEntryItem.CData.CTimeData) this.Items[l].Data;
                        int num;
                        cTimeData._Time = this.MedPhonebookItem.GetItemTimestamp(k, out num);
                        if (num == 0)
                        {
                            this.Items[l].DataType = CEntryItem.EDataType.Empty;
                            break;
                        }
                        break;
                    }
                    else
                    {
                        l++;
                    }
                }
            }
            this._Changed = false;
        }