Ejemplo n.º 1
0
        public AddViewDialog(DotNetProject project)
        {
            this.project = project;
            aspFlavor    = project.GetService <AspNetAppProjectFlavor> ();

            Build();

            provider = project.LanguageBinding.GetCodeDomProvider();

            var viewEngines = GetProperViewEngines();

            loadedTemplateList = new Dictionary <string, IList <string> > ();
            foreach (var engine in viewEngines)
            {
                viewEngineCombo.AppendText(engine);
                loadedTemplateList[engine] = aspFlavor.GetCodeTemplates("AddView", engine);
            }

            viewEngineCombo.Active = 0;
            InitializeTemplateStore(loadedTemplateList);

            ContentPlaceHolders = new List <string> ();
            string siteMaster = aspFlavor.VirtualToLocalPath("~/Views/Shared/Site.master", null);

            if (project.Files.GetFile(siteMaster) != null)
            {
                masterEntry.Text = "~/Views/Shared/Site.master";
            }

            placeholderCombo.Model = primaryPlaceholderStore;

            UpdateTypePanelSensitivity(null, null);
            UpdateMasterPanelSensitivity(null, null);
            Validate();
        }
Ejemplo n.º 2
0
        public bool IsCompatibleWith(MonoDevelop.Ide.Gui.Document document)
        {
            switch (AspNetAppProjectFlavor.DetermineWebSubtype(document.FileName))
            {
            case WebSubtype.WebForm:
            case WebSubtype.MasterPage:
            case WebSubtype.WebControl:
                break;

            default:
                return(false);
            }

            var clrVersion = ClrVersion.Net_2_0;
            var aspProj    = document.Project as DotNetProject;

            if (aspProj != null && aspProj.TargetFramework.ClrVersion != ClrVersion.Default)
            {
                clrVersion = aspProj.TargetFramework.ClrVersion;
            }

            foreach (var tbfa in ItemFilters)
            {
                ClrVersion filterVersion;
                switch (tbfa.FilterString)
                {
                case "ClrVersion.Net_1_1":
                    filterVersion = ClrVersion.Net_1_1;
                    break;

                case "ClrVersion.Net_2_0":
                    filterVersion = ClrVersion.Net_2_0;
                    break;

                case "ClrVersion.Net_4_0":
                    filterVersion = ClrVersion.Net_4_0;
                    break;

                default:
                    continue;
                }

                if (tbfa.FilterType == ToolboxItemFilterType.Require && filterVersion != clrVersion)
                {
                    return(false);
                }

                if (tbfa.FilterType == ToolboxItemFilterType.Prevent && filterVersion == clrVersion)
                {
                    return(false);
                }
            }
            return(true);
        }
Ejemplo n.º 3
0
        public static ProjectFile GetDesignerFile(ProjectFile file)
        {
            var ext = file.Project.GetService <AspNetAppProjectFlavor> ();

            var type = AspNetAppProjectFlavor.DetermineWebSubtype(file.FilePath);

            if (type != WebSubtype.WebForm && type != WebSubtype.WebControl && type != WebSubtype.MasterPage)
            {
                return(null);
            }

            var dfName = ext.Project.LanguageBinding.GetFileName(file.FilePath + ".designer");

            return(ext.Project.Files.GetFile(dfName));
        }
Ejemplo n.º 4
0
        public void Store(AspNetAppProjectFlavor project)
        {
            XspParameters xPar = project.XspParameters;

            xPar.Address            = ipAddress.Text;
            xPar.Port               = Convert.ToUInt16(portNumber.Value);
            xPar.Verbose            = verboseCheck.Active;
            xPar.SslMode            = (XspSslMode)sslMode.Active;
            xPar.SslProtocol        = (XspSslProtocol)sslProtocol.Active;
            xPar.KeyType            = (XspKeyType)keyType.Active;
            xPar.PrivateKeyFile     = keyLocation.Path;
            xPar.CertificateFile    = certLocation.Path;
            xPar.PasswordOptions    = (XspPasswordOptions)passwordOptions.Active;
            xPar.PrivateKeyPassword = passwordEntry.Text;
        }
        public override System.Threading.Tasks.Task <ParsedDocument> Parse(ParseOptions parseOptions, System.Threading.CancellationToken cancellationToken)
        {
            var info   = new WebFormsPageInfo();
            var errors = new List <Error> ();

            var parser = new XmlParser(
                new WebFormsRootState(),
                true
                );

            try {
                parser.Parse(parseOptions.Content.CreateReader());
            } catch (Exception ex) {
                LoggingService.LogError("Unhandled error parsing ASP.NET document '" + (parseOptions.FileName ?? "") + "'", ex);
                errors.Add(new Error(ErrorType.Error, "Unhandled error parsing ASP.NET document: " + ex.Message));
            }

            // get the errors from the StateEngine parser
            errors.AddRange(parser.Errors);

            // populating the PageInfo instance
            XDocument xDoc = parser.Nodes.GetRoot();

            info.Populate(xDoc, errors);

            var type = AspNetAppProjectFlavor.DetermineWebSubtype(parseOptions.FileName);

            if (type != info.Subtype)
            {
                if (info.Subtype == WebSubtype.None)
                {
                    errors.Add(new Error(ErrorType.Error, "File directive is missing", new DocumentLocation(1, 1)));
                }
                else
                {
                    type = info.Subtype;
                    errors.Add(new Error(ErrorType.Warning, "File directive does not match page extension", new DocumentLocation(1, 1)));
                }
            }

            var result = new WebFormsParsedDocument(parseOptions.FileName, type, info, xDoc);

            result.AddRange(errors);

            return(System.Threading.Tasks.Task.FromResult((ParsedDocument)result));
        }
Ejemplo n.º 6
0
        public XspOptionsPanelWidget(AspNetAppProjectFlavor project)
        {
            Build();

            XspParameters xPar = project.XspParameters;

            //index should be equivalent to XspSslMode enum
            ((ListStore)sslMode.Model).Clear();
            sslMode.AppendText(GettextCatalog.GetString("None"));
            sslMode.AppendText(GettextCatalog.GetString("Enabled"));
            sslMode.AppendText(GettextCatalog.GetString("Accept Client Certificates"));
            sslMode.AppendText(GettextCatalog.GetString("Require Client Certificates"));

            //index should be equivalent to XspSslProtocol enum
            ((ListStore)sslProtocol.Model).Clear();
            sslProtocol.AppendText(GettextCatalog.GetString("Default"));
#pragma warning disable MD0005
            sslProtocol.AppendText("TLS");
            sslProtocol.AppendText("SSL 2");
            sslProtocol.AppendText("SSL 3");
#pragma warning restore MD0005

            ((ListStore)keyType.Model).Clear();
            keyType.AppendText(GettextCatalog.GetString("None"));
#pragma warning disable MD0005
            keyType.AppendText("Pkcs12");
            keyType.AppendText("PVK");
#pragma warning restore MD0005

            ((ListStore)passwordOptions.Model).Clear();
            passwordOptions.AppendText(GettextCatalog.GetString("None"));
            passwordOptions.AppendText(GettextCatalog.GetString("Ask"));
            passwordOptions.AppendText(GettextCatalog.GetString("Store (insecure)"));

            //load all options
            ipAddress.Text         = xPar.Address;
            portNumber.Value       = xPar.Port;
            verboseCheck.Active    = xPar.Verbose;
            sslMode.Active         = (int)xPar.SslMode;
            sslProtocol.Active     = (int)xPar.SslProtocol;
            keyType.Active         = (int)xPar.KeyType;
            keyLocation.Path       = xPar.PrivateKeyFile;
            certLocation.Path      = xPar.CertificateFile;
            passwordOptions.Active = (int)xPar.PasswordOptions;
            passwordEntry.Text     = xPar.PrivateKeyPassword;
        }