Exemple #1
0
        private void LoadPackages([NotNull] Site site, [NotNull] List <PackageInformation> packages, [NotNull] string folder)
        {
            Debug.ArgumentNotNull(site, nameof(site));
            Debug.ArgumentNotNull(packages, nameof(packages));
            Debug.ArgumentNotNull(folder, nameof(folder));

            foreach (var fileName in AppHost.Files.GetFiles(folder))
            {
                if (string.Compare(Path.GetExtension(fileName), @".zip", StringComparison.InvariantCultureIgnoreCase) != 0)
                {
                    continue;
                }

                try
                {
                    var packageAnalyzer = new PackageAnalyzer(fileName);

                    var package = new PackageInformation(site, packageAnalyzer);

                    packages.Add(package);
                }
                catch (Exception ex)
                {
                    AppHost.Output.LogException(ex);
                }
            }

            foreach (var subfolder in AppHost.Files.GetDirectories(folder))
            {
                LoadPackages(site, packages, subfolder);
            }
        }
        public void AddsCorrectFieldAnalyzers(string field, string text, TokenAttributes[] expected)
        {
            // arrange
            var analyzer = new PackageAnalyzer();

            // act
            var tokenStream = analyzer.TokenStream(field, new StringReader(text));
            var actual      = tokenStream.Tokenize().ToArray();

            // assert
            Assert.Equal(expected, actual);
        }
        protected override void Ready()
        {
            Receive <AnalysisMessage>(r =>
            {
                Console.WriteLine("WORKING");

                var self   = Self;
                var sender = Sender;

                Task.Run <AnalysisDocument>(() =>
                {
                    var analyzer           = new PackageAnalyzer();
                    analyzer.UsedTypesOnly = r.UsedTypesOnly;
                    analyzer.AllEdges      = r.AllEdges;
                    analyzer.CreateClustersForNamespaces = r.CreateClustersForNamespaces;

                    if (r.PackagesToAnalyze != null)
                    {
                        analyzer.PackagesToAnalyze.AddRange(r.PackagesToAnalyze);
                    }

                    var spec = SpecUtils.Deserialize(SpecUtils.Unzip(r.Spec));
                    return(analyzer.Execute(spec, CancellationToken));
                }, CancellationToken)
                .ContinueWith <object>(x =>
                {
                    if (x.IsCanceled)
                    {
                        return(new CanceledMessage());
                    }

                    if (x.IsFaulted)
                    {
                        return(new FailedMessage {
                            Error = x.Exception.Dump()
                        });
                    }

                    Console.WriteLine("Writing response ...");

                    var serializer = new DocumentSerializer();
                    serializer.Serialize(x.Result, r.OutputFile);

                    return(new AnalysisResponse {
                        File = r.OutputFile
                    });
                }, TaskContinuationOptions.ExecuteSynchronously)
                .PipeTo(self, sender);

                Become(Working);
            });
        }
        public PackageInformation([NotNull] Site site, [NotNull] PackageAnalyzer packageAnalyzer)
        {
            Assert.ArgumentNotNull(site, nameof(site));
            Assert.ArgumentNotNull(packageAnalyzer, nameof(packageAnalyzer));

            Site          = site;
            LocalFileName = packageAnalyzer.FileName;
            PackageName   = packageAnalyzer.Name;
            Author        = packageAnalyzer.Author;
            Version       = packageAnalyzer.Version;
            Publisher     = packageAnalyzer.Publisher;
            License       = packageAnalyzer.License;
            Comment       = packageAnalyzer.Comment;
            Readme        = packageAnalyzer.Readme;

            if (string.IsNullOrEmpty(PackageName))
            {
                PackageName = Path.GetFileNameWithoutExtension(LocalFileName) ?? "[Unknown Package]";
            }
        }
Exemple #5
0
        /// <summary>
        /// Click event.
        /// </summary>
        /// <param name="sender">The Sender.</param>
        /// <param name="e">The EventArgs.</param>
        protected void ButtonOk_Click(object sender, EventArgs e)
        {
            // Validate
            this.Validate();

            if (!this.IsValid)
            {
                return;
            }

            // We are valid
            // Register the database
            using (SPLongOperation operation = new SPLongOperation(this))
            {
                operation.LeadingHTML  = HttpContext.GetGlobalResourceObject("ClubCloud.Service.ServiceAdminResources", "UsersSettingsCreateOperationLeadingHtml", CultureInfo.CurrentCulture).ToString();
                operation.TrailingHTML = HttpContext.GetGlobalResourceObject("ClubCloud.Service.ServiceAdminResources", "UsersSettingsCreateOperationTrailingHtml", CultureInfo.CurrentCulture).ToString();
                operation.Begin();

                var name = fup_package.PostedFile.FileName.Split('\\').Last();

                string[] parts           = name.Split('_');
                string   applicationName = parts[0];
                string   verion          = parts[1];
                string   cpu             = parts[2];

                ClubCloud.Model.ApplicationInfo applicationInfo = ServiceClient.GetApplicationInfoByName(applicationName);

                if (applicationInfo == null)
                {
                    applicationInfo = new Model.ApplicationInfo {
                        ApplicationName = applicationName, MajorVersion = verion, CreationDate = DateTime.Now, OperationDate = DateTime.Now, Status = ApplicationStatus.Published
                    };
                }
                else
                {
                    applicationInfo.MajorVersion  = verion;
                    applicationInfo.OperationDate = DateTime.Now;
                }

                Stream uploadstream = fup_package.PostedFile.InputStream;
                fup_package.PostedFile.InputStream.Seek(0, SeekOrigin.Begin);
                byte[] fileData = new byte[fup_package.PostedFile.ContentLength];
                uploadstream.Read(fileData, 0, fup_package.PostedFile.ContentLength);

                byte[] package     = null;
                byte[] certificate = null;
                byte[] symbols     = null;

                ApplicationVersion applicationVersion = new ApplicationVersion();
                ApplicationProcessorArchitecture applicationProcessorArchitecture = new ApplicationProcessorArchitecture();

                using (ZipArchive archive = new ZipArchive(uploadstream, ZipArchiveMode.Read))
                {
                    foreach (ZipArchiveEntry entry in archive.Entries)
                    {
                        byte[] buffer = null;
                        using (BinaryReader reader = new BinaryReader(entry.Open()))
                        {
                            buffer = reader.ReadBytes((int)entry.Length);
                        }

                        if (entry.FullName.EndsWith("appx"))
                        {
                            package = buffer;
                            PackageAnalyzeResult result = PackageAnalyzer.GetPackageInfo(entry.Open());
                            applicationVersion = result.ApplicationVersion;
                            applicationProcessorArchitecture = result.ApplicationProcessorArchitecture;
                        }

                        if (entry.FullName.EndsWith("cer"))
                        {
                            certificate = buffer;
                        }

                        if (entry.FullName.EndsWith("appxsym"))
                        {
                            symbols = buffer;
                        }
                    }
                }
                applicationProcessorArchitecture.Certificate = certificate;
                applicationProcessorArchitecture.Package     = package;
                applicationProcessorArchitecture.Symbols     = symbols;

                //applicationVersion.ApplicationProcessorArchitectures.Add(applicationProcessorArchitecture);
                //applicationInfo.ApplicationVersions.Add(applicationVersion);

                applicationInfo = ServiceClient.SetApplicationInfo(applicationInfo);
                applicationVersion.ApplicationInfoId = applicationInfo.Id;
                applicationVersion = ServiceClient.SetApplicationVersion(applicationInfo.Id, applicationVersion);
                applicationProcessorArchitecture.ApplicationVersionId = applicationVersion.Id;
                applicationProcessorArchitecture = ServiceClient.SetApplicationProcessorArchitecture(applicationVersion.Id, applicationProcessorArchitecture);

                operation.End("/_admin/ClubCloud.Service/ManagePackage.aspx");//string.Format(CultureInfo.InvariantCulture, "/_admin/ClubCloud.Service/ManageApplication.aspx?id={0}", SPHttpUtility.UrlKeyValueEncode(this.ServiceApplication.Id)));
            }
        }