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)); }
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); } } }
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); }
public async Task <ActionResult> DeleteConfirmed(int id) { QSO qSO = await db.QSOs.FindAsync(id); db.QSOs.Remove(qSO); await db.SaveChangesAsync(); return(RedirectToAction("Index")); }
public async Task <IHttpActionResult> GetQSO(int id) { QSO qSO = await db.QSOs.FindAsync(id); if (qSO == null) { return(NotFound()); } return(Ok(qSO)); }
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)); }
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)); }
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)); }
// 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)); }
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)); }
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(); }
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); }
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(); }
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(); }
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); }
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; }
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(); }
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); }