public void DumpMethod()
        {
            if (TemplateManager == null)
            {
                return;
            }

            if (!Templates.Any(t => t.IsSelected))
            {
                return;
            }

            if (ConnectionManager.Instance == null)
            {
                return;
            }

            try
            {
                InnerExecuteDump();
                Status = $"Export Completed";
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Error exporting template: {message}", ex.Message);
                Status = $"Error exporting template: {ex.Message}";
            }
        }
Beispiel #2
0
            /// <inheritdoc/>
            public override object VisitTemplateDefinition([NotNull] LGFileParser.TemplateDefinitionContext context)
            {
                var startLine = context.Start.Line;
                var stopLine  = context.Stop.Line;

                var templateNameLine = context.templateNameLine().TEMPLATE_NAME_LINE().GetText();

                var(templateName, parameters) = ExtractTemplateNameLine(templateNameLine);

                if (_templates.Any(u => u.Name == templateName))
                {
                    var diagnostic = BuildTemplatesDiagnostic(TemplateErrors.DuplicatedTemplateInSameTemplate(templateName), context.templateNameLine());
                    _templates.Diagnostics.Add(diagnostic);
                }
                else
                {
                    var templateBody = context.templateBody().GetText();

                    var sourceRange = new SourceRange(context, _templates.Id);
                    var template    = new Template(templateName, parameters, templateBody, sourceRange);

                    CheckTemplateName(templateName, context.templateNameLine());
                    CheckTemplateParameters(parameters, context.templateNameLine());
                    template.TemplateBodyParseTree = CheckTemplateBody(templateName, templateBody, context.templateBody(), startLine);

                    _templates.Add(template);
                }

                return(null);
            }
        public TemplateSetModel GetTemplateSet(string name)
        {
            // If an artifact doesn't specify a template set, first try using the original
            // single template list if it exists.  If not, look for a template set called "default".
            if (string.IsNullOrEmpty(name))
            {
                if (Templates.Any())
                {
                    return new TemplateSetModel {
                               Templates = Templates
                    }
                }
                ;

                name = "default";
            }

            var set = TemplateSets.FirstOrDefault(s => s.Name == name);

            if (set == null)
            {
                throw new ArgumentException($"Could not find requested template set '{name}'");
            }

            return(set);
        }
    }
 /// <summary> Finds the template by id. </summary>
 public ListElementItem FindTemplate(int id)
 {
     if (Templates == null || !Templates.Any())
     {
         return(null);
     }
     return(Templates.FirstOrDefault(x => x.Id == id));
 }
Beispiel #5
0
 private void EnsureStandardTemplateExists()
 {
     if (!Templates.Any(t => t.Id == 0))
     {
         templates.Add(new Template(0, "Standard", Languages.FirstOrDefault(lang => lang.Id.ToUpper() == "DE"), ActiveAccount?.AvailableCategories.FirstOrDefault(c => c.Id == 20)));
         WriteTemplates();
     }
 }
Beispiel #6
0
        /// <summary>
        /// Set the Default Template for a ModuleType in this Agency.
        /// </summary>
        public void SaveDefaultTemplate(Guid id)
        {
            if (!Templates.Any(x => x.Id == id))
            {
                throw new Exception("Template does not belong to this Agency.");
            }

            Configuration.DefaultTemplateCollection[Templates.FirstOrDefault(template => template.Id == id).ModuleType] = id;
        }
        /// <summary>
        /// 添加模版项,实际上是添加到Templates集合中。
        /// 未指定模版名称时,使用模版的散列作为模版名称
        /// </summary>
        /// <param name="name"></param>
        /// <param name="content"></param>
        public void AddTemplateItem(String name, String content)
        {
            if (String.IsNullOrEmpty(name) && String.IsNullOrEmpty(content))
            {
                throw new ArgumentNullException("content", "名称和模版内容不能同时为空!");
            }

            if (Status >= TemplateStatus.Process)
            {
                throw new InvalidOperationException("模版已分析处理,不能再添加模版!");
            }

            // 未指定模版名称时,使用模版的散列作为模版名称
            if (String.IsNullOrEmpty(name))
            {
                name = Hash(content);
            }

            TemplateItem item = FindTemplateItem(name);

            if (item == null)
            {
                item = new TemplateItem();
                Templates.Add(item);
            }
            item.Name    = name;
            item.Content = content;

            // 设置类名
            var cname = Path.GetFileNameWithoutExtension(name);

            // 如果无扩展的名称跟前面的名称不同,并且无扩展名称跟编码后的类名相同,则设置类型为无扩展名称
            if (cname != name && cname == GetClassName(cname))
            {
                // 如果没有别的模版项用这个类名,这里使用
                if (!Templates.Any(t => t.ClassName == cname))
                {
                    item.ClassName = cname;
                }
            }

            // 设置程序集名,采用最后一级目录名
            if (String.IsNullOrEmpty(AssemblyName))
            {
                var dname = Path.GetDirectoryName(name);
                if (!String.IsNullOrEmpty(dname))
                {
                    dname = Path.GetFileName(dname);
                    if (!String.IsNullOrEmpty(dname))
                    {
                        AssemblyName = dname;
                    }
                }
            }
        }
Beispiel #8
0
        private void RegisterVelocity(ILogger logger)
        {
            if (GetAllTransforms().All(t => t.Method != "velocity") && !Templates.Any(t => t.Engine.Equals("velocity")))
            {
                return;
            }

            logger.Info("Initializing nVelocity");
            Velocity.SetProperty(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM, typeof(VelocityLogSystem).FullName);
            Velocity.Init();
        }
Beispiel #9
0
        /// <summary>
        /// Check a Template Name.
        /// <exception cref="DuplicateFieldNameException">if field name is already present in agency</exception>
        /// </summary>
        private void CheckTemplateName(string name, ModuleType moduleType)
        {
            var templateExists = Templates.Any(
                x => x.ModuleType == moduleType &&
                String.Equals(x.Name, name, StringComparison.InvariantCultureIgnoreCase));

            if (templateExists)
            {
                throw new DuplicateFieldNameException("A Template with that Name already exists in this Agency.");
            }
        }
Beispiel #10
0
        /// <summary>
        /// Set the Default Template for a ModuleType in this Agency.
        /// </summary>
        public void SetDefaultTemplate(Template template)
        {
            if (!template.IsActive)
            {
                throw new Exception("Template must be active before it can be set default.");
            }

            if (!Templates.Any(x => x.Id == template.Id))
            {
                throw new Exception("Template does not belong to this Agency.");
            }

            Configuration.DefaultTemplateCollection[template.ModuleType] = template.Id;
        }
        private void ReselectPreviousItem(int selectedIndex)
        {
            if (!Templates.Any())
            {
                return;
            }

            int index = Templates.IndexOf(SelectedTemplate);

            if (index >= 0)
            {
                SelectedTemplate = Templates[index];
            }
            else
            {
                SelectedTemplate = Templates[Clamp(selectedIndex, 0, Templates.Count - 1)];
            }
        }
Beispiel #12
0
        private void RegisterRazor(ILogger logger)
        {
            if (TemplateContentType == "html")
            {
                return;
            }

            if (!Templates.Any() && !GetAllTransforms().Any(t => t.Method == "template" || t.Method == "razor"))
            {
                return;
            }

            var config          = new FluentTemplateServiceConfiguration(c => c.WithEncoding(Encoding.Raw));
            var templateService = new TemplateService(config);

            logger.Debug("Switching RazorEngine content type to raw.");
            Razor.SetTemplateService(templateService);
        }
    /// <summary>
    /// Load templates
    /// </summary>
    void LoadTemplates()
    {
        var sort = Request.QueryString["sort"] ?? "createddate desc";

        //bind repeater
        var list = new Templates().GetTemplates(new TemplateFilter { ClientId = int.Parse(lblClientId.Text) }).OrderByDescending(t => t.TemplateId);

        switch (sort)
        {
            case "createddate desc":
                list = list.OrderByDescending(t => t.TemplateId);
                break;
            case "createddate asc":
                list = list.OrderBy(t => t.TemplateId);
                break;
            case "title asc":
                list = list.OrderBy(t => t.Title);
                break;
            case "title desc":
                list = list.OrderByDescending(t => t.Title);
                break;
            case "folders":
                list = list.OrderBy(t => t.ApplicationStatus);
                break;
        }
        ddlSort.SelectedValue = sort;

        rptTemplates.DataSource = list;
        rptTemplates.DataBind();

        //show and hide items/actions and no items
        if (list.Any())
        {
            noitems.Visible = false;
            items.Visible = true;
            actions.Visible = true;
        }
        else
        {
            noitems.Visible = true;
            items.Visible = false;
            actions.Visible = false;
        }
    }
Beispiel #14
0
 /// <summary>
 /// The method sets the state of template bundle regarding on templates.
 /// </summary>
 public void SetTemplateBundleState()
 {
     if (Templates.Any(template => template.TemplateState == TemplateState.ErrorInTemplate))
     {
         TemplateBundleState |= TemplateBundleStates.AtLeastOneTemplateIsFaulty;
     }
     else
     {
         TemplateBundleState &= ~TemplateBundleStates.AtLeastOneTemplateIsFaulty;
     }
     if (Templates.Any(template => template.TemplateState == TemplateState.Disabled))
     {
         TemplateBundleState |= TemplateBundleStates.AtLeastOneTemplateDisabled;
     }
     else
     {
         TemplateBundleState &= ~TemplateBundleStates.AtLeastOneTemplateDisabled;
     }
 }
Beispiel #15
0
        public AutomationUploader()
        {
            if (!Directory.Exists("settings"))
            {
                Directory.CreateDirectory("settings");
            }

            if (File.Exists(templatesPath))
            {
                ReadTemplates();
                EnsureTemplateIdsAreUnique();
                EnsureTemplatesHaveCategory();
                EnsureTemplatesHaveLanguage();
            }

            EnsureStandardTemplateExists();

            if (File.Exists(accountJsonPath))
            {
                using (StreamReader reader = new StreamReader(accountJsonPath))
                {
                    string savedAccountJson = reader.ReadToEnd();
                    var    savedAccount     = JsonConvert.DeserializeObject <AccountJson>(savedAccountJson);

                    var categories = savedAccount.categories?.Select(c => new Category(c.id, c.title)).ToArray();
                    if (categories == null)
                    {
                        categories = new[] { Category.Default };
                    }

                    var region = savedAccount.region;
                    if (region == null)
                    {
                        region = "DE";
                    }

                    ActiveAccount = new Account()
                    {
                        Id = savedAccount.id, Title = savedAccount.title, Access = new Authentification()
                        {
                            RefreshToken = savedAccount.refreshToken
                        }, Region = savedAccount.region, AvailableCategories = categories
                    };

                    if (string.IsNullOrWhiteSpace(ActiveAccount?.Access?.AccessToken))
                    {
                        RefreshAccess();
                    }
                }
            }

            if (File.Exists(selectedPathsJsonPath))
            {
                try
                {
                    ReadPaths();
                }
                catch (Exception ex)
                {
                    Debug.Write(ex.Message);

                    Paths = new PathSettings();
                    File.Delete(selectedPathsJsonPath);
                }
            }

            if (File.Exists(languagesPath))
            {
                try
                {
                    ReadLanguages();
                }
                catch (Exception ex)
                {
                    Debug.Write(ex.Message);

                    Languages = new List <Language>(new Language[] { Language.Default });
                    File.Delete(languagesPath);
                }
            }
            else if (ActiveAccount != null && ActiveAccount.Access != null && ActiveAccount.Access.AccessToken != null)
            {
                Languages = AccountCommunication.LoadYoutubeLanguages(ActiveAccount.Access.AccessToken).ToList();

                WriteLanguages();
            }

            foreach (var path in Paths)
            {
                if (!Templates.Any(t => t.Id == path.SelectedTemplateId))
                {
                    path.SelectedTemplateId = 0;
                }
            }

            UnfinishedJob = LoadLastJob();
        }
Beispiel #16
0
 public bool TemplateNameExists(String name)
 {
     return(Templates.Any(x => x.Name == name));
 }
Beispiel #17
0
        public override void WriteInitializationScript(System.IO.TextWriter writer)
        {
            var options         = new Dictionary <string, object>(Events);
            var positionOptions = new Dictionary <string, object>();

            if (Position.Bottom != 20)
            {
                positionOptions.Add("bottom", Position.Bottom);
            }
            if (Position.Right != 20)
            {
                positionOptions.Add("right", Position.Right);
            }
            if (Position.Top != int.MinValue)
            {
                positionOptions.Add("top", Position.Top);
            }
            if (Position.Left != int.MinValue)
            {
                positionOptions.Add("left", Position.Left);
            }
            if (!Position.Pinned)
            {
                positionOptions.Add("pinned", Position.Pinned);
            }

            if (positionOptions.Count > 0)
            {
                options.Add("position", positionOptions);
            }

            if (Stacking != NotificationStackingSettings.Default)
            {
                options["stacking"] = Stacking;
            }

            if (!HideOnClick)
            {
                options["hideOnClick"] = HideOnClick;
            }

            if (Button)
            {
                options["button"] = Button;
            }

            if (AllowHideAfter > 0)
            {
                options["allowHideAfter"] = AllowHideAfter;
            }

            if (AutoHideAfter != 5000)
            {
                options["autoHideAfter"] = AutoHideAfter;
            }

            if (AppendTo.HasValue())
            {
                options["appendTo"] = AppendTo;
            }

            if (Width.HasValue())
            {
                options["width"] = Width;
            }

            if (Height.HasValue())
            {
                options["height"] = Height;
            }

            var animation = Animation.ToJson();

            if (animation.Any())
            {
                if (animation["animation"] is bool)
                {
                    options["animation"] = false;
                }
                else
                {
                    options["animation"] = animation["animation"];
                }
            }

            if (Templates.Any())
            {
                options["templates"] = Templates.Select(t => t.Serialize());
            }

            writer.Write(Initializer.Initialize(Selector, "Notification", options));

            base.WriteInitializationScript(writer);
        }