/// <summary> /// /// </summary> /// <param name="date"></param> /// <param name="startWindow"></param> /// <param name="endWindow"></param> /// <returns></returns> public static bool IsDateInWindow(DateTime date, DayMonthData startWindow, DayMonthData endWindow) { int currYear = date.Year; DateTime _startWindow = new DateTime(currYear, startWindow.Month, startWindow.Day); DateTime _endWindow = new DateTime(currYear, endWindow.Month, endWindow.Day); if (_startWindow <= _endWindow) { //Easiest case return(date >= _startWindow && date <= _endWindow); } else { //Start and end window are in different years if (date > _endWindow) { return(false); } else if (date <= _endWindow && date >= new DateTime(currYear, 1, 1)) { return(true); } else if (date < _startWindow) { return(false); } else if (date >= _startWindow && date <= new DateTime(currYear, 12, 31)) { return(true); } } return(false); }
internal bool IsDateInWindow(BrowserDate date, DayMonthData startWindow, DayMonthData endWindow) { try { int currYear = date.Year; if (doesDateOverlapYear(startWindow, endWindow) == false) { var _startWindow = new BrowserDate(currYear, startWindow.Month, startWindow.Day); var _endWindow = new BrowserDate(currYear, endWindow.Month, endWindow.Day); return(date.IsBetween(_startWindow, _endWindow)); } else { var _startWindow = new BrowserDate(currYear, startWindow.Month, startWindow.Day); if (_startWindow.DateInt > date.DateInt) { _startWindow = new BrowserDate(currYear - 1, startWindow.Month, startWindow.Day); var _endWindow = new BrowserDate(currYear, endWindow.Month, endWindow.Day); return(date.IsBetween(_startWindow, _endWindow)); } else { var _endWindow = new BrowserDate(currYear + 1, endWindow.Month, endWindow.Day); return(date.IsBetween(_startWindow, _endWindow)); } } return(false); } catch (Exception ex) { throw ErrorLogger.CreateException(ex); } // return false; }
private bool doesDateOverlapYear(DayMonthData startWindow, DayMonthData endWindow) { if (startWindow.Month < endWindow.Month) { return(false); } else if (startWindow.Month == endWindow.Month) { if (startWindow.Day <= endWindow.Day) { return(false); } } return(true); }
static public bool TryUpdateParm(object source, PropertyInfo property, string stringvalue) { try { var type = property.PropertyType; if (type == typeof(double) || type == typeof(double?) || type == typeof(Double)) { if (type == typeof(double?)) { if (string.IsNullOrEmpty(stringvalue)) { property.SetValue(source, (double?)null); return(true); } else { double value; if (double.TryParse(stringvalue, out value)) { property.SetValue(source, value); return(true); } } } else { double value; if (double.TryParse(stringvalue, out value)) { property.SetValue(source, value); return(true); } } } else if (type == typeof(float) || type == typeof(float?)) { if (type == typeof(float?)) { if (string.IsNullOrEmpty(stringvalue)) { property.SetValue(source, (float?)null); return(true); } else { float value; if (float.TryParse(stringvalue, out value)) { property.SetValue(source, value); return(true); } } } else { float value; if (float.TryParse(stringvalue, out value)) { property.SetValue(source, value); return(true); } } } else if (type == typeof(int) || type == typeof(int?)) { if (type == typeof(int?)) { if (string.IsNullOrEmpty(stringvalue)) { property.SetValue(source, (int?)null); return(true); } else { int value; if (int.TryParse(stringvalue, out value)) { property.SetValue(source, value); return(true); } } } else { int value; if (int.TryParse(stringvalue, out value)) { property.SetValue(source, value); return(true); } } } else if (type == typeof(bool)) { if (stringvalue.ToLower() == "true") { property.SetValue(source, true); } else { property.SetValue(source, false); } return(true); } else if (type == typeof(List <double>)) { if (!string.IsNullOrEmpty(stringvalue)) { var list = stringvalue.Split(',').ToList().Select(x => Double.Parse(x)).ToList(); property.SetValue(source, list); return(true); } } else if (type == typeof(TimeSeriesData)) { var results = new TimeSeriesData(stringvalue); property.SetValue(source, results); return(true); } else if (type == typeof(ProfileData)) { var results = new ProfileData(stringvalue); property.SetValue(source, results); return(true); } else if (type == typeof(Sequence)) { var results = new Sequence(stringvalue); property.SetValue(source, results); return(true); } else if (type == typeof(IrrigationFormat)) { int value; if (int.TryParse(stringvalue, out value)) { property.SetValue(source, (IrrigationFormat)value); return(true); } } else if (type == typeof(TargetAmountOptions)) { int value; if (int.TryParse(stringvalue, out value)) { property.SetValue(source, (TargetAmountOptions)value); return(true); } } else if (type == typeof(DissolvedNinLeachingType)) { int value; if (int.TryParse(stringvalue, out value)) { property.SetValue(source, (DissolvedNinLeachingType)value); return(true); } } else if (type == typeof(DissolvedNinRunoffType)) { int value; if (int.TryParse(stringvalue, out value)) { property.SetValue(source, (DissolvedNinRunoffType)value); return(true); } } else if (type == typeof(ParticulateNinRunoffType)) { int value; if (int.TryParse(stringvalue, out value)) { property.SetValue(source, (ParticulateNinRunoffType)value); return(true); } } else if (type == typeof(DayMonthData)) { var results = new DayMonthData(stringvalue); property.SetValue(source, results); return(true); } else if (type == typeof(string)) { property.SetValue(source, stringvalue); return(true); } return(false); } catch (Exception ex) { throw ErrorLogger.CreateException(ex); } }
public bool TryUpdateParm(object source, PropertyInfo property, string stringvalue) { try{ var type = property.PropertyType; if (type == typeof(double) || type == typeof(double?)) { if (type == typeof(double?)) { if (string.IsNullOrEmpty(stringvalue)) { property.SetValue(source, (double?)null); return(true); } else { double value; if (double.TryParse(stringvalue, out value)) { property.SetValue(source, value); return(true); } } } else { double value; if (double.TryParse(stringvalue, out value)) { property.SetValue(source, value); return(true); } } } else if (type == typeof(float) || type == typeof(float?)) { if (type == typeof(float?)) { if (string.IsNullOrEmpty(stringvalue)) { property.SetValue(source, (float?)null); return(true); } else { float value; if (float.TryParse(stringvalue, out value)) { property.SetValue(source, value); return(true); } } } else { float value; if (float.TryParse(stringvalue, out value)) { property.SetValue(source, value); return(true); } } } else if (type == typeof(int) || type == typeof(int?)) { if (type == typeof(int?)) { if (string.IsNullOrEmpty(stringvalue)) { property.SetValue(source, (int?)null); return(true); } else { int value; if (int.TryParse(stringvalue, out value)) { property.SetValue(source, value); return(true); } } } else { int value; if (int.TryParse(stringvalue, out value)) { property.SetValue(source, value); return(true); } } } else if (type == typeof(List <double>)) { var list = stringvalue.Split(',').ToList().Select(x => Double.Parse(x)).ToList(); property.SetValue(source, list); return(true); } else if (type == typeof(List <XYXData>)) { var results = new List <XYXData>(); var list = stringvalue.Split(',').ToList(); foreach (var item in list) { var values = item.Split('|').ToList(); results.Add(new XYXData(values)); } property.SetValue(source, results); return(true); } else if (type == typeof(ProfileData)) { var results = new ProfileData(stringvalue); property.SetValue(source, results); return(true); } else if (type == typeof(TimeSeriesData)) { var results = new TimeSeriesData(stringvalue); property.SetValue(source, results); return(true); } else if (type == typeof(Sequence)) { var results = new Sequence(stringvalue); property.SetValue(source, results); return(true); } else if (type == typeof(bool)) { var value = stringvalue.ToLower() == "true"?true:false; property.SetValue(source, value); return(true); } else if (type == typeof(DayMonthData)) { var results = new DayMonthData(stringvalue); property.SetValue(source, results); return(true); } else if (type == typeof(EPestApplicationPosition)) { int value; if (int.TryParse(stringvalue, out value)) { property.SetValue(source, (EPestApplicationPosition)value); return(true); } } else if (type == typeof(ParameterType) || type == typeof(ParameterType?)) { int value; if (int.TryParse(stringvalue, out value)) { property.SetValue(source, (ParameterType)value); return(true); } } else if (type == typeof(IrrigationFormat) || type == typeof(IrrigationFormat?)) { int value; if (int.TryParse(stringvalue, out value)) { property.SetValue(source, (IrrigationFormat)value); return(true); } } else if (type == typeof(TargetAmountOptions) || type == typeof(TargetAmountOptions?)) { int value; if (int.TryParse(stringvalue, out value)) { property.SetValue(source, (TargetAmountOptions)value); return(true); } } else if (type == typeof(IrrigationEvaporationOptions) || type == typeof(IrrigationEvaporationOptions?)) { int value; if (int.TryParse(stringvalue, out value)) { property.SetValue(source, (IrrigationEvaporationOptions)value); return(true); } } else if (type == typeof(IrrigationRunoffOptions) || type == typeof(IrrigationRunoffOptions?)) { int value; if (int.TryParse(stringvalue, out value)) { property.SetValue(source, (IrrigationRunoffOptions)value); return(true); } } else if (type == typeof(DissolvedNinLeachingType) || type == typeof(DissolvedNinLeachingType?)) { int value; if (int.TryParse(stringvalue, out value)) { property.SetValue(source, (DissolvedNinLeachingType)value); return(true); } } else if (type == typeof(DissolvedNinRunoffType) || type == typeof(DissolvedNinRunoffType?)) { int value; if (int.TryParse(stringvalue, out value)) { property.SetValue(source, (DissolvedNinRunoffType)value); return(true); } } else if (type == typeof(ParticulateNinRunoffType) || type == typeof(ParticulateNinRunoffType?)) { int value; if (int.TryParse(stringvalue, out value)) { property.SetValue(source, (ParticulateNinRunoffType)value); return(true); } } else if (type == typeof(string)) { property.SetValue(source, stringvalue); return(true); } } catch (Exception ex) { throw new Exception($"Could not update source:{source} with {stringvalue} for {property}", ex); } return(false); }