private ComparisionResults compareEvrPart(String firstEvrPart, String secondEvrPart) { // Quick for easy case if (firstEvrPart == secondEvrPart) { return(ComparisionResults.IsEqual); } // Break 'em up string[] firstEvrFrags = firstEvrPart.Split(new char[] { '.' }); string[] secondEvrFrags = secondEvrPart.Split(new char[] { '.' }); int nFragsFirst = firstEvrFrags.Length; int nFragsSecond = secondEvrFrags.Length; int nFrags = nFragsFirst < nFragsSecond ? nFragsFirst : nFragsSecond; for (int i = 0; i < nFrags; i++) { ComparisionResults fragResult = compareEvrFrag(firstEvrFrags[i], secondEvrFrags[i]); if (fragResult != ComparisionResults.IsEqual) { return(fragResult); } } // All equal so far, but if somebody has extra frags, it wins if (nFragsFirst > nFragsSecond) { return(ComparisionResults.IsGreaterThan); } else if (nFragsFirst < nFragsSecond) { return(ComparisionResults.IsLessThan); } else { return(ComparisionResults.IsEqual); } }
private bool ProcessEvrComparisionFor(EvrString firstEvr, EvrString secondEvr, ComparisionResults expectedResult) { var epochComparisionResult = compareEpoches(firstEvr.Epoch, secondEvr.Epoch); if (epochComparisionResult.Equals(expectedResult)) return true; var versionComparisionResult = compareEvrPart(firstEvr.Version, secondEvr.Version); if (versionComparisionResult.Equals(expectedResult)) return true; var releaseComparisionResult = compareEvrPart(firstEvr.Release, secondEvr.Release); if (releaseComparisionResult.Equals(expectedResult)) return true; return false; }
private bool ProcessEvrComparisionFor(EvrString firstEvr, EvrString secondEvr, ComparisionResults expectedResult) { var epochComparisionResult = compareEpoches(firstEvr.Epoch, secondEvr.Epoch); if (epochComparisionResult.Equals(expectedResult)) { return(true); } var versionComparisionResult = compareEvrPart(firstEvr.Version, secondEvr.Version); if (versionComparisionResult.Equals(expectedResult)) { return(true); } var releaseComparisionResult = compareEvrPart(firstEvr.Release, secondEvr.Release); if (releaseComparisionResult.Equals(expectedResult)) { return(true); } return(false); }