public (bool Ok, DateTime Value) FileWileNameWithoutExtensionLastAsDateTime() { var split = FileNameWithoutExtension.Split('.'); if (split.Length <= 1) { return(false, DateTime.MinValue); } var last = split.Last(); if (last.AreDigits()) { foreach (var format in fluent.Enum.Names <DateTimeFormat>()) { if (last.Length == format.Length) { if (DateTime.TryParseExact(last, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out var dateTime)) { return(true, dateTime); } } } } return(false, DateTime.MinValue); }
} // for testing /// <summary> /// Initializes a new instance of the <see cref="BlobItem"/> class. /// </summary> /// <param name="item">The <see cref="IListBlobItem"/> to build properties from.</param> public BlobItem([NotNull] IListBlobItem item) { Tag = item; RootFolder = item.Container.Name; Path = item.Uri.AbsolutePath; UniqueLeaseName = Guid.NewGuid().ToString(); var index = Path.LastIndexOf("/", StringComparison.InvariantCulture); FileName = Path.Substring(index + 1, Path.Length - index - 1); FileNameWithoutExtension = FileName; index = Path.LastIndexOf(".", StringComparison.InvariantCulture) + 1; if (index > 0) { FileExtension = Path.Substring(index, Path.Length - index).ToLower(CultureInfo.InvariantCulture); FileNameWithoutExtension = FileName.Replace(FileExtension, string.Empty); var extIndex = FileNameWithoutExtension.LastIndexOf(".", StringComparison.InvariantCulture); FileNameWithoutExtension = extIndex > 0 ? FileNameWithoutExtension.Substring(0, extIndex) : FileNameWithoutExtension; } Path = $"{RootFolder}/{FileName}"; }
/// <summary> /// Returns an ASP.NET Core environment-specific JSON file-name for a base file-name and ASP.NET Core environment name. /// </summary> public static FileName GetJsonFileNameForEnvironment(FileNameWithoutExtension baseFileNameWithoutExtension, string aspNetCoreEnvironmentName) { var fileNameWithoutExtension = PathUtilities.Combine(baseFileNameWithoutExtension, aspNetCoreEnvironmentName.AsFileNameSegment()).AsFileNameWithoutExtension(); var output = PathUtilities.GetFileName(fileNameWithoutExtension, FileExtensions.Json); return(output); }
public static FileName GetJsonFileNameForEnvironment(FileNameWithoutExtension baseFileNameWithoutExtension, AspNetCoreEnvironmentValue aspNetCoreEnvironment) { var aspNetCoreEnvironmentName = aspNetCoreEnvironment.ToStringStandard(); var output = AppSettings.GetJsonFileNameForEnvironment(baseFileNameWithoutExtension, aspNetCoreEnvironmentName); return(output); }
private void SetNameFromCodePattern(int nameStartIndex) { if (nameStartIndex >= FileNameWithoutExtension.Length) { return; } Name = FileNameWithoutExtension.Remove(0, nameStartIndex).Trim(); }
/// <summary> /// Initializes a new instance of the <see cref="BlobItem"/> class. /// </summary> /// <param name="item">The <see cref="CloudBlockBlob"/> to build properties from.</param> public BlobItem([NotNull] CloudBlockBlob item) { Tag = item; RootFolder = item.Container.Name; Path = item.Uri.AbsolutePath; UniqueLeaseName = Guid.NewGuid().ToString(); var index = Path.LastIndexOf("/", StringComparison.InvariantCulture); FileName = Path.Substring(index + 1, Path.Length - index - 1); FileNameWithoutExtension = FileName; index = Path.LastIndexOf(".", StringComparison.InvariantCulture) + 1; if (index > 0) { FileExtension = Path.Substring(index, Path.Length - index).ToLower(CultureInfo.InvariantCulture); FileNameWithoutExtension = FileName.Replace(FileExtension, string.Empty); var extIndex = FileNameWithoutExtension.LastIndexOf(".", StringComparison.InvariantCulture); FileNameWithoutExtension = extIndex > 0 ? FileNameWithoutExtension.Substring(0, extIndex) : FileNameWithoutExtension; } Metadata = (Dictionary <string, string>)item.Metadata; if (item.Properties != null && item.Properties.Length != -1) { FileSize = item.Properties.Length; // Set content hash if it exists. if (item.Properties.ContentMD5 != null) { ContentHash = ConvertContentHash(item.Properties.ContentMD5); } // Set LastWriteTime if it exists. if (item.Properties.LastModified != null) { LastWriteTime = item.Properties.LastModified.Value.UtcDateTime; } } // We need to get the LastWriteTime for the blob, a custom metadata property. // We are including a fallback to the built in last modified date of the blob should the custom property not exist. // Instantiating the property to DateTime.MinValue just in case something really weird has happened and the fallback property isn't set. if (item.Metadata.ContainsKey("LastWriteTimeUtc")) { var encodedLastWrite = item.Metadata["LastWriteTimeUtc"]; LastWriteTime = DateTime.Parse(HttpUtility.UrlDecode(encodedLastWrite)); } Path = $"{RootFolder}/{FileName}"; }
private bool GetFinalPatternIndexesAndCounts(out int seasonIndex, out int seasonCount, out int episodeIndex, out int episodeCount) { string fileNameWE = FileNameWithoutExtension.ToLower(); seasonIndex = 0; do { episodeIndex = -1; seasonCount = episodeCount = 0; while (seasonIndex < fileNameWE.Length && fileNameWE[seasonIndex] != 's') { seasonIndex++; } seasonIndex++; while (seasonIndex + seasonCount < fileNameWE.Length && char.IsNumber(fileNameWE[seasonIndex + seasonCount])) { seasonCount++; } if (seasonIndex + seasonCount < fileNameWE.Length && fileNameWE[seasonIndex + seasonCount] == 'e') { episodeIndex = seasonIndex + seasonCount + 1; while (episodeIndex + episodeCount < fileNameWE.Length && char.IsNumber(fileNameWE[episodeIndex + episodeCount])) { episodeCount++; } if (seasonIndex != -1 && seasonCount != 0 && episodeIndex != -1 && episodeCount != 0) { return(true); } } seasonIndex++; }while (seasonIndex < fileNameWE.Length); return(false); }
private void SetNameFromFinalPattern(int startIndex) { string fileNameWE = FileNameWithoutExtension.ToLower(); while (startIndex < fileNameWE.Length && fileNameWE[startIndex] == ' ') { startIndex++; } while (startIndex < fileNameWE.Length && fileNameWE[startIndex] == '-') { startIndex++; } while (startIndex < fileNameWE.Length && fileNameWE[startIndex] == ' ') { startIndex++; } if (startIndex >= fileNameWE.Length) { return; } Name = FileNameWithoutExtension.Remove(0, startIndex).TrimStart(' ').TrimEnd(' '); }
public PsmFromTsv(string line, char[] split, Dictionary <string, int> parsedHeader) { var spl = line.Split(split); //Required properties FileNameWithoutExtension = spl[parsedHeader[PsmTsvHeader.FileName]].Trim(); // remove file format, e.g., .raw, .mzML, .mgf // this is more robust but slower than Path.GetFileNameWithoutExtension if (FileNameWithoutExtension.Contains('.')) { foreach (var knownSpectraFileExtension in GlobalVariables.AcceptedSpectraFormats) { FileNameWithoutExtension = Path.GetFileName(FileNameWithoutExtension.Replace(knownSpectraFileExtension, string.Empty, StringComparison.InvariantCultureIgnoreCase)); } } Ms2ScanNumber = int.Parse(spl[parsedHeader[PsmTsvHeader.Ms2ScanNumber]]); // this will probably not be known in an .mgf data file if (int.TryParse(spl[parsedHeader[PsmTsvHeader.PrecursorScanNum]].Trim(), out int result)) { PrecursorScanNum = result; } else { PrecursorScanNum = 0; } PrecursorCharge = (int)double.Parse(spl[parsedHeader[PsmTsvHeader.PrecursorCharge]].Trim(), CultureInfo.InvariantCulture); PrecursorMz = double.Parse(spl[parsedHeader[PsmTsvHeader.PrecursorMz]].Trim(), CultureInfo.InvariantCulture); PrecursorMass = double.Parse(spl[parsedHeader[PsmTsvHeader.PrecursorMass]].Trim(), CultureInfo.InvariantCulture); BaseSeq = RemoveParentheses(spl[parsedHeader[PsmTsvHeader.BaseSequence]].Trim()); FullSequence = spl[parsedHeader[PsmTsvHeader.FullSequence]]; PeptideMonoMass = spl[parsedHeader[PsmTsvHeader.PeptideMonoMass]].Trim(); Score = double.Parse(spl[parsedHeader[PsmTsvHeader.Score]].Trim(), CultureInfo.InvariantCulture); DecoyContamTarget = spl[parsedHeader[PsmTsvHeader.DecoyContaminantTarget]].Trim(); QValue = double.Parse(spl[parsedHeader[PsmTsvHeader.QValue]].Trim(), CultureInfo.InvariantCulture); MatchedIons = (spl[parsedHeader[PsmTsvHeader.MatchedIonMzRatios]].StartsWith("{")) ? ReadChildScanMatchedIons(spl[parsedHeader[PsmTsvHeader.MatchedIonMzRatios]].Trim(), BaseSeq).First().Value : ReadFragmentIonsFromString(spl[parsedHeader[PsmTsvHeader.MatchedIonMzRatios]].Trim(), BaseSeq); //For general psms TotalIonCurrent = (parsedHeader[PsmTsvHeader.TotalIonCurrent] < 0) ? null : (double?)double.Parse(spl[parsedHeader[PsmTsvHeader.TotalIonCurrent]].Trim(), CultureInfo.InvariantCulture); DeltaScore = (parsedHeader[PsmTsvHeader.DeltaScore] < 0) ? null : (double?)double.Parse(spl[parsedHeader[PsmTsvHeader.DeltaScore]].Trim(), CultureInfo.InvariantCulture); Notch = (parsedHeader[PsmTsvHeader.Notch] < 0) ? null : spl[parsedHeader[PsmTsvHeader.Notch]].Trim(); EssentialSeq = (parsedHeader[PsmTsvHeader.EssentialSequence] < 0) ? null : spl[parsedHeader[PsmTsvHeader.EssentialSequence]].Trim(); MissedCleavage = (parsedHeader[PsmTsvHeader.MissedCleavages] < 0) ? null : spl[parsedHeader[PsmTsvHeader.MissedCleavages]].Trim(); MassDiffDa = (parsedHeader[PsmTsvHeader.MassDiffDa] < 0) ? null : spl[parsedHeader[PsmTsvHeader.MassDiffDa]].Trim(); MassDiffPpm = (parsedHeader[PsmTsvHeader.MassDiffPpm] < 0) ? null : spl[parsedHeader[PsmTsvHeader.MassDiffPpm]].Trim(); ProteinAccession = (parsedHeader[PsmTsvHeader.ProteinAccession] < 0) ? null : spl[parsedHeader[PsmTsvHeader.ProteinAccession]].Trim(); ProteinName = (parsedHeader[PsmTsvHeader.ProteinName] < 0) ? null : spl[parsedHeader[PsmTsvHeader.ProteinName]].Trim(); GeneName = (parsedHeader[PsmTsvHeader.GeneName] < 0) ? null : spl[parsedHeader[PsmTsvHeader.GeneName]].Trim(); OrganismName = (parsedHeader[PsmTsvHeader.OrganismName] < 0) ? null : spl[parsedHeader[PsmTsvHeader.OrganismName]].Trim(); IntersectingSequenceVariations = (parsedHeader[PsmTsvHeader.IntersectingSequenceVariations] < 0) ? null : spl[parsedHeader[PsmTsvHeader.IntersectingSequenceVariations]].Trim(); IdentifiedSequenceVariations = (parsedHeader[PsmTsvHeader.IdentifiedSequenceVariations] < 0) ? null : spl[parsedHeader[PsmTsvHeader.IdentifiedSequenceVariations]].Trim(); SpliceSites = (parsedHeader[PsmTsvHeader.SpliceSites] < 0) ? null : spl[parsedHeader[PsmTsvHeader.SpliceSites]].Trim(); PeptideDesicription = (parsedHeader[PsmTsvHeader.PeptideDesicription] < 0) ? null : spl[parsedHeader[PsmTsvHeader.PeptideDesicription]].Trim(); StartAndEndResiduesInProtein = (parsedHeader[PsmTsvHeader.StartAndEndResiduesInProtein] < 0) ? null : spl[parsedHeader[PsmTsvHeader.StartAndEndResiduesInProtein]].Trim(); PreviousAminoAcid = (parsedHeader[PsmTsvHeader.PreviousAminoAcid] < 0) ? null : spl[parsedHeader[PsmTsvHeader.PreviousAminoAcid]].Trim(); NextAminoAcid = (parsedHeader[PsmTsvHeader.NextAminoAcid] < 0) ? null : spl[parsedHeader[PsmTsvHeader.NextAminoAcid]].Trim(); QValueNotch = (parsedHeader[PsmTsvHeader.QValueNotch] < 0) ? null : (double?)double.Parse(spl[parsedHeader[PsmTsvHeader.QValueNotch]].Trim(), CultureInfo.InvariantCulture); RetentionTime = (parsedHeader[PsmTsvHeader.Ms2ScanRetentionTime] < 0) ? null : (double?)double.Parse(spl[parsedHeader[PsmTsvHeader.Ms2ScanRetentionTime]].Trim(), CultureInfo.InvariantCulture); PEP = double.Parse(spl[parsedHeader[PsmTsvHeader.PEP]].Trim(), CultureInfo.InvariantCulture); PEP_QValue = double.Parse(spl[parsedHeader[PsmTsvHeader.PEP_QValue]].Trim(), CultureInfo.InvariantCulture); VariantCrossingIons = findVariantCrossingIons(); //For crosslinks CrossType = (parsedHeader[PsmTsvHeader.CrossTypeLabel] < 0) ? null : spl[parsedHeader[PsmTsvHeader.CrossTypeLabel]].Trim(); LinkResidues = (parsedHeader[PsmTsvHeader.LinkResiduesLabel] < 0) ? null : spl[parsedHeader[PsmTsvHeader.LinkResiduesLabel]].Trim(); ProteinLinkSite = (parsedHeader[PsmTsvHeader.ProteinLinkSiteLabel] < 0) ? null : (spl[parsedHeader[PsmTsvHeader.ProteinLinkSiteLabel]] == "" ? null : (int?)int.Parse(spl[parsedHeader[PsmTsvHeader.ProteinLinkSiteLabel]].Trim())); Rank = (parsedHeader[PsmTsvHeader.RankLabel] < 0) ? null : (int?)int.Parse(spl[parsedHeader[PsmTsvHeader.RankLabel]].Trim()); BetaPeptideProteinAccession = (parsedHeader[PsmTsvHeader.BetaPeptideProteinAccessionLabel] < 0) ? null : spl[parsedHeader[PsmTsvHeader.BetaPeptideProteinAccessionLabel]].Trim(); BetaPeptideProteinLinkSite = (parsedHeader[PsmTsvHeader.BetaPeptideProteinLinkSiteLabel] < 0) ? null : (spl[parsedHeader[PsmTsvHeader.BetaPeptideProteinLinkSiteLabel]] == "" ? null : (int?)int.Parse(spl[parsedHeader[PsmTsvHeader.BetaPeptideProteinLinkSiteLabel]].Trim())); BetaPeptideBaseSequence = (parsedHeader[PsmTsvHeader.BetaPeptideBaseSequenceLabel] < 0) ? null : spl[parsedHeader[PsmTsvHeader.BetaPeptideBaseSequenceLabel]].Trim(); BetaPeptideFullSequence = (parsedHeader[PsmTsvHeader.BetaPeptideFullSequenceLabel] < 0) ? null : spl[parsedHeader[PsmTsvHeader.BetaPeptideFullSequenceLabel]].Trim(); BetaPeptideTheoreticalMass = (parsedHeader[PsmTsvHeader.BetaPeptideTheoreticalMassLabel] < 0) ? null : spl[parsedHeader[PsmTsvHeader.BetaPeptideTheoreticalMassLabel]].Trim(); BetaPeptideScore = (parsedHeader[PsmTsvHeader.BetaPeptideScoreLabel] < 0) ? null : (double?)double.Parse(spl[parsedHeader[PsmTsvHeader.BetaPeptideScoreLabel]].Trim(), CultureInfo.InvariantCulture); BetaPeptideRank = (parsedHeader[PsmTsvHeader.BetaPeptideRankLabel] < 0) ? null : (int?)int.Parse(spl[parsedHeader[PsmTsvHeader.BetaPeptideRankLabel]].Trim()); BetaPeptideMatchedIons = (parsedHeader[PsmTsvHeader.BetaPeptideMatchedIonsLabel] < 0) ? null : ((spl[parsedHeader[PsmTsvHeader.BetaPeptideMatchedIonsLabel]].StartsWith("{")) ? ReadChildScanMatchedIons(spl[parsedHeader[PsmTsvHeader.BetaPeptideMatchedIonsLabel]].Trim(), BetaPeptideBaseSequence).First().Value : ReadFragmentIonsFromString(spl[parsedHeader[PsmTsvHeader.BetaPeptideMatchedIonsLabel]].Trim(), BetaPeptideBaseSequence)); XLTotalScore = (parsedHeader[PsmTsvHeader.XLTotalScoreLabel] < 0) ? null : (double?)double.Parse(spl[parsedHeader[PsmTsvHeader.XLTotalScoreLabel]].Trim(), CultureInfo.InvariantCulture); ParentIons = (parsedHeader[PsmTsvHeader.ParentIonsLabel] < 0) ? null : spl[parsedHeader[PsmTsvHeader.ParentIonsLabel]].Trim(); // child scan matched ions (only for crosslinks for now, but in the future this will change) ChildScanMatchedIons = (!spl[parsedHeader[PsmTsvHeader.MatchedIonMzRatios]].StartsWith("{")) ? null : ReadChildScanMatchedIons(spl[parsedHeader[PsmTsvHeader.MatchedIonMzRatios]].Trim(), BaseSeq); if (ChildScanMatchedIons != null && ChildScanMatchedIons.ContainsKey(Ms2ScanNumber)) { ChildScanMatchedIons.Remove(Ms2ScanNumber); } // beta peptide child scan matched ions (for crosslinks) BetaPeptideChildScanMatchedIons = (parsedHeader[PsmTsvHeader.BetaPeptideMatchedIonsLabel] < 0) ? null : ((!spl[parsedHeader[PsmTsvHeader.BetaPeptideMatchedIonsLabel]].StartsWith("{")) ? null : ReadChildScanMatchedIons(spl[parsedHeader[PsmTsvHeader.BetaPeptideMatchedIonsLabel]].Trim(), BetaPeptideBaseSequence)); if (BetaPeptideChildScanMatchedIons != null && BetaPeptideChildScanMatchedIons.ContainsKey(Ms2ScanNumber)) { BetaPeptideChildScanMatchedIons.Remove(Ms2ScanNumber); } //For Glyco GlycanMass = (parsedHeader[PsmTsvHeader_Glyco.GlycanMass] < 0) ? null : (double?)double.Parse(spl[parsedHeader[PsmTsvHeader_Glyco.GlycanMass]], CultureInfo.InvariantCulture); GlycanComposition = (parsedHeader[PsmTsvHeader_Glyco.GlycanComposition] < 0) ? null : spl[parsedHeader[PsmTsvHeader_Glyco.GlycanComposition]]; GlycanStructure = (parsedHeader[PsmTsvHeader_Glyco.GlycanStructure] < 0) ? null : spl[parsedHeader[PsmTsvHeader_Glyco.GlycanStructure]]; var localizationLevel = (parsedHeader[PsmTsvHeader_Glyco.GlycanLocalizationLevel] < 0) ? null : spl[parsedHeader[PsmTsvHeader_Glyco.GlycanLocalizationLevel]]; if (localizationLevel != null) { GlycanLocalizationLevel = (LocalizationLevel)Enum.Parse(typeof(LocalizationLevel), localizationLevel); } LocalizedGlycan = (parsedHeader[PsmTsvHeader_Glyco.LocalizedGlycan] < 0) ? null : spl[parsedHeader[PsmTsvHeader_Glyco.LocalizedGlycan]]; }
/// <summary> /// Log a message to the log file. /// </summary> /// <param name="message">content to log</param> /// <param name="category">the priority of the message</param> public override void WriteLine(string message, string category) { if (String.IsNullOrEmpty(message)) { return; } if (RollingLogs) { // Create or append to log file. string shortDate = DateTime.Now.ToString("yyyyMMdd"); FileNameWithoutExtension = FileNameWithoutExtension.Substring(0, FileNameWithoutExtension.LastIndexOf('_')) + "_" + shortDate; } string fullPath = Path.Combine(logLocation, FileNameWithoutExtension, LogExtension); string dateTime = DateTime.Now.ToString("MM-dd-yyyy h:mm:ss tt"); //Get calling method name StackTrace stackTrace = new StackTrace(); string methodName = ""; int methodNum = 1; MethodBase mb = stackTrace.GetFrame(methodNum).GetMethod(); string className = ""; while (mb.Name.ToLowerInvariant() == "writeline" || mb.Name.ToLowerInvariant() == "handleexception") { methodNum++; mb = stackTrace.GetFrame(methodNum).GetMethod(); string[] fullName = mb.ReflectedType.FullName.Split('.'); className = fullName[fullName.Length - 1]; } if (mb != null) { if (!String.IsNullOrEmpty(className)) { methodName = className + ">"; } methodName += mb.Name; } // Create or append to log file. fullPath = Path.Combine(LogLocation, FileNameWithoutExtension + LogExtension); //remove extra line breaks if (message.EndsWith(Environment.NewLine)) { message = message.Substring(0, message.LastIndexOf(Environment.NewLine)); } for (int i = 0; i < 10; i++) { try { File.AppendAllText(fullPath, String.Format("{0} [{1}] [{2}] [{3}] {4}", dateTime, category.ToUpperInvariant(), Environment.MachineName, methodName, message + Environment.NewLine)); break; } catch (System.IO.IOException) { System.Threading.Thread.Sleep(100); } } }
public override int GetHashCode() { return(FileNameWithoutExtension.GetHashCode()); }
/// <summary> /// The default project-file file-name-without-extension is the same as the project-name. /// </summary> public static FileNameWithoutExtension ProjectFileNameWithoutExtensionFromProjectName(ProjectName projectName) { var projectFileNameWithoutExtension = new FileNameWithoutExtension(projectName.Value); return(projectFileNameWithoutExtension); }
/// <summary> /// The default project-name is the same as the project-file file-name-without-extension. /// </summary> public static ProjectName ProjectNameFromProjectFileNameWithoutExtension(FileNameWithoutExtension projectFileNameWithoutExtension) { var projectName = new ProjectName(projectFileNameWithoutExtension.Value); return(projectName); }
public FileName(FileNameWithoutExtension nameWithoutExtension, FileExtension extension) : this(nameWithoutExtension.ToString() + extension.ToString()) { }
/// <summary> /// The default solution-file file-name-without-extension is the same as the solution-name. /// </summary> public static FileNameWithoutExtension SolutionFileNameWithoutExtensionFromSolutionName(SolutionName solutionName) { var solutionFileNameWithoutExtension = new FileNameWithoutExtension(solutionName.Value); return(solutionFileNameWithoutExtension); }
public static FileNameWithoutExtension AsFileNameWithoutExtension(this string value) { var fileNameWithoutExtension = new FileNameWithoutExtension(value); return(fileNameWithoutExtension); }
public static ProjectFileName GetCSharpProjectFileName(FileNameWithoutExtension projectfileNameWithoutExtension) { var projectFileName = PathUtilities.GetFileName(projectfileNameWithoutExtension, CSharpProjectFileExtension.Instance).AsProjectFileName(); return(projectFileName); }
/// <summary> /// The default solution-name is the same as the solution file-name-without-extension /// </summary> public static SolutionName SolutionNameFromSolutionFileNameWithoutExtension(FileNameWithoutExtension solutionFileNameWithoutExtension) { var solutionName = new SolutionName(solutionFileNameWithoutExtension.Value); return(solutionName); }
public static SolutionFileName GetSolutionFileName(FileNameWithoutExtension solutionFileNameWithoutExtension) { var solutionFileName = PathUtilities.GetFileName(solutionFileNameWithoutExtension, FileExtensions.Sln).AsSolutionFileName(); return(solutionFileName); }
/// <summary> /// The default package ID is the same as the project file-name-without-extensions. /// </summary> public static PackageID GetDefaultPackageID(FileNameWithoutExtension projectFileNameWithoutExtension) { var packageID = new PackageID(projectFileNameWithoutExtension.Value); return(packageID); }