private List <RepositoryDetailsModel> ExtractData(Stream zipStream) { var guid = Guid.NewGuid(); var pathToExtract = $"{Directory.GetCurrentDirectory()}/downloads/{guid}"; using (var zip = new ZipArchive(zipStream, ZipArchiveMode.Read)) { zip.ExtractToDirectory(pathToExtract); } DirectoryInfo directoryInfo = new DirectoryInfo(pathToExtract); var groupedFiles = directoryInfo.GetFiles("*", SearchOption.AllDirectories).GroupBy(p => p.Extension); var detailsResult = new List <RepositoryDetailsModel>(); foreach (var fileGroup in groupedFiles) { var detail = new RepositoryDetailsModel() { FileExtension = fileGroup.First().Extension, TotalBytes = fileGroup.Sum(p => p.Length), TotalLines = fileGroup.Sum(p => File.ReadAllLines(p.FullName).Length), Files = fileGroup.Select(p => p.Name).ToList() }; detailsResult.Add(detail); } directoryInfo.Delete(true); return(detailsResult); }
//private void OnGateCommand(object obj) //{ // ToolRunModel.GateType= //} private ObservableCollection <RepositoryDetailsModel> ParseRecentRepos(GatingResult[] results) { ObservableCollection <RepositoryDetailsModel> repositoryDetailsModels = new ObservableCollection <RepositoryDetailsModel>(); for (int i = 0; i < results.Length; i++) { var result = new RepositoryDetailsModel(); if (results[i].Reository.LastIndexOf('\\') > 0) { result.Repository = results[i].Reository.Substring(results[i].Reository.LastIndexOf('\\') + 1); } else { result.Repository = results[i].Reository; } result.Branch = results[i].Branch; result.DateTime = results[i].DateTime; result.Tool = results[i].Tool.ToString(); result.Errors = results[i].NoOfError.ToString(); result.Colour = results[i].Result ? "ForestGreen" : "Crimson"; repositoryDetailsModels.Add(result); } //repositoryDetailsModels.Add(new RepositoryDetailsModel //{ // Branch = "master", // Colour = "Crimson", // DateTime = DateTime.Now.ToString(), // Errors = "10", // Repository = "dummyRepo.git", // Tool = Tools.Resharper.ToString() //}); //repositoryDetailsModels.Add(new RepositoryDetailsModel //{ // Branch = "notMaster", // Colour = "ForestGreen", // DateTime = DateTime.Now.ToString(), // Errors = "6", // Repository = "abc/dummyRepoNew.git", // Tool = Tools.Resharper.ToString() //}); return(repositoryDetailsModels); }