Пример #1
0
        /// <summary>
        /// Inserts RSSIs in Excel worksheet oSheetDataRSSIs
        /// </summary>
        /// <param name="metaTagsDic"></param>
        /// <param name="readerCounter"></param>
        private static void DoExcelInsertRSSIs(ConcurrentDictionary <string, MetaTag> metaTagsDic, int readerCounter)
        {
            foreach (string epc in metaTagsDic.Keys)
            {
                MetaTag metaTag = metaTagsDic[epc];

                /// Ignores RSSI average if metaTag's rssiQueue isn't full
                if (metaTag.RSSIAvg == -1)
                {
                    continue;
                }

                if (readerCounter == 1)
                {
                    /// R1 obtained RSSIs

                    UpdateRSSIs(readerCounter, R1EPCsDic, metaTag);
                }
                else
                {
                    /// R2 obtained RSSIs

                    UpdateRSSIs(readerCounter, R2EPCsDic, metaTag);
                }
            }
        }
Пример #2
0
        private object CastMetaTagValueToDataType(MetaTag metaTag, string paramValue)
        {
            try
            {
                if (metaTag.DataType == "number")
                {
                    double result = 0.0;
                    Double.TryParse(paramValue, out result);
                    return(result);
                }

                if (metaTag.DataType == "datetime")
                {
                    return(DateTime.Parse(paramValue));
                }

                if (metaTag.DataType == "object")
                {
                    return(JsonConvert.DeserializeObject <dynamic>(paramValue));
                }
            } catch (Exception e)
            {
                paramValue = e.ToString();
            }


            return(paramValue);
        }
Пример #3
0
        public MetaTag UpdateMetaTag(MetaTag updatedTag)
        {
            updatedTag.BlogId = Config.CurrentBlog.Id;
            MetaTags.Update(updatedTag);

            return(updatedTag);
        }
Пример #4
0
        public void CanDeleteEntryMetaTag()
        {
            var   blog       = UnitTestHelper.CreateBlogAndSetupContext();
            var   repository = new DatabaseObjectProvider();
            Entry entry      =
                UnitTestHelper.CreateEntryInstanceForSyndication("Steven Harman", "Sweet arse entry!",
                                                                 "Giddy, giddy, goo!");

            UnitTestHelper.Create(entry);

            MetaTag tag = UnitTestHelper.BuildMetaTag("Foo, bar, zaa?", "author", null, blog.Id, entry.Id, DateTime.UtcNow);

            repository.Create(tag);

            Assert.AreEqual(1, repository.GetMetaTagsForBlog(blog, 0, 100).Count,
                            "Should be one (1) MetaTag for this blog.");
            Assert.AreEqual(1, repository.GetMetaTagsForEntry(entry, 0, 100).Count,
                            "Should be one (1) MetaTag for this entry.");

            // Now let's remove it from the data store
            Assert.IsTrue(repository.DeleteMetaTag(tag.Id), "Deleting the MetaTag failed.");

            Assert.AreEqual(0, repository.GetMetaTagsForBlog(blog, 0, 100).Count,
                            "Should be zero (0) MetaTags for this blog.");
            Assert.AreEqual(0, repository.GetMetaTagsForEntry(entry, 0, 100).Count,
                            "Should be zero (0) MetaTag for this entry.");
        }
Пример #5
0
        /// <summary>
        ///     Flushes remaining data to the file and then manually writes JSON tags to close the file out
        /// </summary>
        internal override async Task FlushWriter()
        {
            if (!FileCreated)
            {
                return;
            }

            if (Queue.Count > 0)
            {
                await WriteData();
            }

            var meta = new MetaTag
            {
                Count             = Count,
                CollectionMethods = (long)_context.ResolvedCollectionMethods,
                DataType          = DataType,
                Version           = DataVersion
            };

            await _jsonWriter.FlushAsync();

            await _jsonWriter.WriteEndArrayAsync();

            await _jsonWriter.WritePropertyNameAsync("meta");

            await _jsonWriter.WriteRawValueAsync(JsonConvert.SerializeObject(meta, PrettyPrint));

            await _jsonWriter.FlushAsync();

            await _jsonWriter.CloseAsync();
        }
Пример #6
0
        public ActionResult <ItemResponse <MetaTag> > SelectById(int id)
        {
            ItemResponse <MetaTag> response = null;
            ActionResult           result   = null;

            try
            {
                MetaTag metaTag = _metaDataService.Select(id);
                if (metaTag == null)
                {
                    result = NotFound404(new ErrorResponse("You put the wrong id. Nothing exist with that id"));
                }
                else
                {
                    response = new ItemResponse <MetaTag>();

                    response.Item = metaTag;
                    result        = Ok200(response);
                }
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.ToString());
                result = StatusCode(500, new ErrorResponse(ex.Message.ToString()));
            }
            return(result);
        }
Пример #7
0
        public static ICollection <MetaTag> BuildMetaTagsFor(Blog blog, Entry entry, int numberOfTags)
        {
            var tags = new List <MetaTag>(numberOfTags);

            int?entryId = null;

            if (entry != null)
            {
                entryId = entry.Id;
            }

            for (int i = 0; i < numberOfTags; i++)
            {
                MetaTag aTag = BuildMetaTag(
                    GenerateUniqueString().Left(50),
                    // if even, make a name attribute, else http-equiv
                    (i % 2 == 0) ? GenerateUniqueString().Left(25) : null,
                    (i % 2 == 1) ? GenerateUniqueString().Left(25) : null,
                    blog.Id,
                    entryId,
                    DateTime.UtcNow);

                tags.Add(aTag);
            }

            return(tags);
        }
        /// <summary>
        /// Finds the exact tag for the input text.
        /// Does not perform partial matching or chain parsing.
        /// </summary>
        /// <param name="tagText">The input text to search for.</param>
        /// <returns>The matching tag, or null if not found.</returns>
        public MetaTag FindTag(string tagText)
        {
            string cleaned = MetaTag.CleanTag(tagText);

            if (Tags.TryGetValue(cleaned, out MetaTag result))
            {
                return(result);
            }
            // TODO: Chain searching
            int dotIndex = cleaned.IndexOf('.');

            if (dotIndex > 0)
            {
                string tagBase = cleaned.Substring(0, dotIndex);
                string secondarySearch;
                if (tagBase == "playertag" || tagBase == "npctag")
                {
                    // TODO: Object meta, to inform of down-typing like this?
                    secondarySearch = "entitytag" + cleaned.Substring(dotIndex);
                }
                else if (!tagBase.EndsWith("tag"))
                {
                    secondarySearch = tagBase + "tag" + cleaned.Substring(dotIndex);
                }
                else
                {
                    return(null);
                }
                return(FindTag(secondarySearch));
            }
            return(null);
        }
        public static string HtmlizeTags(string[] tags, MetaDocs meta)
        {
            StringBuilder tagOutput = new StringBuilder();

            foreach (string tag in tags)
            {
                string[] parts      = tag.Split(' ', 2);
                string   properName = $"<code>{ScriptHighlighter.ColorArgument(Util.EscapeForHTML(parts[0]), false)}</code>";
                if (parts.Length == 2)
                {
                    tagOutput.Append(properName).Append(' ').Append(ParseAndEscape(parts[1]));
                }
                else
                {
                    MetaTag actualTag = meta.FindTag(parts[0]);
                    if (actualTag == null)
                    {
                        string nameLow = parts[0].ToLowerFast();
                        tagOutput.Append(Util.EscapeForHTML(parts[0])).Append((nameLow == "none" || nameLow == "todo") ? "" : " ERROR: TAG INVALID");
                    }
                    else
                    {
                        string desc = ParseAndEscape(actualTag.Description);
                        if (desc.Contains('\n'))
                        {
                            desc = desc.Before('\n') + $" <a href=\"/Docs/Tags/{actualTag.CleanedName}\">(...)</a>";
                        }
                        tagOutput.Append($"<a href=\"/Docs/Tags/{actualTag.CleanedName}\">").Append(properName).Append("</a> ").Append(desc);
                    }
                }
                tagOutput.Append("\n<br>");
            }
            return(tagOutput.ToString());
        }
Пример #10
0
        public void CanUpdateMetaTag(string content, string name, string httpequiv)
        {
            var     blog       = UnitTestHelper.CreateBlogAndSetupContext();
            var     repository = new DatabaseObjectProvider();
            MetaTag tag        = UnitTestHelper.BuildMetaTag(content, name, httpequiv, blog.Id, null, DateTime.UtcNow);

            repository.Create(tag);

            string randomStr = UnitTestHelper.GenerateUniqueString().Left(20);

            tag.Content = content + randomStr;

            if (!string.IsNullOrEmpty(name))
            {
                tag.Name = name + randomStr;
            }

            if (!string.IsNullOrEmpty(httpequiv))
            {
                tag.HttpEquiv = httpequiv + randomStr;
            }

            Assert.IsTrue(repository.Update(tag));

            MetaTag updTag = repository.GetMetaTagsForBlog(blog, 0, 100)[0];

            ValidateMetaTags(tag, updTag);
        }
Пример #11
0
        public void MetaTagRequiresContentAttribute(string contentValue, bool isValidResult, string errMsg)
        {
            var tag = new MetaTag(contentValue);

            tag.Name = "description";

            Assert.AreEqual(tag.IsValid, isValidResult);
        }
Пример #12
0
        public static MetaTag FillWithConfigDefaults(this MetaTag metaTag, Config config)
        {
            metaTag.Author   = config.Metadata.Author;
            metaTag.Title    = config.Metadata.Title;
            metaTag.ImageUrl = config.Metadata.CoverImage;

            return(metaTag);
        }
        public void ShouldContainOneItem()
        {
            var item = new MetaTag("twitter:description", "some description");

            _collection.Add(item);

            Assert.NotEmpty(_collection);
        }
Пример #14
0
        /// <summary>
        /// Tag meta docs user command.
        /// </summary>
        public void CMD_Tag(string[] cmds, SocketMessage message)
        {
            List <string> secondarySearches = new List <string>();

            if (cmds.Length > 0)
            {
                cmds[0] = MetaTag.CleanTag(cmds[0]);
                int dotIndex = cmds[0].IndexOf('.');
                if (dotIndex > 0)
                {
                    string tagBase   = cmds[0].Substring(0, dotIndex);
                    string tagSuffix = cmds[0].Substring(dotIndex);
                    if (!tagBase.EndsWith("tag"))
                    {
                        secondarySearches.Add(tagBase + "tag" + tagSuffix);
                    }
                    string tagBaseLow = tagBase.ToLowerFast();
                    if (tagBaseLow == "player" || tagBaseLow == "npc" || tagBaseLow == "playertag" || tagBaseLow == "npctag")
                    {
                        secondarySearches.Add("entitytag" + tagSuffix);
                    }
                    secondarySearches.Add("elementtag" + tagSuffix);
                }
            }
            int getDistanceTo(MetaTag tag)
            {
                int dist1 = StringConversionHelper.GetLevenshteinDistance(cmds[0], tag.CleanedName);
                int dist2 = StringConversionHelper.GetLevenshteinDistance(cmds[0], tag.AfterDotCleaned);
                int dist  = Math.Min(dist1, dist2);

                foreach (string secondSearch in secondarySearches)
                {
                    int dist3 = StringConversionHelper.GetLevenshteinDistance(secondSearch, tag.CleanedName);
                    dist = Math.Min(dist, dist3);
                }
                return(dist);
            }

            string findClosestTag()
            {
                int    lowestDistance = 20;
                string lowestStr      = null;

                foreach (MetaTag tag in Program.CurrentMeta.Tags.Values)
                {
                    int currentDistance = getDistanceTo(tag);
                    if (currentDistance < lowestDistance)
                    {
                        lowestDistance = currentDistance;
                        lowestStr      = tag.CleanedName;
                    }
                }
                return(lowestStr);
            }

            AutoMetaCommand(Program.CurrentMeta.Tags, MetaDocs.META_TYPE_TAG, cmds, message, secondarySearches, altFindClosest: findClosestTag,
                            altMatchOrderer: (list) => list.OrderBy(getDistanceTo).ToList());
        }
Пример #15
0
        private static MetaTag CreateMetaTag(RuntimeSettings settings, Link link, string title, string description)
        {
            var meta = new MetaTag().FillWithConfigDefaults(settings.Configuration);

            meta.Title       = title;
            meta.Url         = link.ConvertToLinkOnHost(settings.Configuration.HostName);
            meta.Description = description;
            return(meta);
        }
Пример #16
0
        private string FillMeta(Config configruation)
        {
            var meta = new MetaTag().FillWithConfigDefaults(configruation);

            meta.Title       = $"{configruation.Metadata.Title} - {configruation.Translations[Translations.SearchPageTitle]}";
            meta.Description = configruation.Translations[Translations.SearchPageTitle];
            meta.Url         = $"{configruation.HostName}search.html";
            return(meta.GetHtmlMeta());
        }
 public override int Create(MetaTag metaTag)
 {
     return(_procedures.InsertMetaTag(metaTag.Content,
                                      metaTag.Name.NullIfEmpty(),
                                      metaTag.HttpEquiv.NullIfEmpty(),
                                      BlogId,
                                      metaTag.EntryId,
                                      metaTag.DateCreated));
 }
 public override bool Update(MetaTag metaTag)
 {
     return(_procedures.UpdateMetaTag(metaTag.Id,
                                      metaTag.Content,
                                      metaTag.Name.NullIfEmpty(),
                                      metaTag.HttpEquiv.NullIfEmpty(),
                                      BlogId,
                                      metaTag.EntryId));
 }
Пример #19
0
        public void Update_WithInvalidMetaTag_ThrowsArgumentException()
        {
            // arrange
            var metaTag = new MetaTag(null);

            // act, assert
            Assert.IsFalse(metaTag.IsValid);
            UnitTestHelper.AssertThrows <ArgumentException>(() => MetaTags.Update(metaTag));
        }
Пример #20
0
        protected void lbtn_Script_Edit_Command(object sender, CommandEventArgs e)
        {
            PageMgr myPageMgr = new PageMgr();
            MetaTag myMetaTag = myPageMgr.Get_Page_MetaTag(e.CommandArgument.ToString());

            tbx_UpdateScriptURL.Text         = myMetaTag.Meta_Src;
            btn_UpdateScript.CommandArgument = e.CommandArgument.ToString();

            Panel_Update_Script.Visible = true;
        }
Пример #21
0
        public void MetaTagRequiresEitherNameOrHttpEquivAttribute(string nameValue, string httpEquivValue,
                                                                  bool isValidResult, string errMsg)
        {
            var tag = new MetaTag("Steve rocks it!");

            tag.Name      = nameValue;
            tag.HttpEquiv = httpEquivValue;

            Assert.AreEqual(tag.IsValid, isValidResult, errMsg);
        }
Пример #22
0
        protected void lbtn_CSS_Edit_Command(object sender, CommandEventArgs e)
        {
            MasterPageMgr myMasterPageMgr = new MasterPageMgr();
            MetaTag       myMetaTag       = myMasterPageMgr.Get_MasterPage_MetaTag(e.CommandArgument.ToString());

            tbx_UpdateCSSURL.Text         = myMetaTag.Meta_Src;
            btn_UpdateCSS.CommandArgument = e.CommandArgument.ToString();

            Panel_Update_CSS.Visible = true;
        }
Пример #23
0
        public void Update_WithInvalidMetaTag_ThrowsArgumentException()
        {
            // arrange
            var metaTag    = new MetaTag(null);
            var repository = new DatabaseObjectProvider();

            // act, assert
            Assert.IsFalse(metaTag.IsValid);
            UnitTestHelper.AssertThrows <ArgumentException>(() => repository.Update(metaTag));
        }
        public void ShouldNotInsertDuplicateItem()
        {
            var item          = new MetaTag("twitter:description", "some description");
            var itemDuplicate = new MetaTag("TWITTER:description", "some description");

            _collection.Add(item);
            _collection.Add(itemDuplicate);

            Assert.Single(_collection);
        }
Пример #25
0
        /// <summary>
        ///     Flushes remaining data to the file and then manually writes JSON tags to close the file out
        /// </summary>
        internal override async Task FlushWriter()
        {
            if (Queue.Count > 0)
            {
                if (!_initialWrite)
                {
                    await _streamWriter.WriteAsync(",");
                }

                if (_context.Flags.PrettyPrint)
                {
                    await _streamWriter.WriteAsync(string.Join(",", Queue.Select(x => JsonSerializer.PrettyPrint(JsonSerializer.ToJsonString(x)))));
                }
                else
                {
                    await _streamWriter.WriteAsync(string.Join(",", Queue.Select(JsonSerializer.ToJsonString)));
                }
                Queue.Clear();
            }

            if (_context.Flags.PrettyPrint)
            {
                await _streamWriter.WriteAsync("],\n\"meta\":");
            }
            else
            {
                await _streamWriter.WriteAsync(@"],""meta"":");
            }

            var meta = new MetaTag
            {
                Count             = Count,
                CollectionMethods = (long)_context.ResolvedCollectionMethods,
                DataType          = DataType,
                Version           = 4
            };

            if (_context.Flags.PrettyPrint)
            {
                await _streamWriter.WriteAsync(JsonSerializer.PrettyPrint(JsonSerializer.ToJsonString(meta)));

                await _streamWriter.WriteAsync("\n}");
            }
            else
            {
                await _streamWriter.WriteAsync(JsonSerializer.ToJsonString(meta));

                await _streamWriter.WriteAsync("}");
            }

            await _streamWriter.FlushAsync();

            _streamWriter.Close();
        }
Пример #26
0
        public MetaTag AddMetaTagForBlog(string content, string name, string httpEquiv)
        {
            var newTag = new MetaTag(content)
            {
                Name = name, HttpEquiv = httpEquiv, BlogId = Config.CurrentBlog.Id, DateCreated = DateTime.Now
            };

            MetaTags.Create(newTag);

            return(newTag);
        }
Пример #27
0
        private MetaTag Mapper(IDataReader reader)
        {
            MetaTag metaTag       = new MetaTag();
            int     startingIndex = 0;

            metaTag.Id            = reader.GetSafeInt32(startingIndex++);
            metaTag.Data          = reader.GetSafeString(startingIndex++);
            metaTag.MetaTagTypeId = reader.GetSafeInt32(startingIndex++);
            metaTag.DateCreated   = reader.GetSafeDateTime(startingIndex++);
            metaTag.DateModified  = reader.GetSafeDateTime(startingIndex++);
            return(metaTag);
        }
        public void ShouldUpdateCorrectly()
        {
            var item = new MetaTag("twitter:description", "some description");

            _collection.Add(item);
            var newItem = new[] { new MetaTag("twitter:description", "some description") };

            _collection.Update(newItem);

            Assert.Single(_collection);
            Assert.Equal("twitter:description", _collection.First().Name);
        }
        private static void InsertNewMetaTag(string content, string nameValue, string httpEquivValue, DateTime created,
                                             int blogId, int?entryId)
        {
            var metaTag = new MetaTag();

            metaTag.Content     = content;
            metaTag.Name        = nameValue;
            metaTag.HttpEquiv   = httpEquivValue;
            metaTag.DateCreated = created;
            metaTag.BlogId      = blogId;
            metaTag.EntryId     = entryId;
            ObjectProvider.Instance().Create(metaTag);
        }
Пример #30
0
        public static MetaTagViewModel Convert(this MetaTag dto)
        {
            if (dto == null)
            {
                return(null);
            }

            return(new MetaTagViewModel
            {
                Count = dto.Count,
                Tag = dto.Tag
            });
        }
Пример #31
0
        /// <summary>
        /// A new Marker associated with a counter control has been created;
        /// Increment the counter controls value, and add the metatag to all data structures (including the database)
        /// </summary>
        /// <param name="myCounter"></param>
        /// <param name="mtag"></param>
        private void Markers_NewMetaTag(MyCounter myCounter, MetaTag mtag)
        {
            // Get the Counter Control's contents,  increment its value (as we have added a new marker)
            // Then update the control's content as well as the database
            string counter_data = myCounter.Content;

            if (String.IsNullOrWhiteSpace(counter_data)) counter_data = "0";
            int count = 0;
            try {
                count = Convert.ToInt32(counter_data);
            }
            catch
            {
                count = 0; // If we can't convert it, assume that someone set the default value to a non-integer in the template, and just revert it to zero.
            }
            count++;
            counter_data = count.ToString();
            this.state.isContentValueChangedFromOutside = true;
            dbData.UpdateRow(dbData.CurrentId, myCounter.DataLabel, counter_data);
            myCounter.Content = counter_data;
            state.isContentValueChangedFromOutside = false;

            // Find the metatagCounter associated with this particular control so we can add a metatag to it
            MetaTagCounter metatagCounter = null;
            foreach (MetaTagCounter mtcounter in this.CounterCoords)
            {
                if (mtcounter.DataLabel == myCounter.Key)
                {
                    metatagCounter = mtcounter;
                    break;
                }
            }

            // Fill in the metatag information. Also create a TagFinder (which contains a reference to the counter index) and add it as the object's metatag
            mtag.Label = myCounter.Label;   // The tooltip will be the counter label plus its data label
            mtag.Label += "\n" + myCounter.DataLabel;
            mtag.Brush = Brushes.Red;               // Make it Red (for now)
            mtag.DataLabel = myCounter.DataLabel;
            mtag.Annotate = true; // Show the annotation as its created. We will clear it on the next refresh
            mtag.AnnotationAlreadyShown = false;

            // Add the meta tag to the metatag counter
            metatagCounter.AddMetaTag(mtag);

            // Update this counter's list of points in the marker atabase
            String pointlist = "";
            foreach (MetaTag mt in metatagCounter.MetaTags)
            {
                if (! pointlist.Equals ("") ) pointlist += Constants.MARKERBAR; // We don't put a marker bar at the beginning of the point list
                pointlist += String.Format("{0:0.000},{1:0.000}", mt.Point.X, mt.Point.Y); // Add a point in the form x,y e.g., 0.5, 0.7
            }
            this.dbData.MarkerTableAddPoint(myCounter.DataLabel, pointlist);
            RefreshTheMarkableCanvasListOfMetaTags(true);
            Speak(myCounter.Content + " " + myCounter.Label); // Speak the current count
        }
Пример #32
0
 public static MvcHtmlString Meta(this HtmlHelper helper, MetaTag name, object value)
 {
     return Meta(helper, name.ToString(), value);
 }
Пример #33
0
        //Create a metatag with the given point and add it to the metatag list
        public MetaTag CreateMetaTag(System.Windows.Point point, string dataLabel)
        {
            MetaTag mtag = new MetaTag();

            mtag.Point = point;
            mtag.DataLabel = dataLabel;
            this.AddMetaTag(mtag);
            return mtag;
        }
Пример #34
0
 // Add a MetaTag to the list of MetaTags
 public void AddMetaTag(MetaTag mtag)
 {
     this.MetaTags.Add(mtag);
 }
Пример #35
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="queue"></param>
        /// <param name="tag"></param>
        /// <param name="query"></param>
        public void RequestQueueFiles(QueueType queue, MetaTag tag, string query)
        {
            string filter = String.Empty;
            List<string> trackList = new List<string>();
            bool loop = true;
            switch (tag)
            {
                case MetaTag.artist:
                    filter = XmlFilter(new[] {"ArtistPeople"}, query, true);
                    break;
                case MetaTag.album:
                    filter = XmlFilter(new[] {"Album"}, query, true);
                    break;
                case MetaTag.genre:
                    filter = XmlFilter(new[] {"Genre"}, query, true);
                    break;
                case MetaTag.title:
                    trackList.Add(System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(query)));
                    loop = false;
                    break;
                case MetaTag.none:
                    return;
                default:
                    return;
            }

            if (trackList.Count == 0)
            {
                mbApiInterface.Library_QueryFiles(filter);
                while (loop)
                {
                    string current = mbApiInterface.Library_QueryGetNextFile();
                    if (String.IsNullOrEmpty(current)) break;
                    trackList.Add(current);
                }
            }

            if (queue == QueueType.Next)
            {
                mbApiInterface.NowPlayingList_QueueFilesNext(trackList.ToArray());
            }
            else if (queue == QueueType.Last)
            {
                mbApiInterface.NowPlayingList_QueueFilesLast(trackList.ToArray());
            }
            else if (queue == QueueType.PlayNow)
            {
                mbApiInterface.NowPlayingList_Clear();
                mbApiInterface.NowPlayingList_QueueFilesLast(trackList.ToArray());
                mbApiInterface.NowPlayingList_PlayNow(trackList[0]);
            }
        }