/// <summary>
        /// Read a data file downloaded from the FCC Univeral License System advanced search and fill the collection with its data.
        /// </summary>
        /// <param name="filename">Path to downloaded file.</param>
        public void ReadFile(String filename)
        {
            var fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read);

            using (var streamReader = new StreamReader(fileStream, Encoding.UTF8))
            {
                string line;
                while ((line = streamReader.ReadLine()) != null)
                {
                    if (!String.IsNullOrEmpty(line))
                    {
                        string[] tokens = line.Split(new char[] { '|' }, StringSplitOptions.None);
                        if (tokens != null && tokens.Length > 4)
                        {
                            string typeToken = tokens[0];
                            string callSign  = "";
                            if (!String.IsNullOrEmpty(typeToken))
                            {
                                if (typeToken.Equals("HD"))
                                {
                                    callSign = tokens[4];
                                    if (!HD.ContainsKey(callSign))
                                    {
                                        HD.Add(callSign, new TokenCollection(tokens));
                                    }
                                }
                                else if (typeToken.Equals("EN"))
                                {
                                    callSign = tokens[4];
                                    if (!EN.ContainsKey(callSign))
                                    {
                                        EN.Add(callSign, new TokenCollection(tokens));
                                    }
                                }
                                else if (typeToken.Equals("HS"))
                                {
                                    callSign = tokens[3];
                                    Tuple <HistoryRecordAction, String> actionType = GetHistoryActionType(tokens[5]);
                                    HistoryRecord rec = new HistoryRecord()
                                    {
                                        CallSign          = callSign,
                                        LicenseKey        = tokens[1],
                                        Date              = DateTime.ParseExact(tokens[4], "MM/dd/yyyy", CultureInfo.InvariantCulture),
                                        Action            = actionType.Item1,
                                        ActionDescription = actionType.Item2
                                    };
                                    if (!HS.ContainsKey(callSign))
                                    {
                                        List <HistoryRecord> recList = new List <HistoryRecord>();
                                        recList.Add(rec);
                                        HS.Add(callSign, recList);
                                    }
                                    else
                                    {
                                        HS[callSign].Add(rec);
                                    }
                                }
                                else if (typeToken.Equals("AM"))
                                {
                                    callSign = tokens[4];
                                    if (!AM.ContainsKey(callSign))
                                    {
                                        AM.Add(callSign, new TokenCollection(tokens));
                                    }
                                }
                                else if (typeToken.Equals("SC"))
                                {
                                    callSign = tokens[4];
                                    if (!SC.ContainsKey(callSign))
                                    {
                                        SC.Add(callSign, new TokenCollection(tokens));
                                    }
                                }
                                else if (typeToken.Equals("CO"))
                                {
                                    callSign = tokens[4];
                                    if (!CO.ContainsKey(callSign))
                                    {
                                        CO.Add(callSign, new TokenCollection(tokens));
                                    }
                                }
                                else if (typeToken.Equals("LM"))
                                {
                                    callSign = tokens[4];
                                    if (!LM.ContainsKey(callSign))
                                    {
                                        LM.Add(callSign, new TokenCollection(tokens));
                                    }
                                }
                            }
                        }
                    }
                }
            }

            ExtractOperatorRecords();
        }
Exemplo n.º 2
0
        // 버튼 > Save
        void Btn_SaveData_Click(object sender, EventArgs e)
        {
            var D1  = Properties.Settings.Default.saveData1;
            var D2  = Properties.Settings.Default.saveData2;
            var D3  = Properties.Settings.Default.saveData3;
            var D4  = Properties.Settings.Default.saveData4;
            var D5  = Properties.Settings.Default.saveData5;
            var D6  = Properties.Settings.Default.saveData6;
            var D7  = Properties.Settings.Default.saveData7;
            var D8  = Properties.Settings.Default.saveData8;
            var D9  = Properties.Settings.Default.saveData9;
            var D10 = Properties.Settings.Default.saveData10;

            var name = cbo_SaveName.Text;

            var lst1  = lst_L1.Items.Cast <string>().ToList();
            var lst2  = lst_L2.Items.Cast <string>().ToList();
            var lst3  = lst_L3.Items.Cast <string>().ToList();
            var lst4  = lst_L4.Items.Cast <string>().ToList();
            var lst5  = lst_L5.Items.Cast <string>().ToList();
            var lst6  = lst_L5.Items.Cast <string>().ToList();
            var lst7  = lst_L5.Items.Cast <string>().ToList();
            var lst8  = lst_L5.Items.Cast <string>().ToList();
            var lst9  = lst_L5.Items.Cast <string>().ToList();
            var lst10 = lst_L5.Items.Cast <string>().ToList();

            Properties.Settings.Default.saveData1  = setSaveData(D1, name, lst1);
            Properties.Settings.Default.saveData2  = setSaveData(D2, name, lst2);
            Properties.Settings.Default.saveData3  = setSaveData(D3, name, lst3);
            Properties.Settings.Default.saveData4  = setSaveData(D4, name, lst4);
            Properties.Settings.Default.saveData5  = setSaveData(D5, name, lst5);
            Properties.Settings.Default.saveData6  = setSaveData(D6, name, lst6);
            Properties.Settings.Default.saveData7  = setSaveData(D7, name, lst7);
            Properties.Settings.Default.saveData8  = setSaveData(D8, name, lst8);
            Properties.Settings.Default.saveData9  = setSaveData(D9, name, lst9);
            Properties.Settings.Default.saveData10 = setSaveData(D10, name, lst10);

            Properties.Settings.Default.Save();

            StringCollection setSaveData(StringCollection SC, string Name, List <string> NewData)
            {
                var Return = new StringCollection();

                var matchedData = SC.Cast <string>().ToList().Where(a => a.Split(':').First() == Name);

                if (matchedData.Any())
                {
                    SC.Remove(matchedData.First());

                    string newData = Name + ":";

                    for (int i = 0; i < NewData.Count; i++)
                    {
                        newData += NewData[i] + ":";
                    }

                    SC.Add(newData);
                }

                Return = SC;

                return(Return);
            }
        }