private IQueryable <Package> GetPackages(PackageFilter filter, Func <Version, bool> filter2)
        {
            if (Repository.Company == "Public" && Repository.Name == "NuGet")
            {
                throw new Exception("Gettting packages from the NuGet feed is temporarily disabled. But you don't need it for debugging!");
            }


            var repository = Repository;
            var versions   = Backend.GetPackages(ref repository, ref filter, "NuGet")
                             .AsEnumerable();


            if (filter.Performed)
            {
                //If filter is performed on server side then skip skipping ;)
                var uriTemplateMatch = OperationContext.Current.IncomingMessageProperties["UriTemplateMatchResults"] as UriTemplateMatch;
                if (uriTemplateMatch != null && !string.IsNullOrEmpty(uriTemplateMatch.QueryParameters["$skip"]))
                {
                    uriTemplateMatch.QueryParameters["$skip"] = "0";
                }

                versions = versions.Where(filter2);
            }

            return(versions
                   .Select(NuGetTranslator.ConvertToPackage)
                   .AsQueryable());
        }
Ejemplo n.º 2
0
        async public Task <object> GetBudgetProjectDetail(int budgetProjectId)
        {
            var budgetProject = await Db.GetModelByIdSpAsync <VTFNBudgetProject>(
                budgetProjectId,
                $"TFNBudgetProject({CurrentUser.Id})");

            var packageOfDeclareProjectBaseInfo = await Db.GetListSpAsync <VPackageOfDeclareProject, PackageFilter>(
                new PackageFilter()
            {
                BudgetProjectId = budgetProjectId
            });

            var packageFilter = new PackageFilter()
            {
                WhereInId = packageOfDeclareProjectBaseInfo.Select(i => i.Id).ToStringIdWithSpacer()
            };

            return(new
            {
                BudgetProject = new
                {
                    BudgetProject = budgetProject,
                    BudgetProjectOfArgument = await Db.GetModelByIdSpAsync <BudgetProjectOfArgument>(budgetProjectId),
                    BudgetProjectOfEnter = await Db.GetModelByIdSpAsync <BudgetProjectOfEnter>(budgetProjectId),
                    BudgetProjectOfExecute = await Db.GetModelByIdSpAsync <BudgetProjectOfExecute>(budgetProjectId)
                },

                BudgetPackage = new
                {
                    PackageOfDeclare = packageOfDeclareProjectBaseInfo,
                    PackageOfBudget = await Db.GetListSpAsync <VPackageOfBudgetProject, PackageFilter>(packageFilter),
                    PackageOfExcuteBudget = await Db.GetListSpAsync <VPackageOfExcuteBudget, PackageFilter>(packageFilter)
                }
            });
        }
Ejemplo n.º 3
0
 public SetPackageFilterCommand(
     PackageFilter filter,
     string searchKey)
 {
     this.Filter    = filter;
     this.SearchKey = searchKey;
 }
Ejemplo n.º 4
0
        public void SetPackages(PackageFilter filter, IEnumerable <Package> packages)
        {
            if (filter == PackageFilter.Modules)
            {
                packages = packages.Where(pkg => pkg.IsBuiltIn);
            }
            else if (filter == PackageFilter.All)
            {
                packages = packages.Where(pkg => !pkg.IsBuiltIn && pkg.IsDiscoverable);
            }
            else if (filter == PackageFilter.InDevelopment)
            {
                packages = packages.Where(pkg => pkg.AnyInDevelopment);
            }
            else
            {
                packages = packages.Where(pkg => !pkg.IsBuiltIn);
                packages = packages.Where(pkg => pkg.Current != null && pkg.Current.IsDirectDependency);
            }

            OnLoaded();
            ClearAll();

            var packagesGroup = new PackageGroup(PackageGroupOrigins.Packages.ToString(), Selection);

            Groups.Add(packagesGroup);
            List.Add(packagesGroup);
            packagesGroup.previousGroup = null;

            var builtInGroup = new PackageGroup(PackageGroupOrigins.BuiltInPackages.ToString(), Selection);

            Groups.Add(builtInGroup);
            List.Add(builtInGroup);

            if (filter == PackageFilter.Modules)
            {
                packagesGroup.nextGroup    = builtInGroup;
                builtInGroup.previousGroup = packagesGroup;
                builtInGroup.nextGroup     = null;
            }
            else
            {
                packagesGroup.nextGroup = null;
                UIUtils.SetElementDisplay(builtInGroup, false);
            }

            var items = packages.OrderBy(pkg => pkg.VersionToDisplay == null ? pkg.Name : pkg.VersionToDisplay.DisplayName).ToList();

            foreach (var package in items)
            {
                AddPackage(package);
            }

            if (!Selection.Selected.Any() && items.Any())
            {
                Selection.SetSelection(items.First());
            }

            PackageFiltering.FilterPackageList(this);
        }
 private void SetFilter(PackageFilter filter)
 {
     root.SetEnabled(false);
     if (!PackageCollection.Instance.SetFilter(filter))
     {
         root.SetEnabled(true);
     }
 }
        private PackageCollection()
        {
            packageInfos = new List <PackageInfo>();
            Packages     = new Dictionary <string, Package>();

            Filter = PackageFilter.Local;

            FetchAllCaches();
        }
Ejemplo n.º 7
0
            public ChannelToClient Connect(int id)
            {
                var filter = new PackageFilter();

                clients[id] = new Connection {
                    Channel = filter
                };
                return(filter);
            }
 private void OnFilterChanged(PackageFilter filter)
 {
     ClearAll();
     if (!LoadingSpinner.Started)
     {
         root.Q <VisualElement>(loadingId).visible = true;
         LoadingSpinner.Start();
     }
 }
        public Version[] Index(Caller caller, string company, string repository)
        {
            var parent = new Repository { Company = company, Name = repository };

            using (var session = backendFactory.Create(caller))
            {
                var filter = new PackageFilter();
                return session.GetPackages(ref parent, ref filter, GetPackageFormat());
            }
        }
        public Version[] Index(Caller caller, string company, string repository)
        {
            var parent = new Repository {
                Company = company, Name = repository
            };

            using (var session = backendFactory.Create(caller))
            {
                var filter = new PackageFilter();
                return(session.GetPackages(ref parent, ref filter, GetPackageFormat(), null));
            }
        }
        private void SetFilter(object obj)
        {
            var previouSelectedFilter = selectedFilter;

            selectedFilter    = (PackageFilter)obj;
            FilterButton.text = string.Format("{0} ▾", GetFilterDisplayName(selectedFilter));

            if (selectedFilter != previouSelectedFilter)
            {
                PackageCollection.Instance.SetFilter(selectedFilter);
            }
        }
Ejemplo n.º 12
0
        public void SetFilter(object obj)
        {
            var previouSelectedFilter = selectedFilter;

            selectedFilter    = (PackageFilter)obj;
            FilterButton.text = string.Format("{0} ▾", GetFilterDisplayName(selectedFilter));

            if (selectedFilter != previouSelectedFilter)
            {
                OnFilterChange(selectedFilter);
            }
        }
Ejemplo n.º 13
0
        public void SetFilter(object obj)
        {
            var previouSelectedFilter = selectedFilter;

            selectedFilter  = (PackageFilter)obj;
            FilterMenu.text = GetFilterDisplayName(selectedFilter);

            if (selectedFilter != previouSelectedFilter)
            {
                OnFilterChange(selectedFilter);
            }
        }
Ejemplo n.º 14
0
        private void OnFilterChanged(PackageFilter packageFilter)
        {
            CancelPreviousBindings();

            if (packageFilter == PackageFilter.Local)
            {
                UpdateLoading(PackageCollection.Instance.listOperation);
            }
            else
            {
                UpdateLoading(PackageCollection.Instance.searchOperation);
            }
        }
Ejemplo n.º 15
0
        public bool SetFilter(PackageFilter filter, bool refresh = true)
        {
            if (filter == Filter)
            {
                return(false);
            }

            Filter = filter;
            if (refresh)
            {
                UpdatePackageCollection();
            }
            return(true);
        }
        public bool SetFilter(PackageFilter value, bool refresh = true)
        {
            if (value == Filter)
            {
                return(false);
            }

            Filter = value;
            if (refresh)
            {
                UpdatePackageCollection();
            }
            return(true);
        }
Ejemplo n.º 17
0
        public IActionResult Index(PackageFilter filter)
        {
            if (filter == null)
            {
                filter = new PackageFilter();
            }

            var VM = new PackageIndexViewModel
            {
                Packages = _packageManager.GetPackages(filter),
                Filter   = filter
            };

            return(View(VM));
        }
Ejemplo n.º 18
0
        public async Task <ActionResult <PagedResult <PackageModel> > > Get([FromBody] PackageFilter filter)
        {
            var result = new PagedResult <PackageModel>();

            var query = this.packageManager.CreateQuery();

            var list = await query.ListAsync(filter.Page, filter.PageSize);

            result.Count = await query.CountAsync();

            result.Page     = filter.Page;
            result.PageSize = filter.PageSize;
            result.Items    = list.Select(x => PackageModel.Create(x))
                              .ToList();

            return(this.Ok(result));
        }
        public GetProductPackageSubmissionResultMessage(Request MyRequest)
        {
            _Environment = MyRequest._EnvironmentSelected;
            GetService();
            _PackageFilter = new PackageFilter();
            long j;

            if (long.TryParse(MyRequest._Parameters["Values"], out j))
            {
                _PackageFilter.PackageID = j;
            }
            var           _ProductIntegrationReportMessage = _MarketplaceAPIService.GetProductPackageSubmissionResultAsync(MyRequest._HeaderMessage, _PackageFilter);
            XmlSerializer xmlSerializer = new XmlSerializer(_ProductIntegrationReportMessage.Result.GetType());

            _RequestXML = _RequestInterceptor.LastRequestXML;
            _MessageXML = _RequestInterceptor.LastResponseXML;
        }
Ejemplo n.º 20
0
        private static string GetFilterDisplayName(PackageFilter filter)
        {
            switch (filter)
            {
            case PackageFilter.All:
                return("All packages");

            case PackageFilter.Local:
                return("In Project");

            case PackageFilter.Modules:
                return("Built-in packages");

            default:
                return(filter.ToString());
            }
        }
Ejemplo n.º 21
0
        public Version[] GetPackages(ref Repository repository, ref PackageFilter filter, string packageFormat, string projectId)
        {
            var repositoryCopy = repository;

            var versions = (projectId == null ? Directory.EnumerateDirectories(configuration.DataPath) : Directory.EnumerateDirectories(configuration.DataPath, projectId))
                           .SelectMany(
                projectPath =>
                Directory.EnumerateDirectories(projectPath)
                .Select(
                    versionPath =>
                    new Version
            {
                Company       = repositoryCopy.Company,
                Repository    = repositoryCopy.Name,
                Project       = Path.GetFileName(projectPath),
                Name          = Path.GetFileName(versionPath),
                PackageFormat = packageFormat,
            })
                .Where(version => GetPackagePathFromVersion(version, packageFormat) != null)
                .Select(version => new Version
            {
                Company       = version.Company,
                Repository    = version.Repository,
                Project       = version.Project,
                Name          = version.Name,
                PackageFormat = "SHA512",
                PackageHash   = GetPackageSHA512(GetPackagePathFromVersion(version, packageFormat)),
            })
                )
                           .OrderByDescending(v => v.Name)
                           .ToArray();

            foreach (var version in versions)
            {
                bool isLatest        = versions.Where(v => v.Project == version.Project).Select(v => v.Name).FirstOrDefault() == version.Name;
                var  metadata        = new List <MetadataEntry>(GetPackageMetadata(GetPackagePathFromVersion(version, packageFormat), packageFormat) ?? new MetadataEntry[0]);
                var  metadataWrapper = new MetadataWrapper(metadata);
                metadataWrapper["IsLatestVersion"] = isLatest.ToString();
                version.Metadata = metadata.ToArray();
            }
            return(versions);
        }
Ejemplo n.º 22
0
 public DataSet <Package> GetPackages(PackageFilter filter)
 {
     if (filter == null)
     {
         return(GetPackages());
     }
     else
     {
         var dataSet = new DataSet <Package>();
         var qry     = _context.Packages.Select(x => x);
         if (filter.Type.HasValue)
         {
             qry = from t in qry
                   where t.Type == filter.Type.Value
                   select t;
         }
         dataSet.Data = qry.ToList();
         return(dataSet);
     }
 }
        private void OnFilterChanged(PackageFilter filter = PackageFilter.None)
        {
            if (filter == PackageFilter.None)
            {
                filter = PackageCollection.Instance.Filter;
            }

            CurrentFilter = filter;

            if (filter == PackageFilter.All)
            {
                AllButton.AddToClassList(SelectedClassName);
                LocalButton.RemoveFromClassList(SelectedClassName);
            }
            else if (filter == PackageFilter.Local)
            {
                LocalButton.AddToClassList(SelectedClassName);
                AllButton.RemoveFromClassList(SelectedClassName);
            }

            root.SetEnabled(true);
        }
Ejemplo n.º 24
0
        private static string GetFilterDisplayName(PackageFilter filter)
        {
            switch (filter)
            {
            case PackageFilter.Unity:
                return("Unity Registry");

            case PackageFilter.Other:
                return("My Registries");

            case PackageFilter.Local:
                return("In Project");

            case PackageFilter.Modules:
                return("Built-in");

            case PackageFilter.None:
                return("None");

            default:
                return(filter.ToString());
            }
        }
 public virtual Version[] GetPackages(ref Repository repository, ref PackageFilter filter, string packageFormat)
 {
     return service.GetPackages(caller, ref repository, ref filter, packageFormat);
 }
 public virtual Version[] GetPackages(ref Repository repository, ref PackageFilter filter, string packageFormat)
 {
     throw new NotImplementedException("Not implemented: " + MethodBase.GetCurrentMethod().Name);
 }
        public Version[] GetPackages(ref Repository repository, ref PackageFilter filter, string packageFormat, string projectId)
        {
#if DEBUG
            var startTime = DateTime.Now;
            System.Diagnostics.Trace.WriteLine(string.Format("Start: {0}", startTime.ToString("s")));
#endif
            if (_cachedVersionRepository.Count == 0)
            {
                lock (_syncLock)
                {
                    if (_cachedVersionRepository.Count == 0)
                    {
                        var repositoryCopy = repository;

                        var versions =
                            Directory.EnumerateDirectories(configuration.DataPath)
                                .SelectMany(
                                    projectPath =>
                                        Directory.EnumerateDirectories(projectPath)
                                            .Select(
                                                versionPath =>
                                                    new Version
                                                    {
                                                        Company = repositoryCopy.Company,
                                                        Repository = repositoryCopy.Name,
                                                        Project = Path.GetFileName(projectPath),
                                                        Name = Path.GetFileName(versionPath),
                                                        PackageFormat = packageFormat,
                                                    })
                                            .Where(version => GetPackagePathFromVersion(version, packageFormat) != null)
                                            .Select(version => new Version
                                            {
                                                Company = version.Company,
                                                Repository = version.Repository,
                                                Project = version.Project,
                                                Name = version.Name,
                                                PackageFormat = "SHA512",
                                                PackageHash =
                                                    GetPackageSHA512(GetPackagePathFromVersion(version, packageFormat)),
                                            })
                                )
                                .ToArray();

                        // Reorder according semver
                        List<Version> sortedVersions = versions.ToList();
                        sortedVersions.Sort();
                        sortedVersions.Reverse();

                        foreach (var version in sortedVersions)
                        {
                            bool isLatest =
                                sortedVersions.Where(v => v.Project == version.Project && !v.Name.Contains("-"))
                                    .Select(v => v.Name)
                                    .FirstOrDefault() == version.Name;
                            bool isAbsoluteLatest =
                                sortedVersions.Where(v => v.Project == version.Project)
                                    .Select(v => v.Name)
                                    .FirstOrDefault() ==
                                version.Name;
                            var metadata =
                                new List<MetadataEntry>(
                                    GetPackageMetadata(GetPackagePathFromVersion(version, packageFormat), packageFormat) ??
                                    new MetadataEntry[0]);
                            var metadataWrapper = new MetadataWrapper(metadata);
                            metadataWrapper["IsLatestVersion"] = isLatest.ToString();
                            metadataWrapper["IsAbsoluteLatestName"] = isAbsoluteLatest.ToString();
                            version.Metadata = metadata.ToArray();
                        }

                        _cachedVersionRepository = sortedVersions;
                    }
                }
            }
#if DEBUG
            TimeSpan elapsed2 = DateTime.Now - startTime;
            System.Diagnostics.Trace.WriteLine(string.Format("End: {0} - Elapsed2: {1}", DateTime.Now.ToString("s"), elapsed2.ToString("g")));
#endif
            return _cachedVersionRepository.ToArray();
        }
        public Version[] GetPackages(ref Repository repository, ref PackageFilter filter, string packageFormat, string projectId)
        {
            var repositoryCopy = repository;

            var versions =
                Directory.EnumerateDirectories(configuration.DataPath)
                    .SelectMany(
                        projectPath =>
                            Directory.EnumerateDirectories(projectPath)
                                .Select(
                                    versionPath =>
                                        new Version
                                        {
                                            Company = repositoryCopy.Company,
                                            Repository = repositoryCopy.Name,
                                            Project = Path.GetFileName(projectPath),
                                            Name = Path.GetFileName(versionPath),
                                            PackageFormat = packageFormat,
                                        })
                                .Where(version => GetPackagePathFromVersion(version, packageFormat) != null)
                                .Select(version => new Version
                                {
                                    Company = version.Company,
                                    Repository = version.Repository,
                                    Project = version.Project,
                                    Name = version.Name,
                                    PackageFormat = "SHA512",
                                    PackageHash =
                                        GetPackageSHA512(GetPackagePathFromVersion(version, packageFormat)),
                                })
                    )
                    .ToArray();

            // Reorder according semver
            List<Version> sortedVersions = versions.ToList();
            sortedVersions.Sort();
            sortedVersions.Reverse();

            foreach (var version in sortedVersions)
            {
                bool isLatest =
                    sortedVersions.Where(v => v.Project == version.Project && !v.Name.Contains("-"))
                        .Select(v => v.Name)
                        .FirstOrDefault() == version.Name;
                bool isAbsoluteLatest =
                    sortedVersions.Where(v => v.Project == version.Project)
                        .Select(v => v.Name)
                        .FirstOrDefault() ==
                    version.Name;
                var metadata =
                    new List<MetadataEntry>(
                        GetPackageMetadata(GetPackagePathFromVersion(version, packageFormat), packageFormat) ??
                        new MetadataEntry[0]);
                var metadataWrapper = new MetadataWrapper(metadata);
                metadataWrapper["IsLatestVersion"] = isLatest.ToString();
                metadataWrapper["IsAbsoluteLatestName"] = isAbsoluteLatest.ToString();
                version.Metadata = metadata.ToArray();
            }
            return sortedVersions.ToArray();
        }
        public Version[] GetPackages(ref Repository repository, ref PackageFilter filter, string packageFormat, string projectId)
        {
            var repositoryCopy = repository;

            var versions = (projectId == null ? Directory.EnumerateDirectories(configuration.DataPath) : Directory.EnumerateDirectories(configuration.DataPath, projectId))
                .SelectMany(
                    projectPath =>
                    Directory.EnumerateDirectories(projectPath)
                        .Select(
                            versionPath =>
                            new Version
                                {
                                    Company = repositoryCopy.Company,
                                    Repository = repositoryCopy.Name,
                                    Project = Path.GetFileName(projectPath),
                                    Name = Path.GetFileName(versionPath),
                                    PackageFormat = packageFormat,
                                })
                        .Where(version => GetPackagePathFromVersion(version, packageFormat) != null)
                        .Select(version => new Version
                                               {
                                                   Company = version.Company,
                                                   Repository = version.Repository,
                                                   Project = version.Project,
                                                   Name = version.Name,
                                                   PackageFormat = "SHA512",
                                                   PackageHash = GetPackageSHA512(GetPackagePathFromVersion(version, packageFormat)),
                                               })
                )
                .OrderByDescending(v => v.Name)
                .ToArray();

            foreach(var version in versions)
            {
                bool isLatest = versions.Where(v => v.Project == version.Project).Select(v => v.Name).FirstOrDefault() == version.Name;
                var metadata = new List<MetadataEntry>(GetPackageMetadata(GetPackagePathFromVersion(version, packageFormat), packageFormat) ?? new MetadataEntry[0]);
                var metadataWrapper = new MetadataWrapper(metadata);
                metadataWrapper["IsLatestVersion"] = isLatest.ToString();
                version.Metadata = metadata.ToArray();
            }
            return versions;
        }
Ejemplo n.º 30
0
 public virtual Version[] GetPackages(ref Repository repository, ref PackageFilter filter, string packageFormat)
 {
     throw new NotImplementedException("Not implemented: " + MethodBase.GetCurrentMethod().Name);
 }
Ejemplo n.º 31
0
 private void OnFilterChange(PackageFilter filter)
 {
     Collection.SetFilter(filter);
 }
        async public Task <object> GetExecuteProjectDetail(int executeProjectId)
        {
            //某个执行项目的基本信息.来自TFNExecuteProject所以带流程信息
            var executeProjectBaseInfo = await Db.GetModelByIdSpAsync <VTFNExecuteProject>(
                executeProjectId,
                $"TFNExecuteProject({CurrentUser.Id})");

            if (executeProjectBaseInfo == null)
            {
                throw new Exception("没有找到该执行项目");
            }

            var packageOfExecuteProjectBaseInfo = await Db.GetListSpAsync <VTFNPackageOfExcuteBudget, PackageFilter>(
                new PackageFilter()
            {
                ExecuteProjectId = executeProjectId
            },
                $"TFNPackageOfExcuteBudget({CurrentUser.Id})");

            //如果还没开始实施,则当前步骤为flowTemplateid=>中第一个stepTemplateId,是个神奇的数字
            var currentStepTemplateId = executeProjectBaseInfo.LastStepTemplateId ?? FlowTemplateIdOfExecuteProject;

            //已经走过的步骤的步骤模板唯一集合;
            var listOfStepTemplateHavePassed = (await Db.GetListSpAsync <StepTemplate>(
                                                    $"TFNGetStepTemplateHavePassed({executeProjectBaseInfo.LastStepId ?? 0})")).ToList();

            //当前所有应该显示出来的步骤模板名称;ExecutionModeId==null时视为0
            var stepTemplateOfExecute =
                Config.GetValue <string>($"StepTemplateOfExecute:{executeProjectBaseInfo.ExecutionModeId ?? 0}").Split(",");

            var isNotInFlow = listOfStepTemplateHavePassed.Count() == 0;

            //TODO:如果还没有开始流程,那么往里面加一条第一个步骤,这个很讨厌;
            //不应该加这个,为了适应这个,加了
            if (listOfStepTemplateHavePassed.Count() == 0)
            {
                listOfStepTemplateHavePassed.Add(
                    new StepTemplate()
                {
                    Id   = currentStepTemplateId,
                    Name = stepTemplateOfExecute.FirstOrDefault()
                });
            }

            //左侧菜单
            var menu = from item in stepTemplateOfExecute
                       join itemPassed in listOfStepTemplateHavePassed on item equals itemPassed.Name into joinedList
                       from joinedItem in joinedList.DefaultIfEmpty()
                       select new MenuOfExecuteProject
            {
                //StepTemplateId = joinedItem?.Id,  没有发生的暂时取不到这个玩意儿
                StepTemplateName = item,
                IsPassed         = joinedItem?.Name == null ? false : true,
                //当state=0时,才有当前步骤
                ISCurrentStepTemplate = (executeProjectBaseInfo.State == null || executeProjectBaseInfo.State == (int)StepState.Stay) ?
                                        (currentStepTemplateId == joinedItem?.Id) : false,
                //如果此步骤是前步骤,且当前步骤为可执行(如果当前步骤是否可执行IsCanOperate为null,则说明是还没开始实施,则判断当前 登录人是否为可执行项目的归口部门),则为可执行的状态;
                IsCanOperate = currentStepTemplateId == joinedItem?.Id &&
                               (executeProjectBaseInfo.IsCanOperate ??
                                (CurrentUser.DepartmentId == executeProjectBaseInfo.RelevantDepartmentId))
            };
            var ListOfMenu = menu.ToList();

            //TODO:这块是否可以更正|投诉写的太复杂了.
            //更正是否可以使用
            var isCanOperateWhenCorrection = false;

            //执行方式为社会代理机构,而登录人是代理机构角色时,可以操作
            if (Config.GetValue <int>("ExecutionModeId:社会代理机构") == executeProjectBaseInfo.ExecutionModeId)
            {
                isCanOperateWhenCorrection = CurrentUser.RoleId == Config.GetValue <int>("RoleId:Agency");
            }
            else
            //执行方式不是社会代理机构时,登录人是采购中心角色,可以操作
            {
                isCanOperateWhenCorrection = CurrentUser.RoleId == Config.GetValue <int>("RoleId:PurchasingCenter");
            }

            //最后,自主采购都不能操作;
            if (Config.GetValue <int>("ExecutionModeId:自主采购") == executeProjectBaseInfo.ExecutionModeId)
            {
                isCanOperateWhenCorrection = false;
            }

            ListOfMenu.Add(
                new MenuOfExecuteProject()
            {
                StepTemplateName = "更正情况",
                //步骤经过360之后,就可以使用
                IsPassed = executeProjectBaseInfo.LastStepTemplateId >= Config.GetValue <int>("StepTemplateId:ExecuteProjectOfBidEvaluation") ? true : false,
                ISCurrentStepTemplate = false,
                IsCanOperate          = isCanOperateWhenCorrection
            });

            //质疑是否可以使用
            var isCanOperateWhenQuestion = false;

            //执行方式为社会代理机构,而登录人是代理机构角色时,可以操作
            if (Config.GetValue <int>("ExecutionModeId:社会代理机构") == executeProjectBaseInfo.ExecutionModeId)
            {
                isCanOperateWhenQuestion = CurrentUser.RoleId == Config.GetValue <int>("RoleId:Agency");
            }
            //不论什么执行方式,登录人是采购中心角色,可以操作
            if (CurrentUser.RoleId == Config.GetValue <int>("RoleId:PurchasingCenter"))
            {
                isCanOperateWhenQuestion = true;
            }

            //最后,自主采购都不能操作;
            if (Config.GetValue <int>("ExecutionModeId:自主采购") == executeProjectBaseInfo.ExecutionModeId)
            {
                isCanOperateWhenQuestion = false;
            }

            ListOfMenu.Add(
                new MenuOfExecuteProject()
            {
                StepTemplateName      = "质疑投诉",
                IsPassed              = executeProjectBaseInfo.LastStepTemplateId >= Config.GetValue <int>("StepTemplateId:ExecuteProjectOfBidEvaluation") ? true : false,
                ISCurrentStepTemplate = false,
                IsCanOperate          = isCanOperateWhenQuestion
            });

            var packageFilter = new PackageFilter()
            {
                WhereInId = packageOfExecuteProjectBaseInfo.Select(i => i.Id).ToStringIdWithSpacer()
            };

            var packageFilterWithExecuteProjectId = new PackageFilter()
            {
                WhereInExecuteProjectId = executeProjectId.ToString()
            };

            return(new DetailOfExecuteProject
            {
                ExecuteProject = new MultiPartOfExecuteProject()
                {
                    ExecuteProject = executeProjectBaseInfo,
                    ExecuteProjectOfGetRunMode = await Db.GetModelByIdSpAsync <VExecuteProjectOfGetRunMode>(executeProjectId),
                    ExecuteProjectOfArgument = await Db.GetModelByIdSpAsync <ExecuteProjectOfArgument>(executeProjectId),
                    ExecuteProjectOfConfirm = await Db.GetModelByIdSpAsync <ExecuteProjectOfConfirm>(executeProjectId),
                    ExecuteProjectOfInvitation = await Db.GetModelByIdSpAsync <ExecuteProjectOfInvitation>(executeProjectId),
                    ExecuteProjectOfBidEvaluation = await Db.GetModelByIdSpAsync <ExecuteProjectOfBidEvaluation>(executeProjectId),
                    ExecuteProjectExperts = await Db.GetListSpAsync <VExecuteProjectExperts, PackageFilter>(
                        packageFilterWithExecuteProjectId),
                    ExecuteProjectOfResultNotice = await Db.GetModelByIdSpAsync <ExecuteProjectOfResultNotice>(executeProjectId),
                    ExecuteProjectOfQuestion = await Db.GetListSpAsync <ExecuteProjectOfQuestion, PackageFilter>(packageFilterWithExecuteProjectId),
                    ExecuteProjectOfCorrection = await Db.GetListSpAsync <ExecuteProjectOfCorrection, PackageFilter>(packageFilterWithExecuteProjectId)
                },

                ExecutePackage = new MultiPartOfExecutePackage()
                {
                    PackageOfExcuteBudget = packageOfExecuteProjectBaseInfo,
                    PackageOfTechnicalConfirmation = await Db.GetListSpAsync <PackageOfTechnicalConfirmation, PackageFilter>(packageFilter),
                    PackageOfInvitation = await Db.GetListSpAsync <PackageOfInvitation, PackageFilter>(packageFilter),
                    PackageOfBidEvaluation = await Db.GetListSpAsync <PackageOfBidEvaluation, PackageFilter>(packageFilter),
                    PackageOfResultNotice = await Db.GetListSpAsync <PackageOfResultNotice, PackageFilter>(packageFilter),
                    PackageOfDrawUpContract = await Db.GetListSpAsync <PackageOfDrawUpContract, PackageFilter>(packageFilter),
                    PackageOfContractSigning = await Db.GetListSpAsync <PackageOfContractSigning, PackageFilter>(packageFilter),
                    PackageOfContractPublicity = await Db.GetListSpAsync <PackageOfContractPublicity, PackageFilter>(packageFilter),
                    PackageOfAcceptanceCheckAndAcceptance = await Db.GetListSpAsync <PackageOfAcceptanceCheckAndAcceptance, PackageFilter>(packageFilter)
                },
                RejectedPackage = await Db.GetListSpAsync <VPackageOfRejected, PackageFilter>(packageFilterWithExecuteProjectId),
                Menu = ListOfMenu,
                //CurrentStepTemplateId = currentStepTemplateId,

                ////而是否可执行则定为是否当前归口部门的人
                //IsCanOperate = executeProjectBaseInfo.IsCanOperate ?? (CurrentUser.DepartmentId == executeProjectBaseInfo.RelevantDepartmentId)
            });
        }
Ejemplo n.º 33
0
        public void SetPackages(PackageFilter filter, IEnumerable <Package> packages, string lastSelection)
        {
            if (filter == PackageFilter.Modules)
            {
                packages = packages.Where(pkg => pkg.IsBuiltIn);
            }
            else if (filter == PackageFilter.All)
            {
                packages = packages.Where(pkg => !pkg.IsBuiltIn);
            }
            else
            {
                packages = packages.Where(pkg => !pkg.IsBuiltIn);
                packages = packages.Where(pkg => pkg.Current != null);
            }

            OnLoaded();
            ClearAll();

            var packagesGroup = new PackageGroup(PackageGroupOrigins.Packages.ToString());

            Groups.Add(packagesGroup);
            List.Add(packagesGroup);
            packagesGroup.previousGroup = null;

            var builtInGroup = new PackageGroup(PackageGroupOrigins.BuiltInPackages.ToString());

            Groups.Add(builtInGroup);
            List.Add(builtInGroup);

            if (filter == PackageFilter.Modules)
            {
                packagesGroup.nextGroup    = builtInGroup;
                builtInGroup.previousGroup = packagesGroup;
                builtInGroup.nextGroup     = null;
            }
            else
            {
                packagesGroup.nextGroup = null;
                UIUtils.SetElementDisplay(builtInGroup, false);
            }

            Select(null);

            PackageItem defaultSelection = null;

            foreach (var package in packages.OrderBy(pkg => pkg.Versions.FirstOrDefault() == null ? pkg.Name : pkg.Versions.FirstOrDefault().DisplayName))
            {
                var item = AddPackage(package);

                if (null == selectedItem && defaultSelection == null)
                {
                    defaultSelection = item;
                }

                if (null == selectedItem && !string.IsNullOrEmpty(lastSelection) && package.Name.Equals(lastSelection))
                {
                    Select(item);
                }
            }

            if (selectedItem == null)
            {
                Select(defaultSelection);
            }

            PackageFiltering.FilterPackageList(this);
        }
Ejemplo n.º 34
0
 public virtual Version[] GetPackages(ref Repository repository, ref PackageFilter filter, string packageFormat)
 {
     return(service.GetPackages(caller, ref repository, ref filter, packageFormat));
 }
        public Version[] GetPackages(ref Repository repository, ref PackageFilter filter, string packageFormat, string projectId)
        {
#if DEBUG
            var startTime = DateTime.Now;
            System.Diagnostics.Trace.WriteLine(string.Format("Start: {0}", startTime.ToString("s")));
#endif
            if (_cachedVersionRepository.Count == 0)
            {
                lock (_syncLock)
                {
                    if (_cachedVersionRepository.Count == 0)
                    {
                        var repositoryCopy = repository;

                        var versions =
                            Directory.EnumerateDirectories(configuration.DataPath)
                            .SelectMany(
                                projectPath =>
                                Directory.EnumerateDirectories(projectPath)
                                .Select(
                                    versionPath =>
                                    new Version
                        {
                            Company       = repositoryCopy.Company,
                            Repository    = repositoryCopy.Name,
                            Project       = Path.GetFileName(projectPath),
                            Name          = Path.GetFileName(versionPath),
                            PackageFormat = packageFormat,
                        })
                                .Where(version => GetPackagePathFromVersion(version, packageFormat) != null)
                                .Select(version => new Version
                        {
                            Company       = version.Company,
                            Repository    = version.Repository,
                            Project       = version.Project,
                            Name          = version.Name,
                            PackageFormat = "SHA512",
                            PackageHash   =
                                GetPackageSHA512(GetPackagePathFromVersion(version, packageFormat)),
                        })
                                )
                            .ToArray();

                        // Reorder according semver
                        List <Version> sortedVersions = versions.ToList();
                        sortedVersions.Sort();
                        sortedVersions.Reverse();

                        foreach (var version in sortedVersions)
                        {
                            bool isLatest =
                                sortedVersions.Where(v => v.Project == version.Project && !v.Name.Contains("-"))
                                .Select(v => v.Name)
                                .FirstOrDefault() == version.Name;
                            bool isAbsoluteLatest =
                                sortedVersions.Where(v => v.Project == version.Project)
                                .Select(v => v.Name)
                                .FirstOrDefault() ==
                                version.Name;
                            var metadata =
                                new List <MetadataEntry>(
                                    GetPackageMetadata(GetPackagePathFromVersion(version, packageFormat), packageFormat) ??
                                    new MetadataEntry[0]);
                            var metadataWrapper = new MetadataWrapper(metadata);
                            metadataWrapper["IsLatestVersion"]      = isLatest.ToString();
                            metadataWrapper["IsAbsoluteLatestName"] = isAbsoluteLatest.ToString();
                            version.Metadata = metadata.ToArray();
                        }

                        _cachedVersionRepository = sortedVersions;
                    }
                }
            }
#if DEBUG
            TimeSpan elapsed2 = DateTime.Now - startTime;
            System.Diagnostics.Trace.WriteLine(string.Format("End: {0} - Elapsed2: {1}", DateTime.Now.ToString("s"), elapsed2.ToString("g")));
#endif
            return(_cachedVersionRepository.ToArray());
        }
Ejemplo n.º 36
0
        /// <summary>
        /// Get downloads information about packages for selected period.
        /// </summary>
        /// <param name="period">Requested period - year, month</param>
        /// <param name="filter">Specify packages type</param>
        /// <returns>Information about package downloads.</returns>
        public async Task <PackageDownloads[]> GetDownloadsAsync(DateTimeOffset period, PackageFilter filter = PackageFilter.All)
        {
            AssertIsLoggedIn();

            CheckYear(period);

            var publisherInfo = await GetPublisherInfoAsync();

            var date       = period.ToString(ClientConsts.PERIOD_DT_FORMAT);
            var parameters = new Dictionary <string, string>()
            {
                { "package_filter", filter.ToString().ToLowerInvariant() }
            };

            var response = await FetchDataAsync <DownloadsResponse>($"/api/publisher-info/downloads/{publisherInfo.Id}/{date}.json" + ToQueryString(parameters));

            var downloads = new PackageDownloads[response.Payload.Length];

            for (int i = 0; i < response.Payload.Length; i++)
            {
                downloads[i] = new PackageDownloads(response.Payload[i], response.Links[i].ShortUrl);
            }

            return(downloads);
        }