Пример #1
0
        public static ChannelSearchResult FindByNameAndVariable(string name, Variable v)
        {
            ChannelSearchResult result;

            //TODO: try to use delegates in future version to eliminate duplicate code

            ChannelList channels = ChannelManager.GetListByStationNameAndVariable(name, v.Id);
            if (channels != null)
            {
                result = new ChannelSearchResult(channels);
                return result;
            }

            MessageWriter writer = new MessageWriter();
            writer.VariableName = v.Name;
            StationList stations = StationManager.GetListByName(name);

            if (stations != null)
            {
                result = new ChannelSearchResult(stations);
                writer.StationName = stations[0].Name;
                result.ErrorMessage = writer.WriteErrorMessage(MessageType.NoStationVariable);
                return result;
            }

            result = new ChannelSearchResult();
            result.ErrorMessage = writer.WriteErrorMessage(MessageType.NoStation);
            return result;
        }
Пример #2
0
 public Channel(int id, Station st, Variable var, TimeInterval availableData)
 {
     _id = id;
     _station = st;
     _variable = var;
     _availableData = availableData;
     _stId = _station.Id;
     _varId = _variable.Id;
 }
Пример #3
0
        public static ChannelSearchResult FindByStationIdAndVariable(int stId, Variable v)
        {
            ChannelSearchResult result;
            bool foundChannel = false;
            //bool foundStation = false;

            ChannelList channels = ChannelManager.GetListByStationAndVariable(stId, v.Id);
            if (channels.Count > 0)
            {
                result = new ChannelSearchResult(channels);
                foundChannel = true;
                return result;
            }

            //if the requested variable is daily precipitation - try to find
            //hourly precipitation instead
            if (foundChannel == false && v.VarEnum == VariableEnum.Precip)
            {
                //"1" means "hourly precipitation"
                channels = ChannelManager.GetListByStationAndVariable(stId, 1);
                if (channels.Count > 0)
                {
                    foundChannel = true;
                    foreach (Channel ch in channels)
                    {
                        ch.Variable = VariableManager.GetItemByEnum(VariableEnum.Precip);
                    }
                    result = new ChannelSearchResult(channels);
                    return result;
                }
            }

            //channel not found --> search if a a station exists
            MessageWriter writer = new MessageWriter();
            writer.VariableName = v.Name;
            Station station = StationManager.GetItemById(stId, false);

            if (station != null)
            {
                result = new ChannelSearchResult();
                result.Stations.Add(station);
                writer.StationName = station.Name;
                result.ErrorMessage = writer.WriteErrorMessage(MessageType.NoStationVariable);
                return result;
            }

            result = new ChannelSearchResult();
            result.ErrorMessage = writer.WriteErrorMessage(MessageType.NoStation);
            return result;
        }
Пример #4
0
        public bool Equals(Variable v)
        {
            // If parameter is null return false:
            if ( (object) v == null )
            {
                return false;
            }

            // Return true if the fields match:
            return ( Id == v.Id );
        }
Пример #5
0
 /// <summary>
 /// finds out if the station measures a specified variable
 /// </summary>
 public bool HasVariable(Variable var)
 {
     if (_variables != null)
     {
         return (Variables.Contains(var));
     }
     else
     {
         return false;
     }
 }
Пример #6
0
 public static Variable ChangeCulture(Variable v, CultureInfo cult)
 {
     return new Variable(selectRow(CultureHelper.CultureToShortString(cult), "var_id=" + v.Id));
 }
Пример #7
0
 private void ValidateVariable()
 {
     string varUrl;
     if ( _queryString["var"] != null )
     {
         varUrl = _queryString["var"];
         Variable var = VariableManager.GetItemByUrl(varUrl);
         if ( var.IsValid )
         {
             _variable = var;
             _isValidVariable = true;
         }
         else
         {
             _errorMessage = _writer.WriteErrorMessage(MessageType.NoVariable);
         }
     }
     else
     {
         _variable = VariableManager.GetItemByEnum(VariableEnum.Stage); //default variable
     }
 }
Пример #8
0
 //this station is displayed on initial pages
 //with no station specified
 private string getDefaultStationUrl(Variable v)
 {
     VariableEnum varEnum = v.VarEnum;
     string stUrl;
     switch ( varEnum )
     {
         case VariableEnum.Snow:
             stUrl = "lysa_hora";
             break;
         case VariableEnum.Stage:
             stUrl = "morava/straznice";
             break;
         case VariableEnum.Discharge:
             stUrl = "morava/straznice";
             break;
         case VariableEnum.Precip:
             stUrl = "churanov";
             break;
         default:
             stUrl = "primda";
             break;
     }
     return stUrl;
 }
Пример #9
0
 // function to validate variable id and set the value of
 //_VarEnum
 private void ValidateVariable(string str)
 {
     if ( _IsValid )
     {
         Variable var = VariableManager.GetItemByShortName(str);
         if ( var.IsValid )
         {
             _var = var;
         }
         else
         {
             _IsValid = false;
             _message = MessageType.NoVariable; // "Bad variable specified!";
         }
     }
 }
Пример #10
0
        private void SetupAxis(GraphPane myPane, Variable var, DateTime minDate, DateTime maxDate)
        {
            //setup font for axis name and tick marks text
            int scaleFontSize = 16;
            int titleFontSize = 18;

            // X axis
            ZedGraph.Axis myXAxis = myPane.XAxis;
            myXAxis.Type = AxisType.Date;
            myXAxis.Scale.Min = XDate.DateTimeToXLDate(minDate);
            myXAxis.Scale.Max = XDate.DateTimeToXLDate(maxDate);
            myXAxis.Scale.FontSpec.Size = scaleFontSize;
            myPane.XAxis.Title.FontSpec.Size = titleFontSize;

            // Y axis
            ZedGraph.Axis myYAxis = myPane.YAxis;
            if (var.VarEnum != VariableEnum.Temperature)
            {
                myYAxis.Scale.Min = 0;
            }

            myYAxis.Scale.FontSpec.Size = scaleFontSize;
            myYAxis.Title.FontSpec.Size = titleFontSize;

            //special Y axis for temperature

            // special Y axis for discharge
            if (var.VarEnum == VariableEnum.Discharge)
            {
                char exp3 = (char)179;
                myYAxis.Title.Text = string.Format("{0} (m{1}/s)", var.Name, exp3);
            }
            else
            {
                myYAxis.Title.Text = var.Name + " (" + var.Units + ")";
            }

            // Y2 axis - setup for cumulative precipitation
            if ( var.VarEnum == VariableEnum.Precip || var.VarEnum == VariableEnum.PrecipHour )
            {
                ZedGraph.Axis myY2Axis = myPane.Y2Axis;
                myY2Axis.Scale.Min = 0;
                myY2Axis.Scale.FontSpec.Size = scaleFontSize;

                myY2Axis.Title.Text = Resources.precip_sum_axis;
                myY2Axis.Title.FontSpec.Size = titleFontSize;
                myY2Axis.IsVisible = true;
            }
        }
Пример #11
0
 private void DrawTitle(GraphPane myPane, Variable var, Station st, DateTime minDate, DateTime maxDate)
 {
     string title;
     string stName;
     if ( var.VarEnum == VariableEnum.Discharge || var.VarEnum == VariableEnum.Stage )
     {
         stName = string.Format("{0} ({1})", st.Name, st.River.Name);
     }
     else
     {
         stName = st.Name;
     }
     title = String.Format("{0} - {1} {2} - {3}",
         var.Name, stName, minDate.ToShortDateString(),
         maxDate.ToShortDateString());
     myPane.Title.Text = title;
     myPane.Title.FontSpec.Size = 18;
     myPane.Title.FontSpec.IsBold = false;
 }