Пример #1
0
        public void Add(ITagType type)
        {
            if (type == null)
                throw new ArgumentNullException("type");

            byId.Add(type.Id, type);
        }
        public IEnumerable <Gnosis.ITag> GetByTarget(Uri target, ITagType type)
        {
            if (target == null)
            {
                throw new ArgumentNullException("target");
            }
            if (type == null)
            {
                throw new ArgumentNullException("type");
            }

            try
            {
                logger.Info("SQLiteTagRepository.GetByTarget(Uri, ITagType)");

                var builder = new CommandBuilder("select * from Tag where Target = @Target and Type = @Type;");
                builder.AddParameter("@Target", target.ToString());
                builder.AddParameter("@Type", type.Id);

                return(GetTags(builder));
            }
            catch (Exception ex)
            {
                logger.Error("  GetByTarget(Uri, ITagType)", ex);
                throw;
            }
        }
Пример #3
0
        public Tag(Uri target, ITagType type, string value, IAlgorithm algorithm, byte[] data, long id)
        {
            if (target == null)
            {
                throw new ArgumentNullException("target");
            }
            if (algorithm == null)
            {
                throw new ArgumentNullException("algorithm");
            }
            if (type == null)
            {
                throw new ArgumentNullException("type");
            }
            if (value == null)
            {
                throw new ArgumentNullException("value");
            }
            if (data == null)
            {
                throw new ArgumentNullException("data");
            }

            this.target    = target;
            this.algorithm = algorithm;
            this.type      = type;
            this.value     = value;
            this.data      = data;
            this.id        = id;
        }
Пример #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Tag"/> class.
 /// </summary>
 /// <param name="tagType">Type of the tag.</param>
 public Tag(TagType tagType)
 {
     m_tagType = tagType;
     if (m_tagType.isConstrained)
     {
         m_value = m_tagType.ValueCandidates[0];
     }
 }
Пример #5
0
        public void Remove(ITagType type)
        {
            if (type == null)
                throw new ArgumentNullException("type");

            if (byId.ContainsKey(type.Id))
                byId.Remove(type.Id);
        }
Пример #6
0
        public void Add(ITagType type)
        {
            if (type == null)
            {
                throw new ArgumentNullException("type");
            }

            byId.Add(type.Id, type);
        }
Пример #7
0
        public void Remove(ITagType type)
        {
            if (type == null)
            {
                throw new ArgumentNullException("type");
            }

            if (byId.ContainsKey(type.Id))
            {
                byId.Remove(type.Id);
            }
        }
        public void Overwrite(Uri target, ITagType type, IEnumerable <Gnosis.ITag> tags)
        {
            if (target == null)
            {
                throw new ArgumentNullException("target");
            }
            if (type == null)
            {
                throw new ArgumentNullException("type");
            }

            try
            {
                var builders = new List <ICommandBuilder>();

                var deleteBuilder = new CommandBuilder("delete from Tag where Target = @Target and Type = @Type;");
                deleteBuilder.AddParameter("@Target", target.ToString());
                deleteBuilder.AddParameter("@Type", type.Id);
                builders.Add(deleteBuilder);

                foreach (var tag in tags.Where(x => x.Target == target && x.Type == type))
                {
                    var insertBuilder = new CommandBuilder("insert into Tag (Target, Algorithm, Domain, Type, Value, Data) values (@Target, @Algorithm, @Domain, @Type, @Value, @Data);");
                    insertBuilder.AddParameter("@Target", tag.Target.ToString());
                    insertBuilder.AddParameter("@Algorithm", tag.Algorithm.Id);
                    insertBuilder.AddParameter("@Domain", (int)tag.Type.Domain);
                    insertBuilder.AddParameter("@Type", tag.Type.Id);
                    insertBuilder.AddParameter("@Value", tag.Value);
                    insertBuilder.AddParameter("@Data", tag.Data);

                    builders.Add(insertBuilder);
                }

                if (builders.Count < 2)
                {
                    return;
                }

                ExecuteTransaction(builders);
            }
            catch (Exception ex)
            {
                logger.Error("  Overwrite", ex);
                throw;
            }
        }
Пример #9
0
        public Tag(Uri target, ITagType type, string value, IAlgorithm algorithm, byte[] data, long id)
        {
            if (target == null)
                throw new ArgumentNullException("target");
            if (algorithm == null)
                throw new ArgumentNullException("algorithm");
            if (type == null)
                throw new ArgumentNullException("type");
            if (value == null)
                throw new ArgumentNullException("value");
            if (data == null)
                throw new ArgumentNullException("data");

            this.target = target;
            this.algorithm = algorithm;
            this.type = type;
            this.value = value;
            this.data = data;
            this.id = id;
        }
        public void Overwrite(Uri target, ITagType type, IEnumerable<Gnosis.ITag> tags)
        {
            if (target == null)
                throw new ArgumentNullException("target");
            if (type == null)
                throw new ArgumentNullException("type");

            try
            {
                var builders = new List<ICommandBuilder>();

                var deleteBuilder = new CommandBuilder("delete from Tag where Target = @Target and Type = @Type;");
                deleteBuilder.AddParameter("@Target", target.ToString());
                deleteBuilder.AddParameter("@Type", type.Id);
                builders.Add(deleteBuilder);
                
                foreach (var tag in tags.Where(x => x.Target == target && x.Type == type))
                {
                    var insertBuilder = new CommandBuilder("insert into Tag (Target, Algorithm, Domain, Type, Value, Data) values (@Target, @Algorithm, @Domain, @Type, @Value, @Data);");
                    insertBuilder.AddParameter("@Target", tag.Target.ToString());
                    insertBuilder.AddParameter("@Algorithm", tag.Algorithm.Id);
                    insertBuilder.AddParameter("@Domain", (int)tag.Type.Domain);
                    insertBuilder.AddParameter("@Type", tag.Type.Id);
                    insertBuilder.AddParameter("@Value", tag.Value);
                    insertBuilder.AddParameter("@Data", tag.Data);

                    builders.Add(insertBuilder);
                }

                if (builders.Count < 2)
                    return;

                ExecuteTransaction(builders);
            }
            catch (Exception ex)
            {
                logger.Error("  Overwrite", ex);
                throw;
            }
        }
        public IEnumerable<Gnosis.ITag> GetByTarget(Uri target, ITagType type)
        {
            if (target == null)
                throw new ArgumentNullException("target");
            if (type == null)
                throw new ArgumentNullException("type");

            try
            {
                logger.Info("SQLiteTagRepository.GetByTarget(Uri, ITagType)");

                var builder = new CommandBuilder("select * from Tag where Target = @Target and Type = @Type;");
                builder.AddParameter("@Target", target.ToString());
                builder.AddParameter("@Type", type.Id);

                return GetTags(builder);
            }
            catch (Exception ex)
            {
                logger.Error("  GetByTarget(Uri, ITagType)", ex);
                throw;
            }
        }
Пример #12
0
 /// <summary>
 /// Filters the list on those tags with the specified type.
 /// </summary>
 /// <param name="type">The type.</param>
 /// <returns>A sublist consisting only of tags with the specified type.</returns>
 public List <ITag> FilterOn(ITagType type)
 {
     return(FindAll(delegate(ITag tag) { return tag.TagType.Equals(type); }));
 }
Пример #13
0
 public ITag Create(Uri target, IAlgorithm algorithm, ITagType type, string value, byte[] data, long id)
 {
     return new Tag(target, type, value, algorithm, data, id);
 }
Пример #14
0
 public Tag(Uri target, ITagType type, string value, IAlgorithm algorithm, byte[] data)
     : this(target, type, value, algorithm, data, 0)
 {
 }
Пример #15
0
 public Tag(Uri target, ITagType type, string value, IAlgorithm algorithm)
     : this(target, type, value, algorithm, new byte[0], 0)
 {
 }
Пример #16
0
 public Tag(Uri target, ITagType type, string value)
     : this(target, type, value, Algorithms.Algorithm.Default, new byte[0], 0)
 {
 }
Пример #17
0
 public ITag Create(Uri target, IAlgorithm algorithm, ITagType type, string value, byte[] data, long id)
 {
     return(new Tag(target, type, value, algorithm, data, id));
 }
Пример #18
0
 public Tag(Uri target, ITagType type, string value, IAlgorithm algorithm, byte[] data)
     : this(target, type, value, algorithm, data, 0)
 {
 }
Пример #19
0
 public Tag(Uri target, ITagType type, string value, IAlgorithm algorithm)
     : this(target, type, value, algorithm, new byte[0], 0)
 {
 }
Пример #20
0
 public Tag(Uri target, ITagType type, string value)
     : this(target, type, value, Algorithms.Algorithm.Default, new byte[0], 0)
 {
 }