closeDrawers.InList< short >(2, 4)>>>
>>> if (startTime > defaultDate && endTime > defaultDate) >>> { >>> whereClause.AppendLine(" AND date_time between @StartTime and @EndTime"); >>> sqlCommand.Parameters.Add("@StartTime", SqlDbType.DateTime).Value = startTime; >>> sqlCommand.Parameters.Add("@EndTime", SqlDbType.DateTime).Value = endTime; >>> }>>>
> if (closeDrawers.InList<short>(2, 4)) > { > DateTime defaultDate = Functions.DTSqlMinDate; > sqlStatement.AppendLine("salespoint = @Salespoint"); > sqlCommand.Parameters.Add("@Salespoint", SqlDbType.Char, 6).Value = closeSalespoint.PadRight(6); > if (startTime > defaultDate && endTime > defaultDate) > { > sqlStatement.AppendLine(" AND date_time between @StartTime and @EndTime"); > sqlCommand.Parameters.Add("@StartTime", SqlDbType.DateTime).Value = startTime; > sqlCommand.Parameters.Add("@EndTime", SqlDbType.DateTime).Value = endTime; > } > if (startTime > defaultDate && endTime == defaultDate) > { > sqlStatement.AppendLine(" AND date_time>= @StartTime"); > sqlCommand.Parameters.Add("@StartTime", SqlDbType.DateTime).Value = startTime; > } > if (startTime == defaultDate && endTime > defaultDate) > { > sqlStatement.AppendLine(" AND date_time <= @EndTime"); > sqlCommand.Parameters.Add("@EndTime", SqlDbType.DateTime).Value = endTime; > } > }(1) Use of 'else if' would be better
if (closeDrawers.InList<short>(2, 4)) { DateTime defaultDate = new DateTime(); // sqlStatement.AppendLine("salespoint = @Salespoint"); // sqlCommand.Parameters.Add("@Salespoint", SqlDbType.Char, 6).Value = closeSalespoint.PadRight(6); switch ( Math.Sign(startTime.CompareTo(defaultDate)) ) { case 1: // startTime > defaultDate switch ( Math.Sign(endTime.CompareTo(defaultDate) )) { case 1: // endTime > defaultDate //sqlStatement.AppendLine(" AND date_time between @StartTime and @EndTime"); //sqlCommand.Parameters.Add("@StartTime", SqlDbType.DateTime).Value = startTime; //sqlCommand.Parameters.Add("@EndTime", SqlDbType.DateTime).Value = endTime; break; case 0: //endTime == defaultDate //sqlStatement.AppendLine(" AND date_time>= @StartTime"); //sqlCommand.Parameters.Add("@StartTime", SqlDbType.DateTime).Value = startTime; break; default: // -1 endTime < defaultDate throw new ArgumentOutOfRangeException("endTime < defaultDate"); } break; case 0: // startTime == defaultDate switch (Math.Sign(endTime.CompareTo(defaultDate))) { case 1: // endTime > defaultDate //sqlStatement.AppendLine(" AND date_time <= @EndTime"); //sqlCommand.Parameters.Add("@EndTime", SqlDbType.DateTime).Value = endTime; break; case 0: //endTime == defaultDate throw new ArgumentOutOfRangeException("endTime == defaultDate"); default: // endTime < defaultDate throw new ArgumentOutOfRangeException("endTime < defaultDate"); } break; default: // starttime < defaultDate throw new ArgumentOutOfRangeException("starttime < defaultDate"); } }