public void UpdateProvider(ProviderRecord provider) { SqlConnection con = null; List <ProviderRecord> results = null;; try { con = new SqlConnection(System.Environment.GetEnvironmentVariable("NewsConnectionString", EnvironmentVariableTarget.Process)); con.Open(); using (var db = new Database(con)) { db.Update(provider); } } catch (Exception ex) { System.Diagnostics.Trace.TraceError("NosyRepo error in GetProviders. " + ex.ToString()); } finally { if (con != null) { con.Close(); } } }
public void Initialize(GqlQueryState gqlQueryState) { endOfQuery = false; record = new ProviderRecord (this, true); record.Source = "(nullProvider)"; record.LineNo = 0; }
public void GetData_oneConsultationRecord_EmptyProviderRecord() { var providerRecord = new ProviderRecord(new Dictionary <string, object>()); var consultationRecord = new Dictionary <string, object>(); consultationRecord.Add("current_date", new DateTime(2021, 2, 1)); consultationRecord.Add("service_date", new DateTime(2021, 1, 1)); consultationRecord.Add("member_number", 4); consultationRecord.Add("service_number", 5); consultationRecord.Add("provider_number", 6); var consultationRecords = new List <ConsultationRecord> { new ConsultationRecord(consultationRecord) }; var memberRecord = new Dictionary <string, object>(); memberRecord.Add("name", "John Smith"); memberRecord.Add("address", "111"); memberRecord.Add("city", "Blah"); memberRecord.Add("state", "OR"); memberRecord.Add("zip", 1111); memberRecord.Add("number", 4); var serviceRecord = new Dictionary <string, object>(); serviceRecord.Add("name", "AA"); serviceRecord.Add("number", 5); serviceRecord.Add("fee", 100.00); _databaseMock.Setup(c => c.FetchProvider(1)).Returns(providerRecord); _databaseMock.Setup(c => c.FetchConsultationRecordsForProvider(1)).Returns(consultationRecords); _databaseMock.Setup(c => c.FetchMember(4)).Returns(new MemberRecord(memberRecord)); _databaseMock.Setup(c => c.FetchServiceRecord(5)).Returns(new ServiceRecord(serviceRecord)); var result = _providerDataGetter.GetData(1); Assert.IsInstanceOfType(result, typeof(ReportData)); Assert.AreEqual(providerRecord, result.ProviderRecord); Assert.AreEqual(1, result.ProvidedServices.Count); var providedService = result.ProvidedServices[0]; Assert.AreEqual(new DateTime(2021, 1, 1), providedService.ServiceDate); Assert.AreEqual("John Smith", providedService.MemberName); Assert.AreEqual(5, providedService.ServiceId); Assert.AreEqual(4, providedService.MemberId); Assert.AreEqual(new DateTime(2021, 2, 1), providedService.DateTimeReceived); Assert.AreEqual(100, providedService.Fee); _databaseMock.Verify(c => c.FetchProvider(1), Times.Once); _databaseMock.Verify(c => c.FetchConsultationRecordsForProvider(1), Times.Once); _databaseMock.Verify(c => c.FetchMember(4), Times.Once); _databaseMock.Verify(c => c.FetchServiceRecord(5), Times.Once); _databaseMock.VerifyNoOtherCalls(); }
public static List <StoryRecord> GetRSSUpdates(ProviderRecord provider) { List <StoryRecord> results = new List <StoryRecord>(); try { using (HttpClient client = new HttpClient()) { string rssContent = client.GetStringAsync(provider.RssUrl).Result; if (!String.IsNullOrEmpty(rssContent)) { XDocument doc = XDocument.Parse(rssContent); string newUpdate = GetPublishDate(doc.Element("rss").Element("channel")); DateTime newUpdateTime = DateTime.Parse(newUpdate); //DateTime lastUpdateTime = DateTime.Parse(provider.LastUpdate); if (newUpdateTime > provider.LastUpdated) { //provider.LastUpdated = newUpdateTime; IEnumerable <XElement> items = doc.Descendants("item"); foreach (XElement item in items) { StoryRecord newsItem = new StoryRecord { Title = item.Element("title").Value, Description = item.Element("description").Value, Language = provider.Language, Url = item.Element("link").Value, ImageUrl = NosyBot.Services.Utilities.RssUtilities.GetImageUrl(item), ProviderId = provider.Id, ProviderName = provider.Name, LastUpdated = DateTime.Now, PublishDate = DateTime.Parse(item.Element("pubDate").Value) }; if (newsItem.PublishDate > provider.LastPublished) { // This came in after the last update, so add results.Add(newsItem); } } provider.LastPublished = newUpdateTime; provider.LastUpdated = DateTime.Now; } } } } catch (Exception ex) { Console.WriteLine($"Error processing provider {provider.Name}, error: {ex.Message}"); } return(results); }
public bool GetNextRecord() { while (provider.GetNextRecord ()) { ProviderRecord record = provider.Record; ColumnsComparerKey key = new ColumnsComparerKey (); key.Members = (IData[])provider.Record.Columns.Clone (); if (!recordList.Contains (key)) { recordList.Add (key); this.record = record; return true; } } return false; }
private void Load() { StreamReader inStream = new StreamReader(File.Open(rootPath + "database.db", FileMode.OpenOrCreate, FileAccess.Read)); String activeType = ""; while (!inStream.EndOfStream) { String line = inStream.ReadLine(); if (line.Equals("")) { continue; } if (line.StartsWith("*")) { activeType = line.Substring(1, line.IndexOf(':') - 1); continue; } switch (activeType) { case "MEMBERS": members.Add(MemberRecord.FromString(line)); break; case "PROVIDERS": providers.Add(ProviderRecord.FromString(line)); break; case "SERVICES": services.Add(ServiceRecord.FromString(line)); break; case "CONSULTATIONS": consultations.Add(ConsultationRecord.FromString(line)); break; default: break; } } inStream.Close(); }
public bool GetNextRecord() { if (recordsQueue == null) { long maxCount = bottomValueExpression.Evaluate (gqlQueryState); recordsQueue = new Queue<ProviderRecord> (); try { provider.Initialize (gqlQueryState); while (provider.GetNextRecord ()) { recordsQueue.Enqueue (provider.Record.Clone ()); if (recordsQueue.Count > maxCount) recordsQueue.Dequeue (); } } finally { provider.Uninitialize (); } } if (recordsQueue.Count > 0) { record = recordsQueue.Dequeue (); return true; } else { return false; } }
public void Initialize(GqlQueryState gqlQueryState) { this.gqlQueryState = gqlQueryState; gqlEngineExecutionState = gqlQueryState.CurrentExecutionState; string fileName; if (this.fileName.StartsWith ("#")) { fileName = Path.Combine (gqlQueryState.TempDirectory, this.fileName); } else { fileName = Path.Combine (gqlQueryState.CurrentDirectory, this.fileName); } streamReader = new StreamReader (new AsyncStreamReader (new FileStream (fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, 32 * 1024), 32 * 1024)); record = new ProviderRecord (this, true); record.Source = fileName; dataString = new DataString (); record.Columns [0] = dataString; for (long i = 0; i < skip; i++) { if (streamReader.ReadLine () == null) { streamReader.Close (); streamReader = null; return; } } }
public void Uninitialize() { record = null; if (streamReader != null) { streamReader.Close (); streamReader.Dispose (); } streamReader = null; gqlEngineExecutionState = null; }
public void Uninitialize() { record = null; provider.Uninitialize (); }
public void Uninitialize() { provider.Uninitialize (); recordsQueue = null; record = null; }
public void Uninitialize() { provider.Uninitialize (); data = null; record = null; gqlQueryState = null; }
public virtual void Initialize(GqlQueryState gqlQueryState) { provider.Initialize (gqlQueryState); firstLine = ReadLine (); int columns = columnCount; if (columns == -1) columns = firstLine != null ? firstLine.Length : 0; if (columns == -1) throw new Exception ("No columns found in delimited file"); columnNameList = new ColumnName[columns]; for (int i = 0; i < columnNameList.Length; i++) columnNameList [i] = new ColumnName (i); dataString = new DataString[columns]; record = new ProviderRecord (this, false); }
public void Initialize(GqlQueryState gqlQueryState) { regex = new Regex (regexDefinition, caseInsensitive ? RegexOptions.IgnoreCase : RegexOptions.None); string[] groups = regex.GetGroupNames (); columnNameList = groups.Skip (1).Select (p => new ColumnName (p)).ToArray (); for (int i = 0; i < columnNameList.Length; i++) if (groups [i + 1] == (i + 1).ToString ()) columnNameList [i] = new ColumnName (i); else columnNameList [i] = new ColumnName (groups [i + 1]); provider.Initialize (gqlQueryState); record = new ProviderRecord (this, true); dataStrings = new DataString[columnNameList.Length]; for (int i = 0; i < dataStrings.Length; i++) { dataStrings [i] = new DataString (); record.Columns [i] = dataStrings [i]; } }
public void Uninitialize() { regex = null; record = null; provider.Uninitialize (); columnNameList = null; }
public void Debug(ProviderRecord record) { record.Info.Debug(); }
public void LoadRecordXML(string filename) { Serializer<ProviderRecord> serializer = new Serializer<ProviderRecord>(); Record = serializer.Load(filename); Debug(Record); }
public void InsertProvider(ProviderRecord record) { this.providers.Add(record); }
public void Initialize(GqlQueryState gqlQueryState) { record = new ProviderRecord (this, true); record.LineNo = 1; this.gqlQueryState = gqlQueryState; }
public void Initialize(GqlQueryState gqlQueryState) { string fileName = fileOptions.FileName.Evaluate (gqlQueryState); string path = Path.GetDirectoryName (fileName); string searchPattern = Path.GetFileName (fileName); SearchOption searchOption; if (fileOptions.Recurse) searchOption = SearchOption.AllDirectories; else searchOption = SearchOption.TopDirectoryOnly; path = Path.Combine (gqlQueryState.CurrentDirectory, path); files = Directory.GetFiles (path + Path.DirectorySeparatorChar, searchPattern, searchOption); if (fileOptions.FileOrder == FileOptionsFromClause.FileOrderEnum.Asc || fileOptions.FileOrder == FileOptionsFromClause.FileOrderEnum.FileNameAsc) files = files.Select (p => new FileInfo (p)).OrderBy (p => p.Name, stringComparer).Select (p => p.FullName).ToArray (); else if (fileOptions.FileOrder == FileOptionsFromClause.FileOrderEnum.Desc || fileOptions.FileOrder == FileOptionsFromClause.FileOrderEnum.FileNameDesc) files = files.Select (p => new FileInfo (p)).OrderByDescending (p => p.Name, stringComparer).Select (p => p.FullName).ToArray (); else if (fileOptions.FileOrder == FileOptionsFromClause.FileOrderEnum.ModificationTimeAsc) files = files.Select (p => new FileInfo (p)).OrderBy (p => p.LastWriteTime).Select (p => p.FullName).ToArray (); else if (fileOptions.FileOrder == FileOptionsFromClause.FileOrderEnum.ModificationTimeDesc) files = files.Select (p => new FileInfo (p)).OrderByDescending (p => p.LastWriteTime).Select (p => p.FullName).ToArray (); record = new ProviderRecord (this, true); record.LineNo = 0; record.TotalLineNo = 0; record.Source = "DirectoryProvider"; }
public void Uninitialize() { record = null; gqlQueryState = null; if (provider != null) provider.Uninitialize (); outputList = null; columnNameList = null; }
public void Uninitialize() { record = null; }
public void Initialize(GqlQueryState gqlQueryState) { this.gqlQueryState = gqlQueryState; record = null; }
public void Initialize(GqlQueryState gqlQueryState) { this.gqlQueryState = new GqlQueryState (gqlQueryState); provider.Initialize (this.gqlQueryState); if (outputColumns != null) { ConstructColumns (outputColumns, out this.outputList, out this.columnNameList); } else { this.outputList = staticOutputList; this.columnNameList = staticColumnNameList; } gqlQueryState.TotalLineNumber = 0; record = new ProviderRecord (this, false); record.Source = "(subQuery)"; record.LineNo = 0; }
public void Initialize(GqlQueryState gqlQueryState) { provider.Initialize(gqlQueryState); this.gqlQueryState = gqlQueryState; data = new StateBin[outputColumns.Length]; record = new ProviderRecord(this, true); }