public static bool TryParse(string slnFileContent, SourceItemInfo slnFileInfo, out CsSolutionFile csSolutionFileInfo) { try { csSolutionFileInfo = CsSolutionFile.Parse(slnFileContent, slnFileInfo); return(true); } catch { csSolutionFileInfo = null; return(false); } }
public static CsSolutionFile Parse(string slnFileContent, SourceItemInfo slnFileInfo) { if (string.IsNullOrEmpty(slnFileContent)) { throw new ArgumentNullException(nameof(slnFileContent)); } if (slnFileInfo == null) { throw new ArgumentNullException(nameof(slnFileInfo)); } if (!slnFileInfo.IsValid()) { throw new ArgumentException(nameof(slnFileInfo)); } var solutionGuid = CsParsingHelper.ParseCsSolutionGuid(slnFileContent); return(new CsSolutionFile { Guid = solutionGuid, CsProjectFileInfos = CsParsingHelper.ParseCsProjectFileInfos(slnFileContent) .Where(csProjInfo => !string.IsNullOrEmpty(Path.GetExtension(csProjInfo.RelativeToSolutionPath))) .Select(csProjInfo => { csProjInfo.FullPath = PathHelper.CombinePaths(slnFileInfo.FolderPath, csProjInfo.RelativeToSolutionPath); csProjInfo.FolderPath = PathHelper.GetFolderPath(csProjInfo.FullPath); var extension = Path.GetExtension(csProjInfo.RelativeToSolutionPath); csProjInfo.Extension = extension.Substring(1); csProjInfo.Name = $"{csProjInfo.Name}.{csProjInfo.Extension}"; csProjInfo.Id = Constants.UndefinedId; csProjInfo.SolutionGuid = solutionGuid; csProjInfo.Size = Constants.UnknownSize; csProjInfo.Type = SourceItemTypes.File; csProjInfo.Branch = slnFileInfo.Branch; return csProjInfo; }), SolutionFileInfo = slnFileInfo }); }