Example #1
0
        public async Task <IHttpActionResult> PutQSO(int id, QSO qSO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != qSO.ID)
            {
                return(BadRequest());
            }

            db.Entry(qSO).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!QSOExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Example #2
0
        public void Update(QSO qso)
        {
            if (con != null && con.State == System.Data.ConnectionState.Open)
            {
                SQLiteCommand insertSQL = new SQLiteCommand("UPDATE qso SET my_callsign = @my_callsign ,my_square = @my_square,frequency = @frequency,band = @band,dx_callsign = @dx_callsign,rst_rcvd = @rst_rcvd,rst_sent = @rst_sent,date = @date,time = @time,mode = @mode,exchange = @exchange,comment = @comment,name = @name,country = @country,prop_mode = @prop_mode,sat_name = @sat_name WHERE id = @id", con);
                insertSQL.Parameters.Add(new SQLiteParameter("@my_callsign", qso.MyCall));
                insertSQL.Parameters.Add(new SQLiteParameter("@my_square", qso.STX));
                insertSQL.Parameters.Add(new SQLiteParameter("@frequency", qso.Freq));
                insertSQL.Parameters.Add(new SQLiteParameter("@band", qso.Band));
                insertSQL.Parameters.Add(new SQLiteParameter("@dx_callsign", qso.DXCall));
                insertSQL.Parameters.Add(new SQLiteParameter("@rst_rcvd", qso.RST_RCVD));
                insertSQL.Parameters.Add(new SQLiteParameter("@rst_sent", qso.RST_SENT));
                insertSQL.Parameters.Add(new SQLiteParameter("@date", qso.Date));
                insertSQL.Parameters.Add(new SQLiteParameter("@time", qso.Time));
                insertSQL.Parameters.Add(new SQLiteParameter("@mode", qso.Mode));
                insertSQL.Parameters.Add(new SQLiteParameter("@exchange", qso.SRX));
                insertSQL.Parameters.Add(new SQLiteParameter("@comment", qso.Comment));
                insertSQL.Parameters.Add(new SQLiteParameter("@name", qso.Name));
                insertSQL.Parameters.Add(new SQLiteParameter("@country", qso.Country));
                insertSQL.Parameters.Add(new SQLiteParameter("@prop_mode", qso.PROP_MODE));
                insertSQL.Parameters.Add(new SQLiteParameter("@sat_name", qso.SAT_NAME));
                insertSQL.Parameters.Add(new SQLiteParameter("@id", qso.id));

                try
                {
                    insertSQL.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }
        }
Example #3
0
 public QSO Insert(QSO qso)
 {
     if (con != null && con.State == System.Data.ConnectionState.Open)
     {
         SQLiteCommand insertSQL = new SQLiteCommand("INSERT INTO qso (my_callsign,my_square,frequency,band,dx_callsign,rst_rcvd,rst_sent,date,time,mode,exchange,comment,name,country,prop_mode,sat_name) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", con);
         insertSQL.Parameters.Add(new SQLiteParameter("my_callsign", qso.MyCall));
         insertSQL.Parameters.Add(new SQLiteParameter("my_square", qso.STX));
         insertSQL.Parameters.Add(new SQLiteParameter("frequency", qso.Freq));
         insertSQL.Parameters.Add(new SQLiteParameter("band", qso.Band));
         insertSQL.Parameters.Add(new SQLiteParameter("dx_callsign", qso.DXCall));
         insertSQL.Parameters.Add(new SQLiteParameter("rst_rcvd", qso.RST_RCVD));
         insertSQL.Parameters.Add(new SQLiteParameter("rst_sent", qso.RST_SENT));
         insertSQL.Parameters.Add(new SQLiteParameter("date", qso.Date));
         insertSQL.Parameters.Add(new SQLiteParameter("time", qso.Time));
         insertSQL.Parameters.Add(new SQLiteParameter("mode", qso.Mode));
         insertSQL.Parameters.Add(new SQLiteParameter("exchange", qso.SRX));
         insertSQL.Parameters.Add(new SQLiteParameter("comment", qso.Comment));
         insertSQL.Parameters.Add(new SQLiteParameter("name", qso.Name));
         insertSQL.Parameters.Add(new SQLiteParameter("country", qso.Country));
         insertSQL.Parameters.Add(new SQLiteParameter("prop_mode", qso.PROP_MODE));
         insertSQL.Parameters.Add(new SQLiteParameter("sat_name", qso.SAT_NAME));
         try
         {
             insertSQL.ExecuteNonQuery();
             ObservableCollection <QSO> top1 = GetTopQSOs(1);
             return(top1.FirstOrDefault());
         }
         catch (Exception ex)
         {
             throw new Exception(ex.Message);
         }
     }
     return(null);
 }
Example #4
0
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            QSO qSO = await db.QSOs.FindAsync(id);

            db.QSOs.Remove(qSO);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
Example #5
0
        public async Task <IHttpActionResult> GetQSO(int id)
        {
            QSO qSO = await db.QSOs.FindAsync(id);

            if (qSO == null)
            {
                return(NotFound());
            }

            return(Ok(qSO));
        }
Example #6
0
        public async Task <IHttpActionResult> PostQSO(QSO qSO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.QSOs.Add(qSO);
            await db.SaveChangesAsync();

            return(CreatedAtRoute("DefaultApi", new { id = qSO.ID }, qSO));
        }
Example #7
0
        public async Task <IHttpActionResult> DeleteQSO(int id)
        {
            QSO qSO = await db.QSOs.FindAsync(id);

            if (qSO == null)
            {
                return(NotFound());
            }

            db.QSOs.Remove(qSO);
            await db.SaveChangesAsync();

            return(Ok(qSO));
        }
Example #8
0
        public async Task <ActionResult> Edit([Bind(Include = "ID,Note,ContactID,StationID,CallSignID,FrequencyID")] QSO qSO)
        {
            if (ModelState.IsValid)
            {
                db.Entry(qSO).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            ViewBag.ContactID   = new SelectList(db.Contacts, "ID", "Name", qSO.ContactID);
            ViewBag.FrequencyID = new SelectList(db.Frequencies, "ID", "Name", qSO.FrequencyID);

            return(View(qSO));
        }
Example #9
0
        // GET: QSOs/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            QSO qSO = await db.QSOs.FindAsync(id);

            if (qSO == null)
            {
                return(HttpNotFound());
            }
            return(View(qSO));
        }
Example #10
0
        public async Task <ActionResult> Create([Bind(Include = "ID,Note,ContactID,StationID,CallSignID,FrequencyID")] QSO qSO)
        {
            if (ModelState.IsValid)
            {
                db.QSOs.Add(qSO);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            ViewBag.CallSignID  = new SelectList(db.CallSigns, "ID", "Name");
            ViewBag.ContactID   = new SelectList(db.Contacts, "ID", "Name");
            ViewBag.FrequencyID = new SelectList(db.Frequencies, "ID", "Name");
            ViewBag.StationID   = new SelectList(db.Stations, "ID", "Note");
            return(View(qSO));
        }
Example #11
0
        private void LogBtnClick(object sender, RoutedEventArgs e)
        {
            if (callsignTxt.Text == string.Empty)
            {
                MessageBox.Show("Please enter a callsign", "Enter Callsign", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return;
            }

            if (IsValidTime(timeOnTxt.Text) == false || IsValidDate(dateOnTxt.Text) == false)
            {
                return;
            }

            if (IsValidTime(timeOffTxt.Text) == false || IsValidDate(dateOffTxt.Text) == false)
            {
                return;
            }

            QSO contact = new QSO()
            {
                Callsign    = callsignTxt.Text,
                Name        = nameTxt.Text,
                Country     = countryTxt.Text,
                State       = stateTxt.Text,
                County      = countyTxt.Text,
                City        = cityTxt.Text,
                GridSquare  = gridSquareTxt.Text,
                Band        = bandTxt.Text,
                Mode        = modeTxt.Text,
                Frequency   = frequencyTxt.Text,
                DateTimeOn  = GetDateTime(timeOnTxt.Text, dateOnTxt.Text),
                DateTimeOff = GetDateTime(timeOffTxt.Text, dateOffTxt.Text),

                Operator     = _operator.Operator,
                MyName       = _operator.MyName,
                MyCountry    = _operator.MyCountry,
                MyState      = _operator.MyState,
                MyCounty     = _operator.MyCounty,
                MyCity       = _operator.MyCity,
                MyGridSquare = _operator.MyGridSquare
            };

            _qsoLog.InsertQSO(contact);
            qsoGrid.Items.Refresh();
            ClearUIFields();
        }
Example #12
0
        private bool IsValidDate(QSO q)
        {
            DateTime dateValue;
            bool     result = DateTime.TryParseExact(q.Date, "yyyyMMdd HHmmss", new CultureInfo("en-US"), DateTimeStyles.AllowWhiteSpaces, out dateValue);

            if (result)
            {
                bool isValid = dateValue >= new DateTime(2020, 04, 17, 21, 00, 00) && dateValue < new DateTime(2020, 04, 18, 21, 00, 00);
                return(isValid);
            }
            result = DateTime.TryParseExact(q.Date, "yyyyMMdd HHmm", new CultureInfo("en-US"), DateTimeStyles.AllowWhiteSpaces, out dateValue);
            if (result)
            {
                bool isValid = dateValue >= new DateTime(2020, 04, 17, 21, 00, 00) && dateValue < new DateTime(2020, 04, 18, 21, 00, 00);
                return(isValid);
            }
            return(false);
        }
Example #13
0
        public void WriteQSO(QSO qso)
        {
            // TODO Remove the null check. After the QSO class is updated to initialize its string properties to empty we will not have to do the double check.

            // Operator info.
            if (!(qso.Callsign == string.Empty))
                _streamer.WriteLine(string.Format("<CALL:{0}>{1}", qso.Callsign.Length, qso.Callsign));

            if (!(qso.Name == string.Empty))
                _streamer.WriteLine(string.Format("<NAME:{0}>{1}", qso.Name.Length, qso.Name));

            // Location info.
            if (!(qso.Country == string.Empty))
                _streamer.WriteLine(string.Format("<COUNTRY:{0}>{1}", qso.Country.Length, qso.Country));

            if (!(qso.State == string.Empty))
                _streamer.WriteLine(string.Format("<STATE:{0}>{1}", qso.State.Length, qso.State));

            if (!(qso.County == string.Empty))
                _streamer.WriteLine(string.Format("<CNTY:{0}>{1}", qso.County.Length, qso.County));

            if (!(qso.City == string.Empty))
                _streamer.WriteLine(string.Format("<QTH:{0}>{1}", qso.City.Length, qso.City));

            if (!(qso.GridSquare == string.Empty))
                _streamer.WriteLine(string.Format("<GRIDSQUARE:{0}>{1}", qso.GridSquare.Length, qso.GridSquare));

            // Operation info.
            if (!(qso.Frequency == string.Empty))
                _streamer.WriteLine(string.Format("<FREQ:{0}>{1}", qso.Frequency.Length, qso.Frequency));

            if (!(qso.Band == string.Empty))
                _streamer.WriteLine(string.Format("<BAND:{0}>{1}", qso.Band.Length, qso.Band));

            if (!(qso.Mode == string.Empty))
                _streamer.WriteLine(string.Format("<MODE:{0}>{1}", qso.Mode.Length, qso.Mode));

            if (!(qso.DateTimeOn == new DateTime()))
            {
                _streamer.WriteLine(string.Format("<TIME_ON:6>{0}", qso.DateTimeOn.ToUniversalTime().ToString("HHmmss")));
                _streamer.WriteLine(string.Format("<QSO_DATE:8>{0}", qso.DateTimeOn.ToUniversalTime().ToString("yyyyMMdd")));
            }

            if (!(qso.DateTimeOff == new DateTime()))
            {
                _streamer.WriteLine(string.Format("<TIME_OFF:6>{0}", qso.DateTimeOff.ToUniversalTime().ToString("HHmmss")));
                _streamer.WriteLine(string.Format("<QSO_DATE_OFF:8>{0}", qso.DateTimeOff.ToUniversalTime().ToString("yyyyMMdd")));
            }

            if (!(qso.Operator == string.Empty))
                _streamer.WriteLine(string.Format("<OPERATOR:{0}>{1}", qso.Operator.Length, qso.Operator));

            if (!(qso.MyName == string.Empty))
                _streamer.WriteLine(string.Format("<MY_NAME:{0}>{1}", qso.MyName.Length, qso.MyName));

            if (!(qso.MyCountry == string.Empty))
                _streamer.WriteLine(string.Format("<MY_COUNTRY:{0}>{1}", qso.MyCountry.Length, qso.MyCountry));

            if (!(qso.MyState == string.Empty))
                _streamer.WriteLine(string.Format("<MY_STATE:{0}>{1}", qso.State.Length, qso.MyState));

            if (!(qso.MyCounty == string.Empty))
                _streamer.WriteLine(string.Format("<MY_CNTY:{0}>{1}", qso.MyCounty.Length, qso.MyCounty));

            if (!(qso.MyCity == string.Empty))
                _streamer.WriteLine(string.Format("<MY_CITY:{0}>{1}", qso.MyCity.Length, qso.MyCity));

            if (!(qso.MyGridSquare == string.Empty))
                _streamer.WriteLine(string.Format("<MY_GRIDSQUARE:{0}>{1}", qso.MyGridSquare.Length, qso.MyGridSquare));

            // TODO Add the rest of the fields.

            _streamer.WriteLine("<EOR>");
            _streamer.WriteLine();
        }
Example #14
0
        private void LogBtnClick(object sender, RoutedEventArgs e)
        {
            if(callsignTxt.Text == string.Empty)
            {
                MessageBox.Show("Please enter a callsign", "Enter Callsign", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return;
            }

            if (IsValidTime(timeOnTxt.Text) == false || IsValidDate(dateOnTxt.Text) == false)
                return;

            if (IsValidTime(timeOffTxt.Text) == false || IsValidDate(dateOffTxt.Text) == false)
                return;

            QSO contact = new QSO()
            {
                Callsign = callsignTxt.Text,
                Name = nameTxt.Text,
                Country = countryTxt.Text,
                State = stateTxt.Text,
                County = countyTxt.Text,
                City = cityTxt.Text,
                GridSquare = gridSquareTxt.Text,
                Band = bandTxt.Text,
                Mode = modeTxt.Text,
                Frequency = frequencyTxt.Text,
                DateTimeOn = GetDateTime(timeOnTxt.Text, dateOnTxt.Text),
                DateTimeOff = GetDateTime(timeOffTxt.Text, dateOffTxt.Text),

                Operator = _operator.Operator,
                MyName = _operator.MyName,
                MyCountry = _operator.MyCountry,
                MyState = _operator.MyState,
                MyCounty = _operator.MyCounty,
                MyCity = _operator.MyCity,
                MyGridSquare = _operator.MyGridSquare
            };

            _qsoLog.InsertQSO(contact);
            qsoGrid.Items.Refresh();
            ClearUIFields();
        }
Example #15
0
        public ObservableCollection <QSO> GetTopQSOs(int i)
        {
            CultureInfo enUS = new CultureInfo("en-US");
            ObservableCollection <QSO> qso_list = new ObservableCollection <QSO>();
            string stm = "SELECT * FROM qso ORDER BY Id DESC LIMIT " + i;

            using (SQLiteCommand cmd = new SQLiteCommand(stm, con))
            {
                using (SQLiteDataReader rdr = cmd.ExecuteReader())
                {
                    while (rdr.Read())
                    {
                        QSO q = new QSO();
                        if (rdr["Id"] != null)
                        {
                            q.id = int.Parse(rdr["Id"].ToString());
                        }
                        if (rdr["comment"] != null)
                        {
                            q.Comment = (string)rdr["comment"];
                        }
                        if (rdr["dx_callsign"] != null)
                        {
                            q.DXCall = (string)rdr["dx_callsign"];
                        }
                        if (rdr["mode"] != null)
                        {
                            q.Mode = (string)rdr["mode"];
                        }
                        if (rdr["exchange"] != null)
                        {
                            q.SRX = (string)rdr["exchange"];
                        }
                        if (rdr["frequency"] != null)
                        {
                            q.Freq = (string)rdr["frequency"];
                        }
                        if (rdr["band"] != null)
                        {
                            q.Band = (string)rdr["band"];
                        }
                        if (rdr["my_callsign"] != null)
                        {
                            q.MyCall = (string)rdr["my_callsign"];
                        }
                        if (rdr["my_square"] != null)
                        {
                            q.STX = (string)rdr["my_square"];
                        }
                        if (rdr["rst_rcvd"] != null)
                        {
                            q.RST_RCVD = (string)rdr["rst_rcvd"];
                        }
                        if (rdr["rst_sent"] != null)
                        {
                            q.RST_SENT = (string)rdr["rst_sent"];
                        }
                        if (rdr["name"] != null)
                        {
                            q.Name = (string)rdr["name"];
                        }
                        if (rdr["country"] != null)
                        {
                            q.Country = (string)rdr["country"];
                        }
                        if (rdr["time"] != null)
                        {
                            q.Time = (string)rdr["time"];
                        }
                        if (rdr["date"] != null)
                        {
                            q.Date = (string)rdr["date"];
                        }
                        if (rdr["prop_mode"] != null)
                        {
                            q.PROP_MODE = rdr["prop_mode"].ToString();
                        }
                        if (rdr["sat_name"] != null)
                        {
                            q.SAT_NAME = rdr["sat_name"].ToString();
                        }
                        q.StandartizeQSO();
                        qso_list.Add(q);
                    }
                }
            }
            return(qso_list);
        }
Example #16
0
        private List<QSO> GetQSOsFromRecords()
        {
            List<QSO> qsos = new List<QSO>();
            QSO temp = new QSO();

            foreach (_Field x in _qsoFields)
            {
                if (x._header.Name == "EOR")
                {
                    qsos.Add(temp);
                    temp = new QSO();
                }
                else
                {
                    switch (x._header.Name)
                    {

                        case "NAME":
                            temp.Name = x._data;
                            break;

                        case "CALL":
                            temp.Callsign = x._data;
                            break;

                        case "COUNTRY":
                            temp.Country = x._data;
                            break;

                        case "STATE":
                            temp.State = x._data;
                            break;

                        case "CNTY":
                            temp.County = x._data;
                            break;

                        case "QTH":
                            temp.City = x._data;
                            break;

                        case "GRIDSQUARE":
                            temp.GridSquare = x._data;
                            break;

                        case "FREQ":
                            temp.Frequency = x._data;
                            break;

                        case "BAND":
                            temp.Band = x._data;
                            break;

                        case "MODE":
                            temp.Mode = x._data;
                            break;

                        case "TIME_ON":
                            temp.DateTimeOn = MergeDateAndTime(temp.DateTimeOn, GetTimeFromRecord(x));
                            break;

                        case "QSO_DATE":
                            temp.DateTimeOn = MergeDateAndTime(temp.DateTimeOn, GetDateFromRecord(x));
                            break;

                        case "TIME_OFF":
                            temp.DateTimeOff = MergeDateAndTime(temp.DateTimeOff, GetTimeFromRecord(x));
                            break;

                        case "QSO_DATE_OFF":
                            temp.DateTimeOff = MergeDateAndTime(temp.DateTimeOff, GetDateFromRecord(x));
                            break;

                        case "OPERATOR":
                            temp.Operator = x._data;
                            break;

                        case "MY_NAME":
                            temp.MyName = x._data;
                            break;

                        case "MY_COUNTRY":
                            temp.MyCountry = x._data;
                            break;

                        case "My_STATE":
                            temp.MyState = x._data;
                            break;

                        case "MY_CNTY":
                            temp.MyCounty = x._data;
                            break;

                        case "MY_CITY":
                            temp.MyCity = x._data;
                            break;

                        case "MY_GRIDSQUARE":
                            temp.MyGridSquare = x._data;
                            break;

                        default:
                            break;
                    }
                }
            }

            return qsos;
        }
Example #17
0
        public void WriteQSO(QSO qso)
        {
            // TODO Remove the null check. After the QSO class is updated to initialize its string properties to empty we will not have to do the double check.

            // Operator info.
            if (!(qso.Callsign == string.Empty))
            {
                _streamer.WriteLine(string.Format("<CALL:{0}>{1}", qso.Callsign.Length, qso.Callsign));
            }

            if (!(qso.Name == string.Empty))
            {
                _streamer.WriteLine(string.Format("<NAME:{0}>{1}", qso.Name.Length, qso.Name));
            }

            // Location info.
            if (!(qso.Country == string.Empty))
            {
                _streamer.WriteLine(string.Format("<COUNTRY:{0}>{1}", qso.Country.Length, qso.Country));
            }

            if (!(qso.State == string.Empty))
            {
                _streamer.WriteLine(string.Format("<STATE:{0}>{1}", qso.State.Length, qso.State));
            }

            if (!(qso.County == string.Empty))
            {
                _streamer.WriteLine(string.Format("<CNTY:{0}>{1}", qso.County.Length, qso.County));
            }

            if (!(qso.City == string.Empty))
            {
                _streamer.WriteLine(string.Format("<QTH:{0}>{1}", qso.City.Length, qso.City));
            }

            if (!(qso.GridSquare == string.Empty))
            {
                _streamer.WriteLine(string.Format("<GRIDSQUARE:{0}>{1}", qso.GridSquare.Length, qso.GridSquare));
            }

            // Operation info.
            if (!(qso.Frequency == string.Empty))
            {
                _streamer.WriteLine(string.Format("<FREQ:{0}>{1}", qso.Frequency.Length, qso.Frequency));
            }

            if (!(qso.Band == string.Empty))
            {
                _streamer.WriteLine(string.Format("<BAND:{0}>{1}", qso.Band.Length, qso.Band));
            }

            if (!(qso.Mode == string.Empty))
            {
                _streamer.WriteLine(string.Format("<MODE:{0}>{1}", qso.Mode.Length, qso.Mode));
            }

            if (!(qso.DateTimeOn == new DateTime()))
            {
                _streamer.WriteLine(string.Format("<TIME_ON:6>{0}", qso.DateTimeOn.ToUniversalTime().ToString("HHmmss")));
                _streamer.WriteLine(string.Format("<QSO_DATE:8>{0}", qso.DateTimeOn.ToUniversalTime().ToString("yyyyMMdd")));
            }

            if (!(qso.DateTimeOff == new DateTime()))
            {
                _streamer.WriteLine(string.Format("<TIME_OFF:6>{0}", qso.DateTimeOff.ToUniversalTime().ToString("HHmmss")));
                _streamer.WriteLine(string.Format("<QSO_DATE_OFF:8>{0}", qso.DateTimeOff.ToUniversalTime().ToString("yyyyMMdd")));
            }

            if (!(qso.Operator == string.Empty))
            {
                _streamer.WriteLine(string.Format("<OPERATOR:{0}>{1}", qso.Operator.Length, qso.Operator));
            }

            if (!(qso.MyName == string.Empty))
            {
                _streamer.WriteLine(string.Format("<MY_NAME:{0}>{1}", qso.MyName.Length, qso.MyName));
            }

            if (!(qso.MyCountry == string.Empty))
            {
                _streamer.WriteLine(string.Format("<MY_COUNTRY:{0}>{1}", qso.MyCountry.Length, qso.MyCountry));
            }

            if (!(qso.MyState == string.Empty))
            {
                _streamer.WriteLine(string.Format("<MY_STATE:{0}>{1}", qso.State.Length, qso.MyState));
            }

            if (!(qso.MyCounty == string.Empty))
            {
                _streamer.WriteLine(string.Format("<MY_CNTY:{0}>{1}", qso.MyCounty.Length, qso.MyCounty));
            }

            if (!(qso.MyCity == string.Empty))
            {
                _streamer.WriteLine(string.Format("<MY_CITY:{0}>{1}", qso.MyCity.Length, qso.MyCity));
            }

            if (!(qso.MyGridSquare == string.Empty))
            {
                _streamer.WriteLine(string.Format("<MY_GRIDSQUARE:{0}>{1}", qso.MyGridSquare.Length, qso.MyGridSquare));
            }

            // TODO Add the rest of the fields.

            _streamer.WriteLine("<EOR>");
            _streamer.WriteLine();
        }
Example #18
0
        private List <QSO> GetQSOsFromRecords()
        {
            List <QSO> qsos = new List <QSO>();
            QSO        temp = new QSO();


            foreach (_Field x in _qsoFields)
            {
                if (x._header.Name == "EOR")
                {
                    qsos.Add(temp);
                    temp = new QSO();
                }
                else
                {
                    switch (x._header.Name)
                    {
                    case "NAME":
                        temp.Name = x._data;
                        break;

                    case "CALL":
                        temp.Callsign = x._data;
                        break;

                    case "COUNTRY":
                        temp.Country = x._data;
                        break;

                    case "STATE":
                        temp.State = x._data;
                        break;

                    case "CNTY":
                        temp.County = x._data;
                        break;

                    case "QTH":
                        temp.City = x._data;
                        break;

                    case "GRIDSQUARE":
                        temp.GridSquare = x._data;
                        break;

                    case "FREQ":
                        temp.Frequency = x._data;
                        break;

                    case "BAND":
                        temp.Band = x._data;
                        break;

                    case "MODE":
                        temp.Mode = x._data;
                        break;

                    case "TIME_ON":
                        temp.DateTimeOn = MergeDateAndTime(temp.DateTimeOn, GetTimeFromRecord(x));
                        break;

                    case "QSO_DATE":
                        temp.DateTimeOn = MergeDateAndTime(temp.DateTimeOn, GetDateFromRecord(x));
                        break;

                    case "TIME_OFF":
                        temp.DateTimeOff = MergeDateAndTime(temp.DateTimeOff, GetTimeFromRecord(x));
                        break;

                    case "QSO_DATE_OFF":
                        temp.DateTimeOff = MergeDateAndTime(temp.DateTimeOff, GetDateFromRecord(x));
                        break;

                    case "OPERATOR":
                        temp.Operator = x._data;
                        break;

                    case "MY_NAME":
                        temp.MyName = x._data;
                        break;

                    case "MY_COUNTRY":
                        temp.MyCountry = x._data;
                        break;

                    case "My_STATE":
                        temp.MyState = x._data;
                        break;

                    case "MY_CNTY":
                        temp.MyCounty = x._data;
                        break;

                    case "MY_CITY":
                        temp.MyCity = x._data;
                        break;

                    case "MY_GRIDSQUARE":
                        temp.MyGridSquare = x._data;
                        break;

                    default:
                        break;
                    }
                }
            }

            return(qsos);
        }