Ejemplo n.º 1
0
        /// <summary>
        /// Defines the entry point of the application.
        /// </summary>
        /// <param name="args">The arguments.</param>
        public static void Main(string[] args)
        {
            Logger.Debug("NugetToolConsole <- Start");

            // Build project info before this sprint
            var gitPath   = "D:\\SMEE_Project\\NADAE_Sprint_4\\Implementation";
            var oldBranch = "refs/heads/NADAE-M2_S004_1218";

            var listOldProjectInfoModels = BuildAllProjectInfoModel(gitPath, oldBranch);

            //// Temp save to excel file
            //var nugetInfos = new List<object[]>();
            //foreach (var nugetProjectChanged in listOldProjectInfoModels)
            //{
            //    nugetInfos.Add(new object[] { nugetProjectChanged.ProjectName, nugetProjectChanged.NugetVersion });
            //}

            //// Save excel file
            //ExcelHelper.SaveProjectInfo("D:\\Study project\\NugetVerion.xlsx", nugetInfos);

            // Build list project info changed
            var startDat   = "06/14/2018";
            var endDay     = "07/29/2018";
            var newBranch  = "refs/heads/NADAE-M2_S005_2418_Dev";
            var newGitPath = "D:\\SMEE_Project\\NADAE_Sprint_5\\Implementation";
            var listChangedProjectInfoModels = BuildChangedProjectInfoModel(newGitPath, newBranch, startDat, endDay);

            //// Temp save to excel file
            //var newNugetInfos = new List<object[]>();
            //foreach (var nugetProjectChanged in listChangedProjectInfoModels)
            //{
            //    newNugetInfos.Add(new object[] { nugetProjectChanged.ProjectName, nugetProjectChanged.NugetVersion });
            //}

            //// Save excel file
            //ExcelHelper.SaveProjectInfo("D:\\Study project\\NugetVerion1.xlsx", newNugetInfos);

            // Buildm latest version for project
            var maxVersion       = "1.15.0";
            var nugetVersionList = new List <NugetInfo>();

            foreach (var changedProjectInfoModel in listChangedProjectInfoModels)
            {
                var nugetInfo = new NugetInfo()
                {
                    NugetName = changedProjectInfoModel.ProjectName
                };
                var oldProjectInfo = listOldProjectInfoModels.FirstOrDefault(
                    p => string.Equals(p.ProjectName, changedProjectInfoModel.ProjectName));
                if (oldProjectInfo == null)
                {
                    nugetInfo.NugetVersion    = changedProjectInfoModel.NugetVersion;
                    nugetInfo.OldNugetVersion = changedProjectInfoModel.NugetVersion;
                    nugetInfo.NeedUpgrate     = !string.Equals(changedProjectInfoModel.NugetVersion, maxVersion);
                }
                else
                {
                    if (string.Equals(changedProjectInfoModel.NugetVersion, oldProjectInfo.NugetVersion) && string.Equals(changedProjectInfoModel.NugetVersion, maxVersion))
                    {
                        nugetInfo.NugetVersion    = maxVersion;
                        nugetInfo.OldNugetVersion = maxVersion;
                        nugetInfo.NeedUpgrate     = false;
                    }
                    else if (string.Equals(changedProjectInfoModel.NugetVersion, oldProjectInfo.NugetVersion) && !string.Equals(changedProjectInfoModel.NugetVersion, maxVersion))
                    {
                        nugetInfo.NugetVersion    = changedProjectInfoModel.NugetVersion;
                        nugetInfo.OldNugetVersion = oldProjectInfo.NugetVersion;
                        nugetInfo.NeedUpgrate     = true;
                    }
                    else if (!string.Equals(changedProjectInfoModel.NugetVersion, oldProjectInfo.NugetVersion))
                    {
                        nugetInfo.OldNugetVersion = VersionHelper.GetLowerVersion(
                            changedProjectInfoModel.NugetVersion, oldProjectInfo.NugetVersion);
                        nugetInfo.NugetVersion = VersionHelper.GetHigherVersion(changedProjectInfoModel.NugetVersion, oldProjectInfo.NugetVersion);
                        nugetInfo.NeedUpgrate  = VersionHelper.IsNeedToChangeVersion(changedProjectInfoModel.NugetVersion, oldProjectInfo.NugetVersion, maxVersion);
                    }
                }

                nugetVersionList.Add(nugetInfo);
            }

            var latestBuild = 100;
            var listNugetProjectNeedToChangeds = nugetVersionList.Where(n => n.NeedUpgrate && n.NugetName.StartsWith("SMEE.")).ToList();

            foreach (var nugetProjectNeedToChanged in listNugetProjectNeedToChangeds)
            {
                nugetProjectNeedToChanged.NugetVersionNeedToUpgrate =
                    VersionHelper.BuildLatestNugetVersion(nugetProjectNeedToChanged.NugetVersion);
                nugetProjectNeedToChanged.AssemblyVersionNeedToUpgrate =
                    $"{nugetProjectNeedToChanged.NugetVersionNeedToUpgrate}.{latestBuild + 1}";
            }

            var nugetVersionInfos = new List <object[]>();

            foreach (var nugetVersionInfo in listNugetProjectNeedToChangeds)
            {
                nugetVersionInfos.Add(new object[]
                {
                    nugetVersionInfo.NugetName,
                    nugetVersionInfo.OldNugetVersion,
                    nugetVersionInfo.NugetVersion,
                    nugetVersionInfo.NeedUpgrate,
                    nugetVersionInfo.NugetVersionNeedToUpgrate,
                    nugetVersionInfo.AssemblyVersionNeedToUpgrate
                });
            }

            // Save excel file
            ExcelHelper.SaveProjectInfo("D:\\Study project\\NugetVerion.xlsx", nugetVersionInfos);

            Logger.Debug("NugetToolConsole -> End");
        }