示例#1
0
        internal void Commit()
        {
            if (base.Changed)
            {
                this.MedOrganizerItem.Delete();
                Console.WriteLine(this.Items.Length);
                for (int i = 0; i < this.Items.Length; i++)
                {
                    CEntryItem.EDataType dataType = this.Items[i].DataType;
                    if (dataType != CEntryItem.EDataType.Number)
                    {
                        switch (dataType)
                        {
                        case CEntryItem.EDataType.Description:
                            this.MedOrganizerItem.Description = (this.Items[i].Data as CEntryItem.CData.CTextData).Text;
                            break;

                        case CEntryItem.EDataType.Summary:
                            this.MedOrganizerItem.Summary = (this.Items[i].Data as CEntryItem.CData.CTextData).Text;
                            break;

                        case CEntryItem.EDataType.Location:
                            this.MedOrganizerItem.Location = (this.Items[i].Data as CEntryItem.CData.CTextData).Text;
                            break;

                        default:
                            switch (dataType)
                            {
                            case CEntryItem.EDataType.AlarmTime:
                                this.MedOrganizerItem.SetAudioAlarmTimestamp(2, (this.Items[i].Data as CEntryItem.CData.CTimeData).Time);
                                break;

                            case CEntryItem.EDataType.CompletedTime:
                                this.MedOrganizerItem.SetCompletedTimestamp(1, (this.Items[i].Data as CEntryItem.CData.CTimeData).Time);
                                break;

                            case CEntryItem.EDataType.DueToTime:
                                this.MedOrganizerItem.SetDueToTimestamp(1, (this.Items[i].Data as CEntryItem.CData.CTimeData).Time);
                                break;

                            case CEntryItem.EDataType.EndTime:
                                this.MedOrganizerItem.SetEndTimestamp(1, (this.Items[i].Data as CEntryItem.CData.CTimeData).Time);
                                break;

                            case CEntryItem.EDataType.StartTime:
                                this.MedOrganizerItem.SetStartTimestamp(1, (this.Items[i].Data as CEntryItem.CData.CTimeData).Time);
                                break;
                            }
                            break;
                        }
                    }
                    else
                    {
                        this.MedOrganizerItem.PhoneNumber = (this.Items[i].Data as CEntryItem.CData.CNumberData).Number;
                    }
                }
                this.MedOrganizerItem.Type = (int)(base.Parent as COrganizerEntries).Type;
                this.MedOrganizerItem.Save();
            }
        }
示例#2
0
 public CEntryItem(CItem parent, CEntryItem.EDataType[] supportedTypes) : base(parent)
 {
     if (!(parent is CEntry))
     {
         parent = null;
         throw new Exception("Internal error");
     }
     this.DataType       = CEntryItem.EDataType.Empty;
     this.SupportedTypes = supportedTypes;
 }
示例#3
0
 internal CAddressData(CItem parent, CEntryItem.EDataType type, CEntryItem.CDescriptor entryDescriptor) : base(parent)
 {
     this.StreetMaxLength  = entryDescriptor.MaxDataLengths[CEntryItem.EDataType.Street];
     this.StateMaxLength   = entryDescriptor.MaxDataLengths[CEntryItem.EDataType.State];
     this.CityMaxLength    = entryDescriptor.MaxDataLengths[CEntryItem.EDataType.City];
     this.POBoxMaxLength   = entryDescriptor.MaxDataLengths[CEntryItem.EDataType.POBox];
     this.ZipMaxLength     = entryDescriptor.MaxDataLengths[CEntryItem.EDataType.Zip];
     this.CountryMaxLength = entryDescriptor.MaxDataLengths[CEntryItem.EDataType.Country];
     this.AddrextMaxLength = entryDescriptor.MaxDataLengths[CEntryItem.EDataType.Addrext];
 }
示例#4
0
            public override XmlElement XmlDump(XmlDocument xmlDocument)
            {
                XmlElement xmlElement = base.XmlDump(xmlDocument);

                CEntryItem.EDataType[][] dataTypes = this.DataTypes;
                for (int i = 0; i < dataTypes.Length; i++)
                {
                    CEntryItem.EDataType[] array       = dataTypes[i];
                    XmlElement             xmlElement2 = xmlDocument.CreateElement("item");
                    CEntryItem.EDataType[] array2      = array;
                    for (int j = 0; j < array2.Length; j++)
                    {
                        CEntryItem.EDataType eDataType   = array2[j];
                        XmlElement           xmlElement3 = xmlDocument.CreateElement("data");
                        xmlElement3.SetAttribute("Type", eDataType.ToString());
                        xmlElement3.SetAttribute("MaxLength", this.MaxDataLengths[eDataType].ToString());
                        xmlElement2.AppendChild(xmlElement3);
                    }
                    xmlElement.AppendChild(xmlElement2);
                }
                return(xmlElement);
            }
示例#5
0
 public CEntryItem FindItemThatSupports(CEntryItem.EDataType type)
 {
     return(this.Find((CEntryItem item) => Array.IndexOf <CEntryItem.EDataType>(item.SupportedTypes, type) >= 0));
 }
示例#6
0
 public CEntryItem FindItemByType(CEntryItem.EDataType type)
 {
     return(this.Find((CEntryItem item) => item.DataType == type));
 }
示例#7
0
 public List <CEntryItem> FindItemsByType(CEntryItem.EDataType type)
 {
     return(this.FindAll((CEntryItem item) => item.DataType == type));
 }
示例#8
0
            public CEntryDescriptor(CItem parent, IOrganizer organizer) : base(parent)
            {
                if (!(parent is COrganizerEntries))
                {
                    throw new Exception("Internal error");
                }
                int num = COrganizerEntries.CEntryDescriptor.entryTypes.Length;

                if (organizer.SupportsAudioAlarmTimestamp == 0)
                {
                    num--;
                }
                if (organizer.SupportsCompletedTimestamp == 0)
                {
                    num--;
                }
                if (organizer.SupportsDueToTimestamp == 0)
                {
                    num--;
                }
                if (organizer.SupportsEndTimestamp == 0)
                {
                    num--;
                }
                if (organizer.SupportsStartTimestamp == 0)
                {
                    num--;
                }
                if (organizer.DescriptionCharacters == 0)
                {
                    num--;
                }
                if (organizer.LocationCharacters == 0)
                {
                    num--;
                }
                if (organizer.SummaryCharacters == 0)
                {
                    num--;
                }
                this._MaxDataLengths = new Dictionary <CEntryItem.EDataType, int>();
                this._DataTypes      = new CEntryItem.EDataType[num][];
                int num2 = 0;

                for (int i = 0; i < COrganizerEntries.CEntryDescriptor.entryTypes.Length; i++)
                {
                    bool flag = true;
                    CEntryItem.EDataType eDataType = COrganizerEntries.CEntryDescriptor.entryTypes[i];
                    if (eDataType != CEntryItem.EDataType.Number)
                    {
                        switch (eDataType)
                        {
                        case CEntryItem.EDataType.Description:
                            if (organizer.DescriptionCharacters == 0)
                            {
                                flag = false;
                            }
                            this._MaxDataLengths[COrganizerEntries.CEntryDescriptor.entryTypes[i]] = organizer.DescriptionCharacters;
                            break;

                        case CEntryItem.EDataType.Summary:
                            if (organizer.SummaryCharacters == 0)
                            {
                                flag = false;
                            }
                            this._MaxDataLengths[COrganizerEntries.CEntryDescriptor.entryTypes[i]] = organizer.SummaryCharacters;
                            break;

                        case CEntryItem.EDataType.Location:
                            if (organizer.LocationCharacters == 0)
                            {
                                flag = false;
                            }
                            this._MaxDataLengths[COrganizerEntries.CEntryDescriptor.entryTypes[i]] = organizer.LocationCharacters;
                            break;

                        default:
                            switch (eDataType)
                            {
                            case CEntryItem.EDataType.AlarmTime:
                                flag = (organizer.SupportsAudioAlarmTimestamp != 0);
                                this._MaxDataLengths[COrganizerEntries.CEntryDescriptor.entryTypes[i]] = 65536;
                                break;

                            case CEntryItem.EDataType.CompletedTime:
                                flag = (organizer.SupportsCompletedTimestamp != 0);
                                this._MaxDataLengths[COrganizerEntries.CEntryDescriptor.entryTypes[i]] = 65536;
                                break;

                            case CEntryItem.EDataType.DueToTime:
                                flag = (organizer.SupportsDueToTimestamp != 0);
                                this._MaxDataLengths[COrganizerEntries.CEntryDescriptor.entryTypes[i]] = 65536;
                                break;

                            case CEntryItem.EDataType.EndTime:
                                flag = (organizer.SupportsEndTimestamp != 0);
                                this._MaxDataLengths[COrganizerEntries.CEntryDescriptor.entryTypes[i]] = 65536;
                                break;

                            case CEntryItem.EDataType.StartTime:
                                flag = (organizer.SupportsStartTimestamp != 0);
                                this._MaxDataLengths[COrganizerEntries.CEntryDescriptor.entryTypes[i]] = 65536;
                                break;
                            }
                            break;
                        }
                    }
                    else
                    {
                        this._MaxDataLengths[COrganizerEntries.CEntryDescriptor.entryTypes[i]] = 15;
                    }
                    if (flag)
                    {
                        this._DataTypes[num2] = new CEntryItem.EDataType[1];
                        this._MaxDataLengths[CEntryItem.EDataType.Empty] = 0;
                        this._DataTypes[num2][0] = COrganizerEntries.CEntryDescriptor.entryTypes[i];
                        num2++;
                    }
                }
            }
示例#9
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;
        }
示例#10
0
        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;
        }
示例#11
0
            internal CEntryDescriptor(CItem parent, IPhonebookDescription medPhonebookDescription) : base(parent)
            {
                if (!(parent is CPhonebook))
                {
                    throw new Exception("Internal error");
                }
                this._MaxDataLengths = new Dictionary <CEntryItem.EDataType, int>();
                bool flag = false;

                CEntryItem.EDataType[] array = CPhonebook.CEntryDescriptor.addressTypes;
                for (int i = 0; i < array.Length; i++)
                {
                    CEntryItem.EDataType lType = array[i];
                    int num;
                    medPhonebookDescription.IsTypeSupported((int)lType, out num);
                    if (num != 0)
                    {
                        flag = true;
                    }
                }
                if (flag)
                {
                    CEntryItem.EDataType[] array2 = CPhonebook.CEntryDescriptor.addressItems;
                    for (int j = 0; j < array2.Length; j++)
                    {
                        CEntryItem.EDataType eDataType = array2[j];
                        int value;
                        medPhonebookDescription.GetTypeCharacters((int)eDataType, out value);
                        if (!base.MaxDataLengths.ContainsKey(eDataType))
                        {
                            base.MaxDataLengths[eDataType] = value;
                        }
                    }
                }
                int num2        = 0;
                int groupsCount = medPhonebookDescription.GroupsCount;

                for (int k = 1; k <= groupsCount; k++)
                {
                    num2 += medPhonebookDescription.GetGroupPositions(k);
                }
                bool flag2 = ((CPhonebook)parent).MergedLabels.HasValue && ((CPhonebook)parent).MergedLabels.Value;

                if (!flag2)
                {
                    num2++;
                }
                CEntryItem.EDataType[][] array3 = new CEntryItem.EDataType[num2][];
                int num3 = 0;

                if (!flag2)
                {
                    array3[num3]    = new CEntryItem.EDataType[1];
                    array3[num3][0] = CEntryItem.EDataType.Label;
                    base.MaxDataLengths[CEntryItem.EDataType.Label] = medPhonebookDescription.LabelCharacters;
                    num3++;
                }
                for (int l = 1; l <= groupsCount; l++)
                {
                    int groupPositions = medPhonebookDescription.GetGroupPositions(l);
                    for (int m = 1; m <= groupPositions; m++)
                    {
                        int groupTypes = medPhonebookDescription.GetGroupTypes(l);
                        array3[num3] = new CEntryItem.EDataType[groupTypes];
                        for (int n = 1; n <= groupTypes; n++)
                        {
                            CEntryItem.EDataType groupType = (CEntryItem.EDataType)medPhonebookDescription.GetGroupType(l, n);
                            if (!base.MaxDataLengths.ContainsKey(groupType))
                            {
                                int value2;
                                medPhonebookDescription.GetTypeCharacters((int)groupType, out value2);
                                base.MaxDataLengths[groupType] = value2;
                            }
                            array3[num3][n - 1] = groupType;
                            if (Array.IndexOf <CEntryItem.EDataType>(CPhonebook.CEntryDescriptor.addressItems, groupType) >= 0)
                            {
                                num3--;
                                break;
                            }
                        }
                        num3++;
                    }
                }
                this._DataTypes = new CEntryItem.EDataType[num3][];
                for (int num4 = 0; num4 < num3; num4++)
                {
                    this._DataTypes[num4] = array3[num4];
                }
            }
示例#12
0
 internal CNumberData(CItem parent, CEntryItem.EDataType type, CEntryItem.CDescriptor entryDescriptor) : base(parent)
 {
     this.MaxLength = entryDescriptor.MaxDataLengths[type];
 }
示例#13
0
 internal CTimeData(CItem parent, CEntryItem.EDataType type, CEntryItem.CDescriptor entryDescriptor) : base(parent)
 {
 }