Beispiel #1
0
        internal void ConvertSolutionEntries(string solutionFilePath)
        {
            var oldLines = File.ReadAllLines(solutionFilePath);
            var newLines = new List <string>();

            foreach (var line in oldLines)
            {
                if (SolutionUtil.IsProjectLine(line))
                {
                    var entry = SolutionUtil.ParseProjectLine(line);
                    if (ProjectNameMap.TryGetValue(entry.Name, out var newName))
                    {
                        var newEntry = new ProjectEntry(ChangeFileName(entry.RelativeFilePath, newName), newName, entry.Guid, entry.TypeGuid);
                        newLines.Add(SolutionUtil.CreateProjectLine(newEntry));
                    }
                    else
                    {
                        newLines.Add(line);
                    }
                }
                else
                {
                    newLines.Add(line);
                }
            }

            File.WriteAllLines(solutionFilePath, newLines);
        }
Beispiel #2
0
 internal void ConvertProjectFiles(string solutionFilePath)
 {
     foreach (var entry in SolutionUtil.ParseLanguageProjectsRooted(solutionFilePath))
     {
         ConvertProjectFile(entry.FilePath);
     }
 }
Beispiel #3
0
        internal Converter(string solutionFilePath)
        {
            ProjectNameMap  = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase);
            AssemblyNameMap = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase);

            foreach (var entry in SolutionUtil.ParseLanguageProjectsRooted(solutionFilePath))
            {
                if (ExcludedProjectSet.Contains(entry.Name))
                {
                    continue;
                }

                var util         = new ProjectUtil(entry.FilePath);
                var assemblyName = util.AssemblyNameWithoutExtension;
                var name         = entry.Name;
                if (InitialProjectRenameMap.TryGetValue(name, out var data))
                {
                    ProjectNameMap[name]          = data.NewProjectName;
                    AssemblyNameMap[assemblyName] = data.NewAssemblyName;
                }
                else
                {
                    ProjectNameMap[name] = assemblyName;
                }
            }
        }
        public SolutionRepackager(
            IOrganizationService sourceOrganizationService,
            IOrganizationService targetOrganizationService)
        {
            _sourceOrganizationService = sourceOrganizationService;
            _targetOrganizationService = targetOrganizationService;

            _allSourceSolutions = SolutionUtil.GetUnmanagedSolutions(_sourceOrganizationService);
        }
Beispiel #5
0
        internal static void Main(string[] args)
        {
            foreach (var solution in args)
            {
                foreach (var project in SolutionUtil.ParseProjects(solution))
                {
                    if (project.ProjectType != ProjectFileType.CSharp && project.ProjectType != ProjectFileType.Basic)
                    {
                        continue;
                    }

                    var filePath = Path.Combine(Path.GetDirectoryName(solution), project.RelativeFilePath);
                    Convert(filePath, new Dictionary <string, string>());
                }
            }
        }
Beispiel #6
0
            internal void Convert(string solutionRelativePath, bool convertProjects = true)
            {
                var solution = Path.Combine(RepoDir, solutionRelativePath);

                if (convertProjects)
                {
                    foreach (var project in SolutionUtil.ParseProjects(solution))
                    {
                        if (project.ProjectType != ProjectFileType.CSharp && project.ProjectType != ProjectFileType.Basic)
                        {
                            continue;
                        }

                        var filePath = Path.Combine(Path.GetDirectoryName(solution), project.RelativeFilePath);
                        ConvertProject(filePath);
                    }
                }

                var solutionUtil = new ConvertSolutionUtil(solution);

                solutionUtil.Convert();
            }
Beispiel #7
0
        private static void Main(string[] args)
        {
            // Connect to CRM
            string crmConnectionString = Properties.Settings.Default.CrmConnectionString;
            IOrganizationService organizationService = CrmConnectorUtil.Connect(crmConnectionString);

            // Get solution
            Entity solution = SolutionUtil.GetSolution(organizationService);

            if (solution == null)
            {
                return;
            }

            // Execute action
            Action <IOrganizationService, Entity> action = PromptForAction();

            action.Invoke(organizationService, solution);

            Console.WriteLine("Complete");
            Console.ReadLine();
        }
        internal void Convert()
        {
            var dir   = Path.GetDirectoryName(SolutionFilePath);
            var lines = File.ReadAllLines(SolutionFilePath);

            using (var file = File.Open(SolutionFilePath, FileMode.Create, FileAccess.Write))
                using (var writer = new StreamWriter(file))
                {
                    foreach (var line in lines)
                    {
                        if (!SolutionUtil.IsProjectLine(line))
                        {
                            writer.WriteLine(line);
                            continue;
                        }

                        var entry = SolutionUtil.ParseProjectLine(line);
                        if (entry.ProjectType != ProjectFileType.CSharp && entry.ProjectType != ProjectFileType.Basic)
                        {
                            writer.WriteLine(line);
                            continue;
                        }


                        var projectFilePath = Path.Combine(dir, entry.RelativeFilePath);
                        var projectUtil     = new ProjectUtil(projectFilePath);
                        var guid            = GetProjectSystemGuid(projectUtil, entry.ProjectType == ProjectFileType.CSharp);
                        if (guid == entry.TypeGuid)
                        {
                            writer.WriteLine(line);
                            continue;
                        }

                        entry = new ProjectEntry(entry.RelativeFilePath, entry.Name, entry.Guid, guid);
                        writer.WriteLine(SolutionUtil.CreateProjectLine(entry));
                    }
                }
        }
        public void SetTargetSolution(string uniqueName = null)
        {
            if (string.IsNullOrEmpty(uniqueName))
            {
                SolutionUtil.PrintSolutions(_allSourceSolutions, true);
                _targetSolution = SolutionUtil.PromptPickSolution(_allSourceSolutions);
            }
            else
            {
                _targetSolution = SolutionUtil.GetSolutionByName(_sourceOrganizationService, uniqueName);
            }

            if (_targetSolution == null)
            {
                _targetSolutionName     = uniqueName ?? PromptTargetSolutionName();
                _targetSolutionFileName = $"{_targetSolutionName}.zip";
            }
            else
            {
                _targetSolutionName     = _targetSolution.GetAttributeValue <string>("uniquename");
                _targetSolutionFileName = $"{_targetSolutionName}.zip";
            }
        }
        public void SetSourceSolutions(IList <string> solutionUniqueNames)
        {
            if (Validator.IsNullOrEmpty(solutionUniqueNames))
            {
                SolutionUtil.PrintSolutions(_allSourceSolutions);

                bool anotherSolution;
                do
                {
                    Entity solution = SolutionUtil.PromptPickSolution(_allSourceSolutions);
                    if (solution != null)
                    {
                        _sourceSolutions.Add(solution);
                    }

                    anotherSolution = PromptAnotherSolution();
                } while (anotherSolution);
            }
            else
            {
                IList <Entity> solutions = SolutionUtil.GetSolutionsByName(_sourceOrganizationService, solutionUniqueNames.ToArray());
                _sourceSolutions.AddRange(solutions);
            }
        }
Beispiel #11
0
    void Update()
    {
        InputHandler();

        if (started)
        {
            if (!TickUtil.Tick())
            {
                return;
            }

            if (!status.Finished)
            {
                status = controller.Execute();
                grid   = controller.grid;
            }
            else
            {
                SolutionUtil.Execute(status.SolvedPath, grid);
            }
        }

        RenderGrid();
    }