public TagCfg PackTag(TagAbstract tag, StoreContext context)
        {
            var config = new TagCfg
            {
                ClassName        = this.ClassName,
                Name             = tag.Name,
                DisplayName      = tag.DisplayName,
                Description      = tag.Description,
                Format           = tag.Format,
                Access           = tag.Access,
                ValueType        = tag.ValueType,
                Custom           = PackTagSpecific(tag),
                TagsToTagsGroups = new List <TagsToTagsGroups>(),
            };

            foreach (var tagsGroup in tag.Groups.Values)
            {
                var storedGroup = context.TagsGroups.GetOrCreate(tg => tg.Name == tagsGroup.Name);
                storedGroup.Name        = tagsGroup.Name;
                storedGroup.Min         = tagsGroup.Min;
                storedGroup.Description = tagsGroup.Description;

                var ttg = config.TagsToTagsGroups.FirstOrDefault(o => o.TagsGroupCfg.Name == storedGroup.Name);
                if (ttg == default)
                {
                    ttg              = context.TagsToTagsGroups.GetOrCreate(o => o.TagsGroupCfg.Name == storedGroup.Name && o.TagCfg.Id == config.Id);
                    ttg.TagCfg       = config;
                    ttg.TagsGroupCfg = storedGroup;
                }
                config.TagsToTagsGroups.Add(ttg);
            }

            return(config);
        }
        protected override string PackTagSpecific(TagAbstract tag)
        {
            // Region
            // Begin
            var mtag = (MTag)tag;

            return(JsonConvert.SerializeObject(new
            {
                mtag.Region,
                mtag.Begin,
            }));
        }
Exemple #3
0
 protected void Add(TagAbstract<double?> numericTag)
 {
     _tags.Add(numericTag);
     _numericTags.Add(numericTag);
 }
Exemple #4
0
 protected void Add(TagAbstract<bool?> digitalTag)
 {
     _tags.Add(digitalTag);
     _digitalTags.Add(digitalTag);
 }
Exemple #5
0
 public Argument(TagAbstract tag)
 {
     IsConst  = false;
     this.tag = tag;
 }
Exemple #6
0
 public INumericTag AddNumTag(TagAbstract <double?> tag)
 {
     Add(tag);
     return(tag as INumericTag);
 }
Exemple #7
0
 public IDigitalTag AddDigTag(TagAbstract <bool?> tag)
 {
     Add(tag);
     return(tag as IDigitalTag);
 }
Exemple #8
0
 public INumericTag AddNumTag(TagAbstract<double?> tag)
 {
     Add(tag);
     return tag as INumericTag;
 }
Exemple #9
0
 public IDigitalTag AddDigTag(TagAbstract<bool?> tag)
 {
     Add(tag);
     return tag as IDigitalTag;
 }
 protected abstract string PackTagSpecific(TagAbstract tag);