/// <summary> /// Function in <see cref="LocalDB"/> to transmit all <see cref="Record"/>s in the <see cref="MyCouchClient"/> Database to the <see cref="ExternalDB"/>. /// </summary> public static void midnightsync() { MyCouchClient client = ClientBuilder(ConfigReader.getConfig()); while (true) { while (DateTime.Now.ToString("HH:mm").Contains("23:59")) { var query = new MyCouch.Requests.QueryViewRequest("_all_docs"); try { var response = client.Views.QueryAsync<Record>(query); for(int i =0; i<response.Result.RowCount; i++) { response.Result.Rows[i].Value.completeRecord(0, DateTime.Now.ToString("yyyy-dd-MM ") + "23:59:00.000"); MS_ExternalDB.Transmit(MS_ExternalDB.CreateConnString(), response.Result.Rows[i].Value); } } catch (Exception e) { Console.WriteLine(e.Message); } } } }
/// <summary> /// Function in <see cref="LocalDB"/> to check a <see cref="Record"/> "KartenNummer" in the <see cref="MyCouchClient"/> Database. "Valid" will be true when the KartenNummer is valid. /// </summary> /// <param name="record"><see cref="Record"/> to check.</param> /// <param name="valid">True if <see cref="Record"/> is valid</param> /// <returns>Returns the modified <see cref="Record"/>. When Card is OK it will add the <see cref="Record.studentID"/>, <see cref="Record.kartenID"/> and <see cref="Record"/></returns> public static Record checkCardnumber(Record record, out bool valid) { MyCouchClient client = LocalDB.ClientBuilder(ConfigReader.getConfig(), true); //Check the number #region QueryViewRequest MyCouch.Requests.QueryViewRequest query = new MyCouch.Requests.QueryViewRequest("view","KartenNummer"); query.Configure(cfg => cfg.Key(record.kartenNummer)); var response = client.Views.QueryAsync<Card>(query); #endregion try { if (response.Result.TotalRows > 0) { //Get content-add StudentID to Record record.studentID = response.Result.Rows[0].Value.studentID; record.kartenID = response.Result.Rows[0].Value.id; valid = true; return record; } } catch (Exception e) { Console.WriteLine("Invalid Cardnumber!"); Console.WriteLine(record.kartenNummer); Notification.playsound(4); } valid = false; return record; // return null; }
public static List<MyCouch.Responses.EntityResponse<Record>> GetRecords(MyCouchClient client,bool uselessbool) { List<MyCouch.Responses.EntityResponse<Record>> list = new List<MyCouch.Responses.EntityResponse<Record>>(); var query = new MyCouch.Requests.QueryViewRequest("view2", "fertigeRecords"); try { var response = client.Views.QueryAsync<Record>(query); for (int i = 0; i < response.Result.RowCount; i++) { MyCouch.Responses.EntityResponse<Record> recordresponse = copyEntry(response.Result.Rows[i].Id); list.Add(recordresponse); } } catch (Exception e) { Console.WriteLine(e.Message); return null; } return list; }
/// <summary> /// Function in <see cref="LocalDB"/> to check a <see cref="Record"/> in the LocalDB. /// </summary> /// <param name="KartenNummer"><see cref="Record.kartenNummer"/> to check.</param> /// <param name="record">Returns the edited <see cref="Record"/></param> /// <returns>true when there is exactly one unfinished Record. False when there are more then one or no unfinished Records.</returns> public static bool checkRecords(string KartenNummer, out Record record) { #region QueryViewRequest MyCouch.Requests.QueryViewRequest query = new MyCouch.Requests.QueryViewRequest("view","erledigt"); query.Configure(cfg => cfg.Key(KartenNummer)); var response = LocalDB.ClientBuilder(ConfigReader.getConfig()).Views.QueryAsync<Record[]>(query); #endregion if (response.Result.TotalRows == 1) { MyCouch.Responses.EntityResponse<Record> recordresponse = copyEntry(response.Result.Rows[0].Id); record = recordresponse.Content; deleteRecord(recordresponse.Id, recordresponse.Rev); return true; } else if (response.Result.TotalRows > 1) //should not happen right now! Same as 0 TotalRows { Console.WriteLine(response.Result.TotalRows + " Records not finished!"); record = null; return false; } else { record = null; return false; } }