private List <Models.Game.Path> StrokesSort(List <Models.Game.Path> strokes, PANORAMIC_DRAWING_DIRECTION op) { switch (op) { case PANORAMIC_DRAWING_DIRECTION.FROM_LEFT_TO_RIGHT: { strokes.Sort((strokeOne, strokeTwo) => { return(SortPredicatForPanoramicDirection(strokeOne, strokeTwo, PANORAMIC_DRAWING_DIRECTION.FROM_LEFT_TO_RIGHT)); }); return(strokes); } case PANORAMIC_DRAWING_DIRECTION.FROM_RIGHT_TO_LEFT: { strokes.Sort((strokeOne, strokeTwo) => { return(SortPredicatForPanoramicDirection(strokeOne, strokeTwo, PANORAMIC_DRAWING_DIRECTION.FROM_RIGHT_TO_LEFT)); }); return(strokes); } case PANORAMIC_DRAWING_DIRECTION.FROM_TOP_TO_BOTTOM: { strokes.Sort((strokeOne, strokeTwo) => { return(SortPredicatForPanoramicDirection(strokeOne, strokeTwo, PANORAMIC_DRAWING_DIRECTION.FROM_TOP_TO_BOTTOM)); }); return(strokes); } case PANORAMIC_DRAWING_DIRECTION.FROM_BOTTOM_TO_TOP: { strokes.Sort((strokeOne, strokeTwo) => { return(SortPredicatForPanoramicDirection(strokeOne, strokeTwo, PANORAMIC_DRAWING_DIRECTION.FROM_BOTTOM_TO_TOP)); }); return(strokes); } default: return(null); } }
private int SortPredicatForPanoramicDirection(Models.Game.Path pathOne, Models.Game.Path pathTwo, PANORAMIC_DRAWING_DIRECTION direction) { var originineOne = pathOne.Coordinates[0]; var originineTwo = pathTwo.Coordinates[0]; switch (direction) { case PANORAMIC_DRAWING_DIRECTION.FROM_LEFT_TO_RIGHT: return(originineOne.X.CompareTo(originineTwo.X)); case PANORAMIC_DRAWING_DIRECTION.FROM_RIGHT_TO_LEFT: return(originineTwo.X.CompareTo(originineOne.X)); case PANORAMIC_DRAWING_DIRECTION.FROM_TOP_TO_BOTTOM: return(originineOne.Y.CompareTo(originineTwo.Y)); case PANORAMIC_DRAWING_DIRECTION.FROM_BOTTOM_TO_TOP: return(originineTwo.Y.CompareTo(originineOne.Y)); default: return(0); } }