コード例 #1
0
        public static MvcHtmlString StatusLabelTemplate(this HtmlHelper htmlHelper, TemplateStatus status, object htmlAttributes = null)
        {
            var span = new TagBuilder("span");

            if (htmlAttributes != null)
            {
                span.MergeAttributes(new RouteValueDictionary(htmlAttributes));
            }
            span.AddCssClass("label");
            switch (status)
            {
            case TemplateStatus.Draft:
                span.AddCssClass("label-info");
                break;

            case TemplateStatus.Active:
                span.AddCssClass("label-success");
                break;

            case TemplateStatus.Retracted:
                span.AddCssClass("label-danger");
                break;

            default:
                span.AddCssClass("label-default");
                break;
            }

            span.GenerateId("Status");
            span.SetInnerText(status.ToString());

            return(new MvcHtmlString(span.ToString(TagRenderMode.Normal)));
        }
コード例 #2
0
        private static TemplateVersion Map(Template template,
                                           TemplateVersion sourceVersion,
                                           Reference author,
                                           string templateJson      = null,
                                           TemplateStatus newStatus = TemplateStatus.Draft,
                                           int majorVersion         = 0,
                                           int minorVersion         = 1,
                                           string publishNote       = null)
        {
            int             previousVersionNumber = template.Current?.Version ?? 0;
            TemplateVersion newVersion            = sourceVersion.Clone() as TemplateVersion;

            newVersion.Author          = author;
            newVersion.TemplateId      = template.TemplateId;
            newVersion.Name            = template.Name;
            newVersion.FundingStreamId = template.FundingStream.Id;
            newVersion.FundingPeriodId = template.FundingPeriod.Id;
            newVersion.Comment         = publishNote;
            newVersion.TemplateJson    = templateJson ?? sourceVersion?.TemplateJson;
            newVersion.Version         = previousVersionNumber + 1;
            newVersion.MajorVersion    = majorVersion;
            newVersion.MinorVersion    = minorVersion;
            newVersion.Status          = newStatus;
            newVersion.Date            = DateTimeOffset.Now;
            newVersion.Predecessors ??= new List <string>();

            if (template.Current != null)
            {
                newVersion.Predecessors.Add(template.Current.Id);
            }

            return(newVersion);
        }
コード例 #3
0
        /// <summary>处理预先写入Templates的模版集合,模版生成类的代码在Sources中返回</summary>
        public void Process()
        {
            if (Templates == null || Templates.Count < 1)
            {
                throw new InvalidOperationException("在Templates中未找到待处理模版!");
            }

            if (Status >= TemplateStatus.Process)
            {
                return;
            }

            for (int i = 0; i < Templates.Count; i++)
            {
                Process(Templates[i]);
            }

            Status = TemplateStatus.Process;
        }
コード例 #4
0
        public static string GetTemplateStatus(TemplateStatus status)
        {
            string statusName = string.Empty;

            switch (status)
            {
            case TemplateStatus.Normal:
                statusName = "正常";
                break;

            case TemplateStatus.Inactive:
                statusName = "未使用";
                break;

            default:
                break;
            }

            return(statusName);
        }
コード例 #5
0
        public void loadStatusData()
        {
            TemplateStatus a;

            TemplateStatusArray.Clear();
            a            = new TemplateStatus();
            a.StatusID   = 2;
            a.StatusName = "All";
            TemplateStatusArray.Add(a);

            a            = new TemplateStatus();
            a.StatusID   = 1;
            a.StatusName = "Active";
            TemplateStatusArray.Add(a);

            a            = new TemplateStatus();
            a.StatusID   = 0;
            a.StatusName = "Inactive";
            TemplateStatusArray.Add(a);

            SelectedStatus = 1;
        }
コード例 #6
0
        /// <summary>编译运行</summary>
        /// <returns></returns>
        public Assembly Compile()
        {
            if (Status >= TemplateStatus.Compile)
            {
                return(Assembly);
            }

            if (Status < TemplateStatus.Process)
            {
                Process();
            }

            if (References != null)
            {
                AssemblyReferences.AddRange(References);
            }

            String name = AssemblyName;

            if (String.IsNullOrEmpty(Path.GetExtension(name)))
            {
                name += ".dll";
            }
            Assembly asm = Compile(name, AssemblyReferences, Provider, Errors, this);

            if (asm != null)
            {
                Assembly = asm;
            }

            // 释放提供者
            Provider = null;

            Status = TemplateStatus.Compile;

            return(asm);
        }
コード例 #7
0
        /// <summary>编译运行</summary>
        /// <returns></returns>
        public Assembly Compile()
        {
            if (Status >= TemplateStatus.Compile) return Assembly;

            if (Status < TemplateStatus.Process) Process();

            if (References != null) AssemblyReferences.AddRange(References);

            var name = AssemblyName;
            if (String.IsNullOrEmpty(Path.GetExtension(name))) name += ".dll";
            var asm = Compile(name, AssemblyReferences, Provider, Errors, this);
            if (asm != null) Assembly = asm;

            // 释放提供者
            Provider = null;

            Status = TemplateStatus.Compile;

            return asm;
        }
コード例 #8
0
        /// <summary>处理预先写入Templates的模版集合,模版生成类的代码在Sources中返回</summary>
        public void Process()
        {
            if (Templates == null || Templates.Count < 1) throw new InvalidOperationException("在Templates中未找到待处理模版!");

            if (Status >= TemplateStatus.Process) return;

            for (int i = 0; i < Templates.Count; i++)
            {
                Process(Templates[i]);
            }

            Status = TemplateStatus.Process;
        }
コード例 #9
0
        private void SaveSettings(long idVersion, String name, List <String> contentmodules, List <dtoChannelConfigurator> items, TemplateStatus status, Dictionary <String, List <String> > placeHolders = null)
        {
            TemplateDefinitionVersion version = Service.SaveSettings(idVersion, name, contentmodules, items, status, placeHolders);

            if (version != null)
            {
                View.AllowSaveDraft = (version.Status == TemplateStatus.Draft);
                View.AllowSave      = (version.Status == TemplateStatus.Draft);
                //UpdateInUseSettings(items);
                View.LoadWizardSteps(View.IdTemplateCommunity, Service.GetAvailableSteps(idVersion, WizardTemplateStep.Settings, View.Ownership.Type));
                View.SendUserAction(View.IdTemplateCommunity, Service.ServiceModuleID(), ModuleTemplateMessages.ActionType.SaveVersionSettings);
                View.DisplayTemplateSettingsSaved();
                View.DisplayInput(version.DefaultTranslation.Name, version.Number, version.Status);
            }
            else
            {
                View.SendUserAction(View.IdTemplateCommunity, Service.ServiceModuleID(), ModuleTemplateMessages.ActionType.ErrorSavingSettings);
                View.DisplayTemplateSettingsErrors();
            }
        }
コード例 #10
0
 public void LeavePlaceHolders(String name, List <String> contentmodules, List <dtoChannelConfigurator> items, TemplateStatus status)
 {
     View.HideUserMessage();
     if (UserContext.isAnonymous)
     {
         Logout(View.CurrentType, View.IdTemplate, View.IdVersion);
     }
     else
     {
         SaveSettings(View.IdVersion, name, contentmodules, items, status);
     }
 }
コード例 #11
0
 public void SaveSettings(String name, List <String> contentmodules, List <dtoChannelConfigurator> items, TemplateStatus status)
 {
     View.HideUserMessage();
     if (UserContext.isAnonymous)
     {
         Logout(View.CurrentType, View.IdTemplate, View.IdVersion);
     }
     else
     {
         View.SavingSettings = true;
         View.SavingStatus   = status;
         TemplateDefinitionVersion version = Service.GetVersion(View.IdVersion);
         if (version != null)
         {
             Boolean askConfirm = false;
             Dictionary <String, List <String> > placeHolders = View.GetOldContentPlaceHolders((version.ModulesForContent == null) ? new List <String>() : version.ModulesForContent.Where(m => m.Deleted == BaseStatusDeleted.None && !contentmodules.Contains(m.ModuleCode)).Select(m => m.ModuleCode).ToList());
             if (placeHolders.Keys.Count > 0)
             {
                 Dictionary <String, List <String> > inUsePlaceHolders = Service.GetInUserPlaceHolders(version, placeHolders);
                 if (inUsePlaceHolders.Keys.Count > 0)
                 {
                     View.InUsePlaceHolders = inUsePlaceHolders;
                     View.DisplayConfirmModules(inUsePlaceHolders.Keys.ToList(), inUsePlaceHolders);
                     askConfirm = true;
                 }
             }
             if (!askConfirm)
             {
                 SaveSettings(version.Id, name, contentmodules, items, status);
             }
         }
         else
         {
             View.DisplayUnknownTemplate();
         }
     }
 }