Exemple #1
0
        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();
                }
            }
        }
Exemple #2
0
 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();
        }
Exemple #4
0
        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);
        }
Exemple #5
0
 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();
        }
Exemple #7
0
        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;
            }
        }
Exemple #8
0
        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;
                }
            }
        }
Exemple #9
0
 public void Uninitialize()
 {
     record = null;
     if (streamReader != null) {
         streamReader.Close ();
         streamReader.Dispose ();
     }
     streamReader = null;
     gqlEngineExecutionState = null;
 }
 public void Uninitialize()
 {
     record = null;
     provider.Uninitialize ();
 }
Exemple #11
0
 public void Uninitialize()
 {
     provider.Uninitialize ();
     recordsQueue = null;
     record = null;
 }
Exemple #12
0
 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;
 }
Exemple #16
0
 public void Debug(ProviderRecord record)
 {
     record.Info.Debug();
 }
Exemple #17
0
 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);
 }
Exemple #19
0
 public void Initialize(GqlQueryState gqlQueryState)
 {
     record = new ProviderRecord (this, true);
     record.LineNo = 1;
     this.gqlQueryState = gqlQueryState;
 }
Exemple #20
0
        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";
        }
Exemple #21
0
 public void Uninitialize()
 {
     record = null;
     gqlQueryState = null;
     if (provider != null)
         provider.Uninitialize ();
     outputList = null;
     columnNameList = null;
 }
Exemple #22
0
 public void Uninitialize()
 {
     record = null;
 }
Exemple #23
0
 public void Initialize(GqlQueryState gqlQueryState)
 {
     this.gqlQueryState = gqlQueryState;
     record = null;
 }
Exemple #24
0
        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;
        }
Exemple #25
0
        public void Initialize(GqlQueryState gqlQueryState)
        {
            provider.Initialize(gqlQueryState);
            this.gqlQueryState = gqlQueryState;

            data = new StateBin[outputColumns.Length];
            record = new ProviderRecord(this, true);
        }