Example #1
0
        IPackageInfo Publish(IPackageRepository source, string packageFileName, Stream packageStream)
        {
            var fileWithoutExtension = packageFileName.Trim().ToLowerInvariant().EndsWith(".wrap")
                                           ? System.IO.Path.GetFileNameWithoutExtension(packageFileName)
                                           : packageFileName;

            if (Packages.Any(x => x.FullName.EqualsNoCase(fileWithoutExtension)))
            {
                throw new InvalidOperationException("Package already exists in repository.");
            }

            var inMemoryFile = new InMemoryFile("c:\\" + Guid.NewGuid());

            using (var stream = inMemoryFile.OpenWrite())
                IO.StreamExtensions.CopyTo(packageStream, stream);

            var tempFolder = new ZipPackage(inMemoryFile);

            var package = new InMemoryPackage(tempFolder)
            {
                Source = this
            };

            Packages.Add(package);
            return(package);
        }
                                      public override void Validate(ValidationContext ctx)
                                      {
                                          base.Validate(ctx);

                                          if (!Packages.Any())
                                          {
                                              ctx.Output.Add(new MetabaseValidationMsg(MetabaseValidationMessageType.Warning, Catalog, this, StringConsts.METABASE_NO_APP_PACKAGES_WARNING.Args(Name)));
                                          }

                                          if (Packages.Count() != Packages.Distinct().Count())
                                          {
                                              ctx.Output.Add(new MetabaseValidationMsg(MetabaseValidationMessageType.Error, Catalog, this, StringConsts.METABASE_APP_PACKAGE_REDECLARED_ERROR.Args(Name)));
                                          }

                                          foreach (var ap in Packages)
                                          {
                                              if (ap.Name.IsNullOrEmpty())
                                              {
                                                  ctx.Output.Add(new MetabaseValidationMsg(MetabaseValidationMessageType.Error, Catalog, this, StringConsts.METABASE_APP_PACKAGE_BLANK_NAME_ERROR.Args(Name)));
                                                  continue;
                                              }

                                              var refed = Metabank.CatalogBin.Packages.Where(pi => Metabank.INVSTRCMP.Equals(pi.Name, ap.Name)).Select(pi => pi.Name).FirstOrDefault();

                                              if (refed == null)
                                              {
                                                  ctx.Output.Add(new MetabaseValidationMsg(MetabaseValidationMessageType.Error, Catalog, this, StringConsts.METABASE_APP_PACKAGE_NOT_FOUND_IN_BIN_CATALOG_ERROR.Args(Name, ap.Name)));
                                              }
                                          }
                                      }
Example #3
0
        internal void CreateLanguagePackages()
        {
            using (new UndoManager.EventGroupScope())
            {
                // Build packages for every RSX stream file
                IEnumerable <ContentItemViewModel> items = ProjectViewModel.Current.ContentItems;

                IEnumerable <string> languages = items.Select(i => i.Language).Distinct();

                foreach (string language in languages.Where(l => l != "SFX"))
                {
                    string packageName = Path.Combine(language, "Default.pck");
                    if (!Packages.Any(p => p.Name == packageName))
                    {
                        Package package = new Package()
                        {
                            Name = packageName
                        };
                        _manualPackagingInfo.Packages.Add(package);

                        // Assign
                        DefaultLanguagePackageIds.SingleOrDefault(l => l.Language == language).BankPackageId       = package.Id;
                        DefaultLanguagePackageIds.SingleOrDefault(l => l.Language == language).StreamPackageId     = package.Id;
                        DefaultLanguagePackageIds.SingleOrDefault(l => l.Language == language).LooseMediaPackageId = package.Id;
                    }
                }
            }
        }
Example #4
0
    public override string ToString()
    {
        var sb = new StringBuilder();

        sb.AppendLine();
        sb.AppendLine("Environment -");
        sb.AppendLine($"Target:                {Target}");
        sb.AppendLine($"Local Folder:          {LocalFolder}");
        sb.AppendLine($"Server Folder:         {ServerFolder}");
        sb.AppendLine($"Output Folder:         {OutputPath}");
        sb.AppendLine();
        sb.AppendLine("Model details -");
        sb.AppendLine($"Generator:             {GeneratorName}");
        sb.AppendLine($"Version:               {Version}");
        sb.AppendLine($"Model Name:            {ModelName}");
        sb.AppendLine($"Source Model:          {SourceModel}");
        sb.AppendLine($"Supports Regeneration: {SupportRegen}");
        if (!Packages.Any())
        {
            return(sb.ToString());
        }

        sb.AppendLine();
        sb.AppendLine("Packages -");
        foreach (var package in Packages)
        {
            sb.AppendLine($"  {package.Name}, verion: {package.Version}");
        }

        return(sb.ToString());
    }
Example #5
0
        IPackageInfo Publish(string packageFileName, Stream packageStream)
        {
            var fileWithoutExtension = packageFileName.Trim().ToLowerInvariant().EndsWith(".wrap")
                                               ? Path.GetFileNameWithoutExtension(packageFileName)
                                               : packageFileName;

            if (Packages.Any(x => x.FullName.EqualsNoCase(fileWithoutExtension)))
            {
                throw new InvalidOperationException("Package already exists in repository.");
            }

            var inMemoryFile = new InMemoryFile("c:\\" + Guid.NewGuid());

            using (var stream = FileExtensions.OpenWrite(inMemoryFile))
                packageStream.CopyTo(stream);

            var tempFolder = new CachedZipPackage(null, inMemoryFile, null);

            var package = new InMemoryPackage
            {
                Name         = PackageNameUtility.GetName(fileWithoutExtension),
                Version      = PackageNameUtility.GetVersion(fileWithoutExtension),
                Source       = this,
                Dependencies = tempFolder.Dependencies.ToList(),
                Anchored     = tempFolder.Anchored
            };

            Packages.Add(package);
            return(package);
        }
        public virtual void NuGetRestore(string directory, string packagesDirectory = null)
        {
            if (!Packages.Any())
            {
                return;
            }

            var isWindows = Environment.OSVersion.Platform == PlatformID.Win32NT;
            var nuget     = Path.Combine(Root, "NuGet.exe");
            var psi       = new ProcessStartInfo(isWindows ? nuget : "mono")
            {
                Arguments              = $"{(isWindows ? "" : "\"" + nuget + "\"")} restore -Verbosity Detailed -PackagesDirectory \"{Path.Combine (Root, directory, "..", "packages")}\" \"{Path.Combine (Root, directory, "packages.config")}\"",
                CreateNoWindow         = true,
                UseShellExecute        = false,
                WindowStyle            = ProcessWindowStyle.Hidden,
                RedirectStandardError  = true,
                RedirectStandardOutput = true,
            };

            //TODO: possibly remove this later?
            psi.EnvironmentVariables.Add("MONO_LOG_LEVEL", "debug");
            Console.WriteLine($"{psi.FileName} {psi.Arguments}");
            using (var process = new Process {
                StartInfo = psi,
            }) {
                process.OutputDataReceived += (sender, e) => Console.WriteLine(e.Data);
                process.ErrorDataReceived  += (sender, e) => Console.Error.WriteLine(e.Data);
                process.Start();
                process.BeginOutputReadLine();
                process.BeginErrorReadLine();
                process.WaitForExit();
            }
        }
        public virtual ProjectRootElement Construct()
        {
            // Workaround for https://github.com/dotnet/msbuild/issues/2554 when using Microsoft.Build.Construction.ProjectRootElement.Create
            var msbuildExePathVarName = "MSBUILD_EXE_PATH";

            if (!Builder.UseDotNet && !TestEnvironment.IsWindows)
            {
                Environment.SetEnvironmentVariable(msbuildExePathVarName, typeof(DotNetXamarinProject).Assembly.Location);
            }
            ProjectRootElement root = null;

            try {
                root = ProjectRootElement.Create();
            } finally {
                if (!Builder.UseDotNet && !TestEnvironment.IsWindows)
                {
                    Environment.SetEnvironmentVariable(msbuildExePathVarName, null);
                }
            }

            if (Packages.Any())
            {
                root.AddItemGroup().AddItem(BuildActions.None, "packages.config");
            }
            foreach (var pkg in Packages.Where(p => p.AutoAddReferences))
            {
                foreach (var reference in pkg.References)
                {
                    if (!References.Any(r => r.Include == reference.Include))
                    {
                        References.Add(reference);
                    }
                }
            }

            foreach (var pg in PropertyGroups)
            {
                pg.AddElement(root);
            }

            foreach (var ig in ItemGroupList)
            {
                var ige = root.AddItemGroup();
                foreach (var i in ig)
                {
                    if (i.Deleted)
                    {
                        continue;
                    }
                    ige.AddItem(i.BuildAction, i.Include(), i.Metadata);
                }
            }

            root.FullPath = ProjectName + Language.DefaultProjectExtension;

            return(root);
        }
        public GatherCacheResult(bool hasEntry, IReadOnlyList <SourcePackageDependencyInfo> packages)
        {
            HasEntry = hasEntry;
            Packages = packages ?? new List <SourcePackageDependencyInfo>();

            if (Packages.Any(package => package == null))
            {
                throw new ArgumentException("Values in packages must not be null", nameof(packages));
            }
        }
        public virtual List <ProjectResource> Save(bool saveProject = true)
        {
            var list = new List <ProjectResource> ();

            if (saveProject)
            {
                var contents  = SaveProject();
                var timestamp = contents != project_file_contents ? default(DateTimeOffset?) :
                                ItemGroupList.SelectMany(ig => ig).Where(i => i.Timestamp != null).Select(i => (DateTimeOffset)i.Timestamp).Max();
                list.Add(new ProjectResource()
                {
                    Timestamp = timestamp,
                    Path      = ProjectFilePath,
                    Content   = project_file_contents = contents,
                    Encoding  = System.Text.Encoding.UTF8,
                });
            }

            if (Packages.Any())
            {
                list.Add(new ProjectResource()
                {
                    Path    = "packages.config",
                    Content = "<packages>\n" + string.Concat(Packages.Select(p => string.Format("  <package id='{0}' version='{1}' targetFramework='{2}' />\n",
                                                                                                p.Id, p.Version, p.TargetFramework))) + "</packages>"
                });
            }

            foreach (var ig in ItemGroupList)
            {
                list.AddRange(ig.Select(s => new ProjectResource()
                {
                    Timestamp     = s.Timestamp,
                    Path          = s.Include(),
                    Content       = s.TextContent == null ? null : s.TextContent(),
                    BinaryContent = s.BinaryContent == null ? null : s.BinaryContent(),
                    Encoding      = s.Encoding,
                    Deleted       = s.Deleted,
                    Attributes    = s.Attributes,
                }));
            }

            foreach (var import in Imports)
            {
                list.Add(new ProjectResource()
                {
                    Path     = import.Project(),
                    Content  = import.TextContent == null ? null : import.TextContent(),
                    Encoding = System.Text.Encoding.UTF8,
                });
            }

            return(list);
        }
Example #10
0
        public void OnGet([FromRoute] string author)
        {
            Packages = _helper.PackageCache.OrderByDescending(p => p.DatePublished)
                       .Where(p => p.Author.Equals(author, StringComparison.OrdinalIgnoreCase));

            if (Packages.Any())
            {
                Author = Packages.First().Author;
            }
            else
            {
                Author = author;
            }
        }
Example #11
0
        public void NuGetRestore(string directory, string packagesDirectory = null)
        {
            if (!Packages.Any())
            {
                return;
            }

            IPackageRepository repo           = PackageRepositoryFactory.Default.CreateRepository("https://packages.nuget.org/api/v2");
            PackageManager     packageManager = new PackageManager(repo, Path.Combine(Root, "temp", "packages"));

            foreach (var package in Packages)
            {
                packageManager.InstallPackage(package.Id, new SemanticVersion(package.Version));
            }
        }
Example #12
0
        public void NuGetRestore(string directory, string packagesDirectory = null)
        {
            if (!Packages.Any())
            {
                return;
            }

            var isWindows = Environment.OSVersion.Platform == PlatformID.Win32NT;
            var psi       = new ProcessStartInfo(isWindows ? "NuGet.exe" : "mono")
            {
                Arguments = $"{(isWindows ? "" : "\"" + Path.Combine (Root,"NuGet.exe") + "\"")} restore -PackagesDirectory \"{Path.Combine (Root, directory, "..", "packages")}\" \"{Path.Combine (Root, directory, "packages.config")}\"",
            };
            var process = Process.Start(psi);

            process.WaitForExit();
        }
Example #13
0
        /// <summary>
        /// Evaluates the settings and writes them to <paramref name="args"/>.
        /// </summary>
        /// <param name="args">The argument builder into which the settings should be written.</param>
        protected override void EvaluateCore(ProcessArgumentBuilder args)
        {
            base.EvaluateCore(args);

            foreach (var package in Packages)
            {
                args.Append(package);
            }

            if (Force)
            {
                args.Append("--force");
            }

            if (Global)
            {
                args.Append("--global");
            }

            if (NoOptional)
            {
                args.Append("--no-optional");
            }

            if (!string.IsNullOrWhiteSpace(Registry))
            {
                args.Append($"--registry {Registry.ToLower()}");
            }

            if (PreferOffline)
            {
                args.Append("--prefer-offline");
            }

            if (Production)
            {
                if (Packages.Any())
                {
                    throw new NotSupportedException("Can't specify production flag when installing individual packages");
                }

                args.Append("--production");
            }
        }
Example #14
0
        public virtual ProjectRootElement Construct()
        {
            var root = ProjectRootElement.Create();

            if (Packages.Any())
            {
                root.AddItemGroup().AddItem(BuildActions.None, "packages.config");
            }
            foreach (var pkg in Packages.Where(p => p.AutoAddReferences))
            {
                foreach (var reference in pkg.References)
                {
                    if (!References.Any(r => r.Include == reference.Include))
                    {
                        References.Add(reference);
                    }
                }
            }

            foreach (var pg in PropertyGroups)
            {
                pg.AddElement(root);
            }

            foreach (var ig in ItemGroupList)
            {
                var ige = root.AddItemGroup();
                foreach (var i in ig)
                {
                    if (i.Deleted)
                    {
                        continue;
                    }
                    ige.AddItem(i.BuildAction, i.Include(), i.Metadata);
                }
            }

            root.FullPath = ProjectName + Language.DefaultProjectExtension;

            return(root);
        }
Example #15
0
        public override string ToString()
        {
            var sb = new StringBuilder();

            sb.AppendLine(Repository.Name);

            if (Packages.Any() == false)
            {
                return(sb.ToString());
            }

            var currentPackage = Packages.First();

            foreach (var package in Packages.Skip(1))
            {
                sb.AppendFormat("├─{0}{1} [{2}]\r\n", currentPackage.Name, GenerateTitle(currentPackage), GenerateVersions(currentPackage));
                currentPackage = package;
            }
            sb.AppendFormat("└─{0}{1} [{2}]\r\n", currentPackage.Name, GenerateTitle(currentPackage), GenerateVersions(currentPackage));
            return(sb.ToString());
        }
Example #16
0
        private void LoadConfig()
        {
            Packages.Clear();

            var cfg = UploaderConfigFile.Parse(ConfigKey);

            if (cfg == null)
            {
                return;
            }

            ConfigLoaded?.Raise(cfg);

            var pkgs = cfg.LocalPackages
                       .Select(p => LocalR2Package.From(p));

            AsUI(_ => Packages.Swap(pkgs));
            if (Packages.Any())
            {
                Package = Packages[0];
            }
        }
Example #17
0
        /// <summary>
        /// Build a field from argument data
        /// </summary>
        /// <typeparam name="T_Field"></typeparam>
        /// <param name="arg"></param>
        /// <param name="recordArg"></param>
        /// <param name="mapPosition"></param>
        /// <returns></returns>
        private IField BuildField <T_Field>(IArgument arg, IArgument recordArg, int mapPosition) where T_Field : class, IField, new()
        {
            IField field = new T_Field {
                Name          = arg.ArgumentName,
                EntityName    = recordArg.TypeSubname,
                DataType      = arg.DataType,
                DataPrecision = arg.DataPrecision,
                DataScale     = arg.DataScale,
                CharLength    = arg.CharLength,
                OrclType      = arg.OrclType,
                MapPosition   = mapPosition,
                SubField      = (arg?.NextArgument?.DataLevel == arg.DataLevel + 1)
                    ? BuildField <T_Field>(arg.NextArgument, recordArg, mapPosition)
                    : null
            };

            //if (arg?.NextArgument?.DataLevel == arg.DataLevel + 1) field.SubField = BuildField<T_Field>(arg.NextArgument, recordArg, mapPosition);

            // set the containing class from the package name
            if (!String.IsNullOrEmpty(arg.TypeName) && !arg.TypeName.Equals(arg.PackageName))
            {
                if (!Parameter.Instance.IsDuplicatePackageRecordOriginatingOutsideFilterAndSchema
                    // owned by another schema or owned by package that was filtered out
                    && (!(arg.Owner ?? "").Equals(arg.TypeOwner) ||
                        !Packages.Any(p => p.PackageName.Equals(arg.TypeName))))
                {
                    field.ContainerClassName = Trns.ClassNameOfOracleIdentifier(arg.TypeName).Code;
                }

                if (!(arg.TypeName ?? "").Equals(arg.PackageName) &&
                    Packages.Any(p => p.PackageName.Equals(arg.TypeName)) &&     // package of origin of record being created
                    PackageRecordTypes.Exists(r => r.PackageName.Equals(arg.TypeName) && r.TypeSubName.Equals(arg.TypeSubname)))
                {
                    field.ContainerClassName = Trns.ClassNameOfOracleIdentifier(arg.TypeName).Code;
                }
            }

            return(field);
        }
Example #18
0
        void Publish(IPackageRepository source, string packageFileName, Stream packageStream)
        {
            var name    = PackageNameUtility.GetName(packageFileName);
            var version = PackageNameUtility.GetVersion(packageFileName);

            if (Packages.Any(x => x.Name.EqualsNoCase(name) && x.SemanticVersion == version))
            {
                throw new InvalidOperationException("Package already exists in repository.");
            }

            var inMemoryFile = new InMemoryFile("c:\\" + Guid.NewGuid());

            using (var stream = inMemoryFile.OpenWrite())
                IO.StreamExtensions.CopyTo(packageStream, stream);

            var tempFolder = new ZipFilePackage(inMemoryFile);

            var package = new InMemoryPackage(tempFolder)
            {
                Source = this
            };

            Packages.Add(package);
        }
Example #19
0
        /// <summary>
        /// Given a record type argument, extract and store the record type and its fields (recurse if necessary)
        /// </summary>
        /// <param name="recordArg">Argument with record</param>
        /// <param name="args">List of arguments following record argument</param>
        private void LoadRecordType <T_PackageRecord, T_Field, T_Argument>(IArgument recordArg, List <IArgument> args, String cSharpType)
            where T_PackageRecord : class, IPackageRecord, new()
            where T_Field : class, IField, new()
            where T_Argument : class, IArgument, new()
        {
            if (recordArg.DataType != Orcl.RECORD)
            {
                throw new Exception("Argument sent to LoadRecordType() that is not a PL/SQL RECORD");
            }

            // happens for type OBJECT, TABLE, VARRAY or UNDEFINED
            if ((recordArg.TypeName == null && recordArg.TypeSubname != null) || (recordArg.TypeName != null && recordArg.TypeSubname == null))
            {
                return;
            }

            if (cSharpType == null)
            {
                cSharpType = Translater.ConvertOracleArgTypeToCSharpType(recordArg, false);
            }

            // if the record type has already been stored, do not proceeed
            if (PackageRecordTypes.Any(r => (r.SubName ?? "") == (recordArg.TypeSubname ?? "") &&
                                       (r.Name ?? "") == (recordArg.TypeName ?? "") &&
                                       (r.Owner ?? "") == (recordArg.TypeOwner ?? "") &&
                                       (r.PackageName ?? "") == (recordArg.PackageName ?? "")))
            {
                return;
            }

            // begin creation of record type
            IPackageRecord newRec = new T_PackageRecord();

            newRec.PackageName = recordArg.PackageName; // package containing argument
            newRec.Name        = recordArg.TypeName;    // package containing *record type*
            newRec.SubName     = recordArg.TypeSubname; // name of record type if outside argument's package
            newRec.CSharpType  = cSharpType;
            newRec.Owner       = recordArg.TypeOwner;
            newRec.Attributes  = new List <IEntityAttribute>();

            int recordDataLevel = recordArg.DataLevel;

            // loop the args to find this record's fields or a nested record type
            int columnPosition = 0;

            foreach (IArgument arg in args)
            {
                if (arg.DataLevel == recordDataLevel + 1)   // found a record field
                // each of these fields are to be added to the record
                {
                    IField f = new T_Field();
                    f.Name = arg.ArgumentName;

                    // convert to C# now - this should to be adjusted so it's done later
                    f.CSharpType = Translater.ConvertOracleArgTypeToCSharpType(arg, false);

                    // set the containing class from the package name
                    if (!String.IsNullOrEmpty(arg.TypeName) && !arg.TypeName.Equals(arg.PackageName))
                    {
                        if (!Parameter.Instance.IsDuplicatePackageRecordOriginatingOutsideFilterAndSchema
                            // owned by another schema or owned by package that was filtered out
                            && (!(arg.Owner ?? "").Equals(arg.TypeOwner)
//                                ||  !_packages.Exists(p => p.PackageName.Equals(arg.TypeName)) )   ) {
                                || !Packages.Any(p => p.PackageName.Equals(arg.TypeName))))
                        {
                            f.ContainerClassName = Translater.ConvertOracleNameToCSharpName(arg.TypeName, false);
                        }

                        if (!(arg.TypeName ?? "").Equals(arg.PackageName)
//                                && _packages.Exists(p => p.PackageName.Equals(arg.TypeName)) // package of origin of record being created
                            && Packages.Any(p => p.PackageName.Equals(arg.TypeName)) &&  // package of origin of record being created
                            PackageRecordTypes.Exists(r => r.PackageName.Equals(arg.TypeName) && r.SubName.Equals(arg.TypeSubname)))
                        {
                            f.ContainerClassName = Translater.ConvertOracleNameToCSharpName(arg.TypeName, false);
                        }
                    }

                    f.AttrType  = arg.DataType;
                    f.Length    = arg.DataLength;
                    f.Precision = arg.DataPrecision;
                    f.Scale     = arg.DataScale;

                    f.MapPosition = columnPosition++;
                    newRec.Attributes.Add(f);
                }
                else if (arg.DataLevel == recordDataLevel + 2)     // found a lower level field, so skip
                {
                    continue;
                }
                else if (arg.DataLevel <= recordDataLevel)     // we are past the last record field, we are done
                {
                    break;
                }

                // if field is nested record, recurse into it
                if (arg.DataType == Orcl.RECORD)
                {
                    LoadRecordType <T_PackageRecord, T_Field, T_Argument>(arg, args.GetRange(args.IndexOf(arg) + 1, args.Count - args.IndexOf(arg) - 1), null);
                }
            }

//            newRec.Fields.Sort();
            PackageRecordTypes.Add(newRec);
            return;
        }
Example #20
0
        public void TakeAllEntries(Label count, List <Peer> peers)
        {
            GetDump(FilePath);
            I = 0;
            List <Package> packages = new List <Package>();

            foreach (var item in peers)
            {
                var taker = Dump.Packages.Where(x => (x.From == item.IP || x.To == item.IP) && (!Packages.Any(y => y.Id == x.Id))).ToList();
                Packages.AddRange(taker);
            }
            count.Content = Packages.Count.ToString();
        }
        public virtual List <ProjectResource> Save(bool saveProject = true)
        {
            var list = new List <ProjectResource> ();

            if (saveProject)
            {
                if (project == null)
                {
                    project = new ProjectResource {
                        Path     = ProjectFilePath,
                        Encoding = System.Text.Encoding.UTF8,
                    };
                }
                // Clear the Timestamp if the project changed
                var contents = SaveProject();
                if (contents != project.Content)
                {
                    project.Timestamp = null;
                    project.Content   = contents;
                }
                list.Add(project);
            }

            if (Packages.Any())
            {
                var contents = "<packages>\n" + string.Concat(Packages.Select(p => string.Format("  <package id='{0}' version='{1}' targetFramework='{2}' />\n",
                                                                                                 p.Id, p.Version, p.TargetFramework))) + "</packages>";
                var timestamp = contents != packages_config_contents ? default(DateTimeOffset?) : DateTimeOffset.MinValue;
                list.Add(new ProjectResource()
                {
                    Timestamp = timestamp,
                    Path      = "packages.config",
                    Content   = packages_config_contents = contents,
                });
            }
            else
            {
                packages_config_contents = null;
            }

            foreach (var ig in ItemGroupList)
            {
                list.AddRange(ig.Select(s => new ProjectResource()
                {
                    Timestamp     = s.Timestamp,
                    Path          = s.Include?.Invoke(),
                    Content       = s.TextContent == null ? null : s.TextContent(),
                    BinaryContent = s.BinaryContent == null ? null : s.BinaryContent(),
                    Encoding      = s.Encoding,
                    Deleted       = s.Deleted,
                    Attributes    = s.Attributes,
                }));
            }

            foreach (var import in Imports)
            {
                list.Add(new ProjectResource()
                {
                    Timestamp = import.Timestamp,
                    Path      = import.Project(),
                    Content   = import.TextContent == null ? null : import.TextContent(),
                    Encoding  = System.Text.Encoding.UTF8,
                });
            }

            return(list);
        }
Example #22
0
 public bool HasPackage(string packageName)
 {
     return(Packages.Any(p => String.Equals(p.Name, packageName, StringComparison.InvariantCultureIgnoreCase)));
 }
Example #23
0
 public bool Contains(string name)
 {
     return(Packages.Any(p => p.Name == name));
 }
Example #24
0
 public DeleteAccountViewModel()
 {
     _hasOrphanPackages = new Lazy <bool>(() => Packages.Any(p => p.HasSingleOwner));
 }
        public async Task LoadPackages()
        {
            try
            {
                if (!CanLoadRemotePackages() && Packages.Any())
                {
                    return;
                }

                _hasLoaded = false;

                var sort = SortSelection == Resources.RemoteSourceViewModel_SortSelectionPopularity ? "DownloadCount" : "Title";

                await _progressService.StartLoading(string.Format(Resources.RemoteSourceViewModel_LoadingPage, CurrentPage));

                _progressService.WriteMessage(Resources.RemoteSourceViewModel_FetchingPackages);

                try
                {
                    var result =
                        await
                        _chocolateyPackageService.Search(
                            SearchQuery,
                            new PackageSearchOptions(
                                PageSize,
                                CurrentPage - 1,
                                sort,
                                IncludePrerelease,
                                IncludeAllVersions,
                                MatchWord,
                                Source.Value));

                    var installed = await _chocolateyPackageService.GetInstalledPackages();

                    var outdated = await _chocolateyPackageService.GetOutdatedPackages();

                    PageCount = (int)(((double)result.TotalCount / (double)PageSize) + 0.5);
                    Packages.Clear();
                    result.Packages.ToList().ForEach(p =>
                    {
                        if (installed.Any(package => string.Equals(package.Id, p.Id, StringComparison.OrdinalIgnoreCase)))
                        {
                            p.IsInstalled = true;
                        }
                        if (outdated.Any(package => string.Equals(package.Item1, p.Id, StringComparison.OrdinalIgnoreCase)))
                        {
                            p.IsLatestVersion = false;
                        }

                        Packages.Add(Mapper.Map <IPackageViewModel>(p));
                    });

                    if (PageCount < CurrentPage)
                    {
                        CurrentPage = PageCount == 0 ? 1 : PageCount;
                    }
                }
                finally
                {
                    await _progressService.StopLoading();

                    _hasLoaded = true;
                }

                await _eventAggregator.PublishOnUIThreadAsync(new ResetScrollPositionMessage());
            }
            catch (Exception ex)
            {
                Logger.Error(ex, "Failed to load new packages.");
                await _progressService.ShowMessageAsync(
                    Resources.RemoteSourceViewModel_FailedToLoad,
                    string.Format(Resources.RemoteSourceViewModel_FailedToLoadRemotePackages, ex.Message));

                throw;
            }
        }
Example #26
0
 public bool CanUpdateAll()
 {
     return(Packages.Any(p => p.CanUpdate) && _allowedCommandsService.IsUpgradeCommandAllowed && _allowedCommandsService.IsUpgradeAllCommandAllowed);
 }
Example #27
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// The Install method installs the feature.
        /// </summary>
        /// -----------------------------------------------------------------------------
        public bool Install()
        {
            InstallerInfo.Log.StartJob(Util.INSTALL_Start);
            bool bStatus = true;

            try
            {
                bool clearClientCache = false;
                InstallPackages(ref clearClientCache);
                if (clearClientCache)
                {
                    //Update the version of the client resources - so the cache is cleared
                    HostController.Instance.IncrementCrmVersion(true);
                }
            }
            catch (Exception ex)
            {
                InstallerInfo.Log.AddFailure(ex);
                bStatus = false;
            }
            finally
            {
                //Delete Temp Folder
                if (!string.IsNullOrEmpty(TempInstallFolder))
                {
                    Globals.DeleteFolderRecursive(TempInstallFolder);
                }
                InstallerInfo.Log.AddInfo(Util.FOLDER_DeletedBackup);
            }
            if (InstallerInfo.Log.Valid)
            {
                InstallerInfo.Log.EndJob(Util.INSTALL_Success);
            }
            else
            {
                InstallerInfo.Log.EndJob(Util.INSTALL_Failed);
                bStatus = false;
            }

            //log installation event
            LogInstallEvent("Package", "Install");

            //when the installer initialized by file stream, we need save the file stream into backup folder.
            if (_inputStream != null && bStatus && Packages.Any())
            {
                Task.Run(() =>
                {
                    BackupStreamIntoFile(_inputStream, Packages[0].Package);
                });
            }

            //Clear Host Cache
            DataCache.ClearHostCache(true);

            if (Config.GetFcnMode() == Config.FcnMode.Disabled.ToString())
            {
                // force application restart after the new changes only when FCN is disabled
                Config.Touch();
            }

            return(bStatus);
        }
Example #28
0
        public async Task LoadPackages(bool forceCheckForOutdatedPackages)
        {
            try
            {
                if (!CanLoadRemotePackages() && Packages.Any())
                {
                    return;
                }

                if (!HasLoaded && (_configService.GetEffectiveConfiguration().PreventPreload ?? false))
                {
                    ShowShouldPreventPreloadMessage = true;
                    HasLoaded = true;
                    return;
                }

                HasLoaded = false;
                ShowShouldPreventPreloadMessage = false;

                var sort = SortSelection == Resources.RemoteSourceViewModel_SortSelectionPopularity ? "DownloadCount" : "Title";

                await _progressService.StartLoading(string.Format(Resources.RemoteSourceViewModel_LoadingPage, CurrentPage));

                _progressService.WriteMessage(Resources.RemoteSourceViewModel_FetchingPackages);

                try
                {
                    var result =
                        await
                        _chocolateyPackageService.Search(
                            SearchQuery,
                            new PackageSearchOptions(
                                PageSize,
                                CurrentPage - 1,
                                sort,
                                IncludePrerelease,
                                IncludeAllVersions,
                                MatchWord,
                                Source.Value));

                    var installed = await _chocolateyPackageService.GetInstalledPackages();

                    var outdated = await _chocolateyPackageService.GetOutdatedPackages(false, null, forceCheckForOutdatedPackages);

                    PageCount = (int)Math.Ceiling((double)result.TotalCount / (double)PageSize);
                    Packages.Clear();

                    SourceType sourceType = SourceType.normal;
                    Enum.TryParse <SourceType>(Source.Value, out sourceType);

                    result.Packages.ToList().ForEach(p =>
                    {
                        if (installed.Any(package => string.Equals(package.Id, p.Id, StringComparison.OrdinalIgnoreCase)))
                        {
                            p.IsInstalled = true;
                        }
                        if (outdated.Any(package => string.Equals(package.Id, p.Id, StringComparison.OrdinalIgnoreCase)))
                        {
                            p.IsLatestVersion = false;
                        }

                        var pnew        = Mapper.Map <IPackageViewModel>(p);
                        pnew.SourceType = sourceType;
                        Packages.Add(pnew);
                    });

                    if (_configService.GetEffectiveConfiguration().ExcludeInstalledPackages ?? false)
                    {
                        Packages.RemoveAll(x => x.IsInstalled);
                    }

                    if (PageCount < CurrentPage)
                    {
                        CurrentPage = PageCount == 0 ? 1 : PageCount;
                    }
                }
                finally
                {
                    await _progressService.StopLoading();

                    HasLoaded = true;
                }

                await _eventAggregator.PublishOnUIThreadAsync(new ResetScrollPositionMessage());
            }
            catch (Exception ex)
            {
                Logger.Error(ex, "Failed to load new packages.");
                await _dialogService.ShowMessageAsync(
                    Resources.RemoteSourceViewModel_FailedToLoad,
                    string.Format(Resources.RemoteSourceViewModel_FailedToLoadRemotePackages, ex.Message));

                throw;
            }
        }
 public bool CanUpdateAll()
 {
     return(Packages.Any(p => p.CanUpdate));
 }
Example #30
0
        public ServiceWizardViewModel(PanaceaServices core, TaskCompletionSource <bool> source)
        {
            _core                = core;
            _source              = source;
            SelectedItems        = new ObservableCollection <Service>();
            RemoveServiceCommand = new RelayCommand(args =>
            {
                SelectedItems.Remove(args as Service);
                if (!SelectedItems.Any())
                {
                    CartBoxIsOpen = false;
                }
            });
            SwitchToServicesCommand = new RelayCommand(args =>
            {
                if (SelectedIndex == 0)
                {
                    SelectedIndex = 1;
                }
                else
                {
                    SelectedIndex = 0;
                }
            });
            BuyServiceCommand = new RelayCommand(arg =>
            {
                SelectedItems.Clear();
                TabsSelectedIndex = 0;
            });
            CompleteCommand = new RelayCommand(arg =>
            {
                source.TrySetResult(true);
            });
            ToggleCartBoxCommand = new RelayCommand(arg =>
            {
                CartBoxIsOpen = !CartBoxIsOpen;
            });
            CheckoutCommand = new RelayCommand(async args =>
            {
                if (Packages != null && Packages.Any(p => p.IsChecked) ||
                    Services != null && Services.Any(s => s.IsChecked))
                {
                    CartBoxIsOpen = false;
                    if (core.UserService.User.Id == null)
                    {
                        if (core.TryGetUserAccountManager(out IUserAccountManager account))
                        {
                            _waitingForAnotherTask = true;
                            if (await account.RequestLoginAsync("In order to continue, you need to sign in with your user account"))
                            {
                                _waitingForAnotherTask = false;
                                TabsSelectedIndex      = 1;
                                CreateWebBrowser();
                                BuyService();
                            }
                        }
                        //todo TabsSelectedIndex = 1;
                    }
                    else
                    {
                        var pop = new UserConfirmationViewModel(_core.UserService.User);
                        if (_core.TryGetUiManager(out IUiManager ui))
                        {
                            var res = await ui.ShowPopup(pop);
                            if (res == UserConfirmationResult.Confirm)
                            {
                                TabsSelectedIndex = 1;
                                CreateWebBrowser();
                                BuyService();
                                //CheckUserService(() =>
                                //{

                                // });
                            }
                            else if (res == UserConfirmationResult.NotMe)
                            {
                                if (!(_core.TryGetUserAccountManager(out IUserAccountManager user) && await user.LogoutAsync()))
                                {
                                    await _core.UserService.LogoutAsync(); //todo (true)
                                }
                                CheckoutCommand.Execute(null);
                            }
                            else
                            {
                                CartBoxIsOpen = true;
                            }
                        }
                    }
                }
                else
                {
                    if (core.TryGetUiManager(out IUiManager ui))
                    {
                        await ui.ShowPopup(new NoServiceSelectedPopupViewModel());
                    }
                }
            });

            SelectCommand = new RelayCommand(args =>
            {
                var package = args as Service;

                if (package == null)
                {
                    return;
                }
                CancelButtonVisibility         = Visibility.Collapsed;
                CancelButtonServicesVisibility = Visibility.Visible;
                if (package is Package)
                {
                    CancelButtonVisibility         = Visibility.Visible;
                    CancelButtonServicesVisibility = Visibility.Collapsed;
                    SelectedItems.Clear();
                    Packages.ForEach(lp => lp.IsChecked = false);
                    Services.ForEach(lp => lp.IsChecked = false);
                    package.IsChecked = true;
                }
                else if (SelectedItems.Any(i => i is Package))
                {
                    SelectedItems.Clear();
                    Packages.ForEach(lp => lp.IsChecked = false);
                    Services.ForEach(lp => lp.IsChecked = false);
                    package.IsChecked = true;
                }
                if (SelectedItems.Contains(package))
                {
                    SelectedItems.Remove(package);
                    package.IsChecked = false;
                    CartBoxIsOpen     = SelectedItems.Count > 0;
                    HasSelectedPerDay = SelectedItems.All(i => i.IsPricePerDay);
                    UpdateSum();
                    TotalPanelVisibility = SelectedItems.Any(i => i.IsPricePerDay) || SelectedItems.Count > 1
                        ? Visibility.Visible
                        : Visibility.Collapsed;
                    return;
                }


                if ((package.IsPricePerDay && SelectedItems.Any(s => !s.IsPricePerDay)) ||
                    (!package.IsPricePerDay && SelectedItems.Any(s => s.IsPricePerDay)))
                {
                    /*todo
                     * var warning = new ChangeServiceTypeWarning();
                     * warning.Continue += (oo, ee) =>
                     * {
                     *  window.ThemeManager.HidePopup(warning);
                     *  SelectedItems.Clear();
                     *  packages.ForEach(lp => lp.IsChecked = false);
                     *  services.ForEach(lp => lp.IsChecked = false);
                     *  package.IsChecked = true;
                     *  SelectedItems.Add(package);
                     *  CartBox.IsOpen = SelectedItems.Count > 0;
                     *  HasSelectedPerDay = SelectedItems.All(i => i.IsPricePerDay);
                     *  UpdateSum();
                     *  TotalPanel.Visibility = SelectedItems.Any(i => i.IsPricePerDay) || SelectedItems.Count > 1
                     *      ? Visibility.Visible
                     *      : Visibility.Collapsed;
                     * };
                     *
                     * warning.Cancel += (oo, ee) =>
                     * {
                     *  window.ThemeManager.HidePopup(warning);
                     *  package.IsChecked = false;
                     *  CartBox.IsOpen = SelectedItems.Count > 0;
                     * };
                     * CartBoxIsOpen = false;
                     *
                     * window.ThemeManager.ShowPopup(warning).Closed += (oo, ee) =>
                     * {
                     *  package.IsChecked = false;
                     * };
                     */
                }
                else
                {
                    SelectedItems.Add(package);
                    CartBoxIsOpen     = SelectedItems.Count > 0;
                    HasSelectedPerDay = SelectedItems.All(i => i.IsPricePerDay);
                    UpdateSum();
                    TotalPanelVisibility = SelectedItems.Any(i => i.IsPricePerDay) || SelectedItems.Count > 1
                        ? Visibility.Visible
                        : Visibility.Collapsed;
                }
            });
        }