public ProjectCreator IncreaseTrustPoint(int id)
        {
            ProjectCreator projectCreator = db.ProjectCreators.Find(id);

            if (projectCreator != null)
            {
                projectCreator.TrustPoints += 50;
            }
            db.SaveChanges();
            return(projectCreator);
        }
Пример #2
0
        public void ItemGroupCondition()
        {
            ProjectCreator.Create(projectFileOptions: NewProjectFileOptions.None)
            .ItemGroup(condition: "4AEF424E1AFB46DF844A29AC9663329E")
            .Xml
            .ShouldBe(
                @"<Project>
  <ItemGroup Condition=""4AEF424E1AFB46DF844A29AC9663329E"" />
</Project>",
                StringCompareShould.IgnoreLineEndings);
        }
Пример #3
0
        public void UsingTaskAssemblyFileSimple()
        {
            ProjectCreator.Create(projectFileOptions: NewProjectFileOptions.None)
            .UsingTaskAssemblyFile("BCC53601667C4195A9DCDCEF59C4C0F0", "125F7786CD46409FA09B4999629BAF4F")
            .Xml
            .ShouldBe(
                @"<Project>
  <UsingTask TaskName=""BCC53601667C4195A9DCDCEF59C4C0F0"" AssemblyFile=""125F7786CD46409FA09B4999629BAF4F"" />
</Project>",
                StringCompareShould.IgnoreLineEndings);
        }
Пример #4
0
        public List <ProjectOption> FindAll()
        {
            List <Project>       projectList       = db.Set <Project>().Include(o => o.ProjectCreator).ToList();
            List <ProjectOption> projectOptionList = new List <ProjectOption>();

            foreach (Project p in projectList)
            {
                ProjectCreator projectCreator = p.ProjectCreator;
                projectOptionList.Add(CreateProjectOption(p));
            }
            return(projectOptionList);
        }
        public bool SoftDeleteProjectCreatorById(int id)
        {
            ProjectCreator projectCreator = db.ProjectCreators.Find(id);

            if (projectCreator != null)
            {
                projectCreator.Active = false;
                db.SaveChanges();
                return(true);
            }
            return(false);
        }
        public bool DeleteProjectCreator(int id)
        {
            ProjectCreator pc = dbContext.ProjectCreators.Find(id);

            if (pc == null)
            {
                return(false);
            }
            dbContext.ProjectCreators.Remove(pc);
            dbContext.SaveChanges();
            return(true);
        }
Пример #7
0
        public bool DeleteProjectCreatorById(int id)
        {
            ProjectCreator projectCreator = db.ProjectCreators.Find(id);

            if (projectCreator != null)
            {
                db.ProjectCreators.Remove(projectCreator);
                db.SaveChanges();
                return(true);
            }
            return(false);
        }
Пример #8
0
        public void ProjectIsReEvaluated()
        {
            ProjectCollection projectCollection = new ProjectCollection();

            ProjectCreator creator = ProjectCreator.Create(projectCollection: projectCollection);

            creator.Project.GetPropertyValue("Property1").ShouldBe(string.Empty);

            creator.Project.SetGlobalProperty("Property1", "8AD6F0530E774E468DBBD5B4143A1B1D");

            creator.Project.GetPropertyValue("Property1").ShouldBe("8AD6F0530E774E468DBBD5B4143A1B1D");
        }
Пример #9
0
        public void LoadProject(string fileName)
        {
            var glueProjectSave = FileManager.XmlDeserialize <GlueProjectSave>(fileName);

            ProjectManager.Self.CurrentGlueProjectSave = glueProjectSave;

            // also need to load the csproj:
            var projectFileName = FileManager.RemoveExtension(fileName) + ".csproj";

            ProjectManager.Self.MainProject = ProjectCreator.CreateProject(projectFileName);
            ProjectManager.Self.MainProject.Load(projectFileName);
        }
Пример #10
0
        public IActionResult AddFundingPackage([FromQuery] int ProjectId, int projectCreatorId)
        {
            ProjectCreator projCreator = db.ProjectCreators.Find(projectCreatorId);

            ProjectModel project = new ProjectModel
            {
                ProjectId      = ProjectId,
                ProjectCreator = projCreator
            };

            return(View(project));
        }
Пример #11
0
        public async Task BuildShouldUseDotNetCertifcateIfSetWithPostBuildSigning(bool?useDotNetCert)
        {
            var envVars = Environment.GetEnvironmentVariables();

            using (var builder = new TestRepoBuilder(nameof(BuildShouldUseDotNetCertifcateIfSet), _commonRepoResourcesFixture.CommonResources))
            {
                await builder.AddDefaultRepoSetupAsync();

                // Always put in the AllowEmptySignList
                var signingProps = ProjectCreator.Create().PropertyGroup();
                signingProps.Property("AllowEmptySignList", "true");

                if (useDotNetCert.HasValue)
                {
                    signingProps.Property("UseDotNetCertificate", useDotNetCert.Value.ToString());
                }

                builder.AddProject(signingProps, "eng/Signing.props");

                // Create a simple project
                builder.AddProject(ProjectCreator
                                   .Templates
                                   .SdkCsproj(
                                       targetFramework: "net6.0",
                                       outputType: "Exe")
                                   .PropertyGroup()
                                   .Property("IsPackable", "true")
                                   .Property("EnableSourceLink", "false"),
                                   "./src/FooPackage/FooPackage.csproj");
                await builder.AddSimpleCSFile("src/FooPackage/Program.cs");

                builder.Build(
                    TestRepoUtils.BuildArg("configuration"),
                    "Release",
                    TestRepoUtils.BuildArg("restore"),
                    TestRepoUtils.BuildArg("pack"),
                    TestRepoUtils.BuildArg("publish"),
                    TestRepoUtils.BuildArg("sign"),
                    TestRepoUtils.BuildArg("projects"),
                    Path.Combine(builder.TestRepoRoot, "src/FooPackage/FooPackage.csproj"),
                    "/p:AutoGenerateSymbolPackages=false",
                    "/p:PostBuildSign=true",
                    "/p:DotNetPublishUsingPipelines=true")
                .Should().NotThrow();
                string assetManifestText = GetAssetManifest(builder);
                string expectedCert      = useDotNetCert.GetValueOrDefault() ? DotNetCertificate : MicrosoftCertificate;
                string unexpectedCert    = useDotNetCert.GetValueOrDefault() ? MicrosoftCertificate : DotNetCertificate;

                // Ensure that we see the expected cert.
                assetManifestText.IndexOf(unexpectedCert).Should().Be(-1);
                assetManifestText.IndexOf(expectedCert).Should().NotBe(-1);
            }
        }
Пример #12
0
        public void SingleProject()
        {
            Dictionary <string, string> globalProperties = new Dictionary <string, string>
            {
                [MSBuildPropertyNames.DesignTimeBuild]          = bool.TrueString,
                [MSBuildPropertyNames.SlnGenLaunchVisualStudio] = bool.FalseString,
            };

            ProjectCreator
            .Create(Path.Combine(TestRootPath, "Directory.Build.props"))
            .Save();
            ProjectCreator
            .Create(Path.Combine(TestRootPath, "Directory.Build.targets"))
            .Property("SlnGenAssemblyFile", Path.Combine(Environment.CurrentDirectory, "slngen.exe"))
            .Import(Path.Combine(Environment.CurrentDirectory, "build", "Microsoft.VisualStudio.SlnGen.targets"), condition: "'$(IsCrossTargetingBuild)' != 'true'")
            .Import(Path.Combine(Environment.CurrentDirectory, "buildMultiTargeting", "Microsoft.VisualStudio.SlnGen.targets"), condition: "'$(IsCrossTargetingBuild)' == 'true'")
            .Save();

            ProjectCreator project = ProjectCreator.Templates
                                     .SdkCsproj(
                Path.Combine(TestRootPath, "ProjectA", "ProjectA.csproj"),
                targetFramework: "netcoreapp2.0")
                                     .Save()
                                     .TryBuild("SlnGen", globalProperties, out bool result, out BuildOutput buildOutput, out IDictionary <string, TargetResult> targetOutputs);

            result.ShouldBeTrue(buildOutput.GetConsoleLog());

            KeyValuePair <string, TargetResult> targetOutput = targetOutputs.ShouldHaveSingleItem();

            targetOutput.Key.ShouldBe("SlnGen");

            FileInfo expected = new FileInfo(Path.Combine(Path.ChangeExtension(project.FullPath, ".sln")));

            expected.Exists.ShouldBeTrue();

            SolutionFile solutionFile = SolutionFile.Parse(expected.FullName);

            solutionFile.SolutionConfigurations
            .Select(i => i.FullName)
            .ShouldBe(new[]
            {
                "Debug|Any CPU",
                "Release|Any CPU",
            });

            solutionFile.ProjectsInOrder
            .Select(i => i.AbsolutePath)
            .ShouldBe(new[]
            {
                project.FullPath,
            });
        }
Пример #13
0
        public void ImportProjectCreator()
        {
            ProjectCreator project1 = ProjectCreator.Create("A4DD67D773834B24AC6AEA317653AD28");

            ProjectCreator.Create(projectFileOptions: NewProjectFileOptions.None)
            .Import(project1, condition: "E4E4F3ECECF444D28D65F5A59D4B2E89")
            .Xml
            .ShouldBe(
                $@"<Project>
  <Import Project=""{project1.FullPath}"" Condition=""E4E4F3ECECF444D28D65F5A59D4B2E89"" />
</Project>",
                StringCompareShould.IgnoreLineEndings);
        }
Пример #14
0
 public static ProjectCreator ItemRobocopy(this ProjectCreator creator, string include, string destinationFolder, string fileMatch, string condition = null)
 {
     return(creator.ItemInclude(
                "Robocopy",
                include,
                null,
                new Dictionary <string, string>
     {
         { "DestinationFolder", destinationFolder },
         { "FileMatch", fileMatch },
     },
                condition));
 }
Пример #15
0
        public void ImportProjectRootElement()
        {
            ProjectCreator project1 = ProjectCreator.Create("24775F0E17A348979DB4DF3D357621F9");

            ProjectCreator.Create(projectFileOptions: NewProjectFileOptions.None)
            .Import(project1.RootElement, condition: "5884085731AB4A588AC8337069C3223B")
            .Xml
            .ShouldBe(
                $@"<Project>
  <Import Project=""{project1.FullPath}"" Condition=""5884085731AB4A588AC8337069C3223B"" />
</Project>",
                StringCompareShould.IgnoreLineEndings);
        }
Пример #16
0
        private static void ValidateParseCustomProjectTypeGuids(string fileExtension, string projectTypeGuid, string expectedFileExtension, Guid expectedProjectTypeGuid)
        {
            Project project = ProjectCreator.Create()
                              .ItemInclude(
                MSBuildItemNames.SlnGenCustomProjectTypeGuid,
                fileExtension,
                metadata: new Dictionary <string, string>
            {
                { MSBuildPropertyNames.ProjectTypeGuid, projectTypeGuid },
            });

            ValidateParseCustomProjectTypeGuids(project, expectedFileExtension, expectedProjectTypeGuid);
        }
Пример #17
0
        public void ImportProject()
        {
            ProjectCreator project1 = ProjectCreator.Create("B2EE38CD5D1E4B228655A95B2B7224BA");

            ProjectCreator.Create(projectFileOptions: NewProjectFileOptions.None)
            .Import(project1.Project, condition: "8D9C051BE69C4EB99B7C4A53C80A625D")
            .Xml
            .ShouldBe(
                $@"<Project>
  <Import Project=""{project1.FullPath}"" Condition=""8D9C051BE69C4EB99B7C4A53C80A625D"" />
</Project>",
                StringCompareShould.IgnoreLineEndings);
        }
Пример #18
0
        public void ContentItem()
        {
            ProjectCreator.Create(projectFileOptions: NewProjectFileOptions.None)
            .ItemContent("2B63E02B870E4F2FBE812995C081B0C5")
            .Xml
            .ShouldBe(
                @"<Project>
  <ItemGroup>
    <Content Include=""2B63E02B870E4F2FBE812995C081B0C5"" />
  </ItemGroup>
</Project>",
                StringCompareShould.IgnoreLineEndings);
        }
Пример #19
0
        public void TryGetItemsCustomSelector()
        {
            ProjectCreator.Create(projectFileOptions: NewProjectFileOptions.None)
            .ItemInclude("MyItem", "3F114C1509CF4D499A44F986BEBD5707")
            .ItemInclude("MyItem", "8A9654A639F5429AB1C7A8F2AE9639D8")
            .TryGetItems("MyItem", i => i.EvaluatedInclude, out IReadOnlyCollection <string> items);

            items.ShouldBe(new List <string>
            {
                "3F114C1509CF4D499A44F986BEBD5707",
                "8A9654A639F5429AB1C7A8F2AE9639D8",
            });
        }
Пример #20
0
        public void PropertySimple()
        {
            ProjectCreator.Create(projectFileOptions: NewProjectFileOptions.None)
            .Property("FF38992245B549C5B353B1662A7A330D", "60B667098861411CA81AD8A8A355A649")
            .Xml
            .ShouldBe(
                @"<Project>
  <PropertyGroup>
    <FF38992245B549C5B353B1662A7A330D>60B667098861411CA81AD8A8A355A649</FF38992245B549C5B353B1662A7A330D>
  </PropertyGroup>
</Project>",
                StringCompareShould.IgnoreLineEndings);
        }
Пример #21
0
        public void PropertySetIfEmpty()
        {
            ProjectCreator.Create(projectFileOptions: NewProjectFileOptions.None)
            .Property("A47F78111F084710B139CD5AEEB5395E", string.Empty)
            .Xml
            .ShouldBe(
                @"<Project>
  <PropertyGroup>
    <A47F78111F084710B139CD5AEEB5395E />
  </PropertyGroup>
</Project>",
                StringCompareShould.IgnoreLineEndings);
        }
        public ProjectCreatorOption FindProjectCreator(int id)
        {
            ProjectCreator pc = dbContext.ProjectCreators.Find(id);

            return(new ProjectCreatorOption
            {
                FirstName = pc.FirstName,
                LastName = pc.LastName,
                Description = pc.Description,
                Email = pc.Email,
                Id = pc.Id // might need fixing
            });
        }
Пример #23
0
        public void RestoreTargetCanBeRun()
        {
            ProjectCreator
            .Create(Path.Combine(TestRootPath, "project1.proj"))
            .Target("Restore")
            .TaskMessage("312D2E6ABDDC4735B437A016CED1A68E", MessageImportance.High, condition: "'$(MSBuildRestoreSessionId)' != ''")
            .TaskError("MSBuildRestoreSessionId was not defined", condition: "'$(MSBuildRestoreSessionId)' == ''")
            .TryRestore(out bool result, out BuildOutput buildOutput);

            result.ShouldBeTrue(buildOutput.GetConsoleLog());

            buildOutput.MessageEvents.High.ShouldContain(i => i.Message == "312D2E6ABDDC4735B437A016CED1A68E" && i.Importance == MessageImportance.High, buildOutput.GetConsoleLog());
        }
Пример #24
0
        public void BuildOutputIsComplete()
        {
            ProjectCreator.Create()
            .Target("Build")
            .For(100, (i, creator) => creator.TaskMessage($"Message {i}", MessageImportance.High))
            .TryBuild(out bool result, out BuildOutput buildOutput);

            result.ShouldBeTrue(buildOutput.GetConsoleLog());

            buildOutput.IsShutdown.ShouldBeTrue();

            buildOutput.MessageEvents.High.Count.ShouldBe(100, buildOutput.GetConsoleLog());
        }
Пример #25
0
        public void TaskSimple()
        {
            ProjectCreator.Create(projectFileOptions: NewProjectFileOptions.None)
            .Task("CAD7EC3FFA634946996F92FA823E3A9D")
            .Xml
            .ShouldBe(
                $@"<Project>
  <Target Name=""{ProjectCreatorConstants.DefaultTargetName}"">
    <CAD7EC3FFA634946996F92FA823E3A9D />
  </Target>
</Project>",
                StringCompareShould.IgnoreLineEndings);
        }
Пример #26
0
        private static void AddWriteVersionInfoToBuildLogTask(ProjectCreator project, string targetToRun, string taskName)
        {
            var assemblyFileLocation = typeof(GitVersionTaskBase).Assembly.Location;

            project.UsingTaskAssemblyFile(taskName, assemblyFileLocation)
            .Property("GenerateAssemblyInfo", "false")
            .Target(targetToRun, beforeTargets: "CoreCompile;GetAssemblyVersion;GenerateNuspec")
            .Task(taskName, parameters: new Dictionary <string, string>
            {
                { "SolutionDirectory", "$(MSBuildProjectDirectory)" },
                { "VersionFile", "$(MSBuildProjectDirectory)/gitversion.json" }
            })
            .Target(MsBuildExeFixture.OutputTarget, dependsOnTargets: targetToRun);
        }
Пример #27
0
 public static ProjectCreator ItemGlobalPackageReference(this ProjectCreator creator, string packageId, string version, string includeAssets = null, string excludeAssets = null, string privateAssets = null, IDictionary <string, string> metadata = null, string condition = null)
 {
     return(creator.ItemInclude(
                itemType: "GlobalPackageReference",
                include: packageId,
                metadata: metadata.Merge(new Dictionary <string, string>
     {
         { "Version", version },
         { "IncludeAssets", includeAssets },
         { "ExcludeAssets", excludeAssets },
         { "PrivateAssets", privateAssets },
     }),
                condition: condition));
 }
Пример #28
0
        public void ItemIncludeNotAddedIfNull()
        {
            ProjectCreator.Create(projectFileOptions: NewProjectFileOptions.None)
            .ItemInclude("D7DAD38333D04A5999F9791575DBB57D", null)
            .ItemInclude("FDA04096ED074663997F13D37E81E87A", "CBCFA7D42A3B4A1B93127FAFA13CD3DB")
            .Xml
            .ShouldBe(
                @"<Project>
  <ItemGroup>
    <FDA04096ED074663997F13D37E81E87A Include=""CBCFA7D42A3B4A1B93127FAFA13CD3DB"" />
  </ItemGroup>
</Project>",
                StringCompareShould.IgnoreLineEndings);
        }
Пример #29
0
        public void CompileIsExtensibleWithBeforeAfterTargets(string targetName)
        {
            ProjectCreator noTargetsProject = ProjectCreator.Templates.NoTargetsProject(
                path: Path.Combine(TestRootPath, "NoTargets", "NoTargets.csproj"))
                                              .Target(targetName)
                                              .TaskMessage("503CF1EBA6DC415F95F4DB630E7C1817", MessageImportance.High)
                                              .Save();

            noTargetsProject.TryBuild(restore: true, out bool result, out BuildOutput buildOutput);

            result.ShouldBeTrue(buildOutput.GetConsoleLog());

            buildOutput.Messages.High.ShouldContain("503CF1EBA6DC415F95F4DB630E7C1817", buildOutput.GetConsoleLog());
        }
Пример #30
0
        public async Task BuildShouldErrorIfNoItemsToSignAndNonEmptySignPostBuildList(bool propertyIsSet)
        {
            var envVars = Environment.GetEnvironmentVariables();

            using (var builder = new TestRepoBuilder(nameof(BuildShouldErrorIfNoItemsToSignAndNonEmptySignPostBuildList), _commonRepoResourcesFixture.CommonResources))
            {
                await builder.AddDefaultRepoSetupAsync();

                // Always put in the AllowEmptySignList
                var signingProps = ProjectCreator.Create().PropertyGroup();
                signingProps.Property("AllowEmptySignList", "true");

                if (propertyIsSet)
                {
                    signingProps.Property("AllowEmptySignPostBuildList", "false");
                }

                // Clear out ItemsToSignPostBuild
                signingProps.ItemGroup()
                .ItemRemove("ItemsToSignPostBuild", "@(ItemsToSignPostBuild)");

                builder.AddProject(signingProps, "eng/Signing.props");

                // Create a simple project
                builder.AddProject(ProjectCreator
                                   .Templates
                                   .SdkCsproj(
                                       targetFramework: "net6.0",
                                       outputType: "Exe")
                                   .PropertyGroup()
                                   .Property("IsPackable", "true")
                                   .Property("EnableSourceLink", "false"),
                                   "./src/FooPackage/FooPackage.csproj");
                await builder.AddSimpleCSFile("src/FooPackage/Program.cs");

                builder.Build(
                    TestRepoUtils.BuildArg("configuration"),
                    "Release",
                    TestRepoUtils.BuildArg("restore"),
                    TestRepoUtils.BuildArg("pack"),
                    TestRepoUtils.BuildArg("publish"),
                    TestRepoUtils.BuildArg("sign"),
                    TestRepoUtils.BuildArg("projects"),
                    Path.Combine(builder.TestRepoRoot, "src/FooPackage/FooPackage.csproj"),
                    "/p:AutoGenerateSymbolPackages=false",
                    "/p:PostBuildSign=true")
                .Should().Throw <Exception>($"build of repo {builder.TestRepoRoot} is post build signed")
                .WithMessage("*error : List of files to sign post-build is empty. Make sure that ItemsToSignPostBuild is configured correctly.*");
            }
        }