Beispiel #1
0
        private static void AddOutputStreamMeasurement(TableOperations <Measurement> measurementTable, TableOperations <OutputStreamMeasurement> outputStreamMeasurementTable, int outputStreamID, string sourceSignalReference, string destSignalReference)
        {
            Measurement measurement = measurementTable.QueryRecordWhere("SignalReference = {0}", $"{sourceSignalReference}");

            if (measurement == null)
            {
                Console.WriteLine($"Failed to lookup Measurement record with SignalReference of \"{sourceSignalReference}\"");
            }
            else
            {
                OutputStreamMeasurement outputStreamMeasurement = outputStreamMeasurementTable.QueryRecordWhere("AdapterID = {0} AND SignalReference = {1}", outputStreamID, destSignalReference);

                if (outputStreamMeasurement == null)
                {
                    outputStreamMeasurement = new OutputStreamMeasurement
                    {
                        NodeID          = nodeID,
                        AdapterID       = outputStreamID,
                        HistorianID     = measurement.HistorianID,
                        PointID         = measurement.PointID,
                        SignalReference = destSignalReference,
                        CreatedOn       = DateTime.UtcNow,
                        CreatedBy       = currentUserID,
                        UpdatedOn       = DateTime.UtcNow,
                        UpdatedBy       = currentUserID
                    };

                    outputStreamMeasurementTable.AddNewRecord(outputStreamMeasurement);
                }
            }
        }
 void ButtonAdd_Click(object sender, RoutedEventArgs e)
 {
     if (m_measurementsToBeAdded.Count > 0)
     {
         App app = (App)Application.Current;
         //string[] format is {Name=PointID, Tooltip=SignalReference, Tag=HistorianID}
         foreach (KeyValuePair <string, string[]> measurement in m_measurementsToBeAdded)
         {
             OutputStreamMeasurement outputStreamMeasurement = new OutputStreamMeasurement();
             outputStreamMeasurement.NodeID          = app.NodeValue;
             outputStreamMeasurement.AdapterID       = m_sourceOutputStreamID;
             outputStreamMeasurement.HistorianID     = string.IsNullOrEmpty(measurement.Value[2]) ? (int?)null : Convert.ToInt32(measurement.Value[2]);
             outputStreamMeasurement.PointID         = Convert.ToInt32(measurement.Value[0]);
             outputStreamMeasurement.SignalReference = measurement.Value[1].Replace(measurement.Value[1].Substring(0, measurement.Value[1].LastIndexOf("-")), "<UNASSIGNED>");
             m_client.SaveOutputStreamMeasurementAsync(outputStreamMeasurement, true);
         }
         SystemMessages sm = new SystemMessages(new Message()
         {
             UserMessage = "Output Stream Measurements Added Successfully", SystemMessage = string.Empty, UserMessageType = MessageType.Success
         },
                                                ButtonType.OkOnly);
         sm.ShowPopup();
         m_client.GetMeasurementsForOutputStreamAsync(app.NodeValue, m_sourceOutputStreamID);
     }
     else
     {
         SystemMessages sm = new SystemMessages(new Message()
         {
             UserMessage = "Please Select Measurement(s) to Add", SystemMessage = string.Empty, UserMessageType = MessageType.Information
         },
                                                ButtonType.OkOnly);
         sm.ShowPopup();
     }
 }
Beispiel #3
0
 void ListBoxOutputStreamMeasurementList_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (ListBoxOutputStreamMeasurementList.SelectedIndex >= 0)
     {
         m_selectedOutputStreamMeasurement             = ListBoxOutputStreamMeasurementList.SelectedItem as OutputStreamMeasurement;
         GridOutputStreamMeasurementDetail.DataContext = m_selectedOutputStreamMeasurement;
         m_inEditMode = true;
         m_outputStreamMeasurementID = m_selectedOutputStreamMeasurement.ID;
         ButtonSave.Tag = "Update";
     }
 }
Beispiel #4
0
 void ButtonAdd_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         if (m_measurementsToBeAdded.Count > 0)
         {
             App app = (App)Application.Current;
             //string[] format is {Name=PointID, Tooltip=SignalReference, Tag=HistorianID}
             foreach (KeyValuePair <string, string[]> measurement in m_measurementsToBeAdded)
             {
                 OutputStreamMeasurement outputStreamMeasurement = new OutputStreamMeasurement();
                 outputStreamMeasurement.NodeID          = app.NodeValue;
                 outputStreamMeasurement.AdapterID       = m_sourceOutputStreamID;
                 outputStreamMeasurement.HistorianID     = string.IsNullOrEmpty(measurement.Value[2]) ? (int?)null : Convert.ToInt32(measurement.Value[2]);
                 outputStreamMeasurement.PointID         = Convert.ToInt32(measurement.Value[0]);
                 outputStreamMeasurement.SignalReference = measurement.Value[1].Replace(measurement.Value[1].Substring(0, measurement.Value[1].LastIndexOf("-")), "<UNASSIGNED>");
                 CommonFunctions.SaveOutputStreamMeasurement(null, outputStreamMeasurement, true);
             }
             SystemMessages sm = new SystemMessages(new Message()
             {
                 UserMessage = "Output Stream Measurements Added Successfully", SystemMessage = string.Empty, UserMessageType = MessageType.Success
             },
                                                    ButtonType.OkOnly);
             sm.Owner = Window.GetWindow(this);
             sm.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
             sm.ShowPopup();
             GetMeasurementsForOutputStream(app.NodeValue, m_sourceOutputStreamID);
         }
         else
         {
             SystemMessages sm = new SystemMessages(new Message()
             {
                 UserMessage = "Please Select Measurement(s) to Add", SystemMessage = string.Empty, UserMessageType = MessageType.Information
             },
                                                    ButtonType.OkOnly);
             sm.Owner = Window.GetWindow(this);
             sm.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
             sm.ShowPopup();
         }
     }
     catch (Exception ex)
     {
         SystemMessages sm = new SystemMessages(new Message()
         {
             UserMessage = "Failed to Add Measurements to Output Stream", SystemMessage = ex.Message, UserMessageType = MessageType.Error
         },
                                                ButtonType.OkOnly);
         sm.Owner = Window.GetWindow(this);
         sm.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
         sm.ShowPopup();
     }
 }
 public OutputStreamMeasurementsUserControl()
 {
     InitializeComponent();
     Initialize();
     #if !SILVERLIGHT
     ButtonSave.Content = new BitmapImage(new Uri(@"images/Save.png", UriKind.Relative));
     ButtonClear.Content = new BitmapImage(new Uri(@"images/Cancel.png", UriKind.Relative));
     #endif
     m_selectedOutputStreamMeasurement = new OutputStreamMeasurement();
     Loaded += new RoutedEventHandler(OutputStreamMeasurements_Loaded);
     ButtonSave.Click += new RoutedEventHandler(ButtonSave_Click);
     ButtonClear.Click += new RoutedEventHandler(ButtonClear_Click);
     ButtonSourceMeasurement.Click += new RoutedEventHandler(ButtonSourceMeasurement_Click);
     ListBoxOutputStreamMeasurementList.SelectionChanged += new SelectionChangedEventHandler(ListBoxOutputStreamMeasurementList_SelectionChanged);
 }
        private void ButtonAddMore_Click(object sender, RoutedEventArgs e)
        {
            IEnumerable <Measurement>          selectedMeasurements;
            ObservableCollection <Measurement> addedMeasurements;

            // Determine which of the selected measurements have been added to the output stream measurements
            selectedMeasurements = Measurement.LoadFromKeys(null, MeasurementPager.SelectedMeasurements.ToList());
            addedMeasurements    = new ObservableCollection <Measurement>(selectedMeasurements);

            // Add measurements to output stream measurements
            OutputStreamMeasurement.AddMeasurements(null, m_outputStreamID, addedMeasurements);
            m_dataContext       = new OutputStreamMeasurements(m_outputStreamID, 23);
            this.DataContext    = m_dataContext;
            PopupAddMore.IsOpen = false;
        }
Beispiel #7
0
        public OutputStreamMeasurementsUserControl()
        {
            InitializeComponent();
            Initialize();
#if !SILVERLIGHT
            ButtonSave.Content  = new BitmapImage(new Uri(@"images/Save.png", UriKind.Relative));
            ButtonClear.Content = new BitmapImage(new Uri(@"images/Cancel.png", UriKind.Relative));
#endif
            m_selectedOutputStreamMeasurement = new OutputStreamMeasurement();
            Loaded                        += new RoutedEventHandler(OutputStreamMeasurements_Loaded);
            ButtonSave.Click              += new RoutedEventHandler(ButtonSave_Click);
            ButtonClear.Click             += new RoutedEventHandler(ButtonClear_Click);
            ButtonSourceMeasurement.Click += new RoutedEventHandler(ButtonSourceMeasurement_Click);
            ListBoxOutputStreamMeasurementList.SelectionChanged += new SelectionChangedEventHandler(ListBoxOutputStreamMeasurementList_SelectionChanged);
        }
Beispiel #8
0
 public string SaveOutputStreamMeasurement(OutputStreamMeasurement outputStreamMeasurement, bool isNew)
 {
     try
     {
         return(CommonFunctions.SaveOutputStreamMeasurement(null, outputStreamMeasurement, isNew));
     }
     catch (Exception ex)
     {
         CommonFunctions.LogException(null, "Service.SaveOutputStreamMeasurement", ex);
         CustomServiceFault fault = new CustomServiceFault()
         {
             UserMessage = "Failed to Save Output Stream Measurement Information", SystemMessage = ex.Message
         };
         throw new FaultException <CustomServiceFault>(fault);
     }
 }
 void ButtonAdd_Click(object sender, RoutedEventArgs e)
 {
     if (m_measurementsToBeAdded.Count > 0)
     {
         App app = (App)Application.Current;
         //string[] format is {Name=PointID, Tooltip=SignalReference, Tag=HistorianID}
         foreach (KeyValuePair<string, string[]> measurement in m_measurementsToBeAdded)
         {
             OutputStreamMeasurement outputStreamMeasurement = new OutputStreamMeasurement();
             outputStreamMeasurement.NodeID = app.NodeValue;
             outputStreamMeasurement.AdapterID = m_sourceOutputStreamID;
             outputStreamMeasurement.HistorianID = string.IsNullOrEmpty(measurement.Value[2]) ? (int?)null : Convert.ToInt32(measurement.Value[2]);
             outputStreamMeasurement.PointID = Convert.ToInt32(measurement.Value[0]);
             outputStreamMeasurement.SignalReference = measurement.Value[1].Replace(measurement.Value[1].Substring(0, measurement.Value[1].LastIndexOf("-")), "<UNASSIGNED>");
             m_client.SaveOutputStreamMeasurementAsync(outputStreamMeasurement, true);
         }
         SystemMessages sm = new SystemMessages(new Message() { UserMessage = "Output Stream Measurements Added Successfully", SystemMessage = string.Empty, UserMessageType = MessageType.Success },
                  ButtonType.OkOnly);
         sm.ShowPopup();
         m_client.GetMeasurementsForOutputStreamAsync(app.NodeValue, m_sourceOutputStreamID);
     }
     else
     {
         SystemMessages sm = new SystemMessages(new Message() { UserMessage = "Please Select Measurement(s) to Add", SystemMessage = string.Empty, UserMessageType = MessageType.Information },
                  ButtonType.OkOnly);
         sm.ShowPopup();
     }
 }
 void ButtonAdd_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         if (m_measurementsToBeAdded.Count > 0)
         {
             App app = (App)Application.Current;
             //string[] format is {Name=PointID, Tooltip=SignalReference, Tag=HistorianID}
             foreach (KeyValuePair<string, string[]> measurement in m_measurementsToBeAdded)
             {
                 OutputStreamMeasurement outputStreamMeasurement = new OutputStreamMeasurement();
                 outputStreamMeasurement.NodeID = app.NodeValue;
                 outputStreamMeasurement.AdapterID = m_sourceOutputStreamID;
                 outputStreamMeasurement.HistorianID = string.IsNullOrEmpty(measurement.Value[2]) ? (int?)null : Convert.ToInt32(measurement.Value[2]);
                 outputStreamMeasurement.PointID = Convert.ToInt32(measurement.Value[0]);
                 outputStreamMeasurement.SignalReference = measurement.Value[1].Replace(measurement.Value[1].Substring(0, measurement.Value[1].LastIndexOf("-")), "<UNASSIGNED>");
                 CommonFunctions.SaveOutputStreamMeasurement(null, outputStreamMeasurement, true);
             }
             SystemMessages sm = new SystemMessages(new Message() { UserMessage = "Output Stream Measurements Added Successfully", SystemMessage = string.Empty, UserMessageType = MessageType.Success },
                      ButtonType.OkOnly);
             sm.Owner = Window.GetWindow(this);
             sm.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
             sm.ShowPopup();
             GetMeasurementsForOutputStream(app.NodeValue, m_sourceOutputStreamID);
         }
         else
         {
             SystemMessages sm = new SystemMessages(new Message() { UserMessage = "Please Select Measurement(s) to Add", SystemMessage = string.Empty, UserMessageType = MessageType.Information },
                      ButtonType.OkOnly);
             sm.Owner = Window.GetWindow(this);
             sm.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
             sm.ShowPopup();
         }
     }
     catch (Exception ex)
     {
         SystemMessages sm = new SystemMessages(new Message() { UserMessage = "Failed to Add Measurements to Output Stream", SystemMessage = ex.Message, UserMessageType = MessageType.Error },
                 ButtonType.OkOnly);
         sm.Owner = Window.GetWindow(this);
         sm.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
         sm.ShowPopup();
     }
 }
 void ListBoxOutputStreamMeasurementList_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (ListBoxOutputStreamMeasurementList.SelectedIndex >= 0)
     {
         m_selectedOutputStreamMeasurement = ListBoxOutputStreamMeasurementList.SelectedItem as OutputStreamMeasurement;
         GridOutputStreamMeasurementDetail.DataContext = m_selectedOutputStreamMeasurement;
         m_inEditMode = true;
         m_outputStreamMeasurementID = m_selectedOutputStreamMeasurement.ID;
         ButtonSave.Tag = "Update";
     }
 }
Beispiel #12
0
        public static string AddDevices(DataConnection connection, int outputStreamID, Dictionary<int, string> devicesToBeAdded, bool addDigitals, bool addAnalogs)
        {
            bool createdConnection = false;
            try
            {
                if (connection == null)
                {
                    connection = new DataConnection();
                    createdConnection = true;
                }
                foreach (KeyValuePair<int, string> deviceInfo in devicesToBeAdded)	//loop through all the devices that needs to be added.
                {
                    Device device = new Device();
                    device = GetDeviceByDeviceID(connection, deviceInfo.Key);	//Get all the information about the device to be added.
                    OutputStreamDevice outputStreamDevice = new OutputStreamDevice();
                    outputStreamDevice.NodeID = device.NodeID;
                    outputStreamDevice.AdapterID = outputStreamID;
                    outputStreamDevice.Acronym = device.Acronym;
                    outputStreamDevice.BpaAcronym = string.Empty;
                    outputStreamDevice.Name = device.Name;
                    outputStreamDevice.LoadOrder = device.LoadOrder;
                    outputStreamDevice.Enabled = true;
                    outputStreamDevice.PhasorDataFormat = string.Empty;
                    outputStreamDevice.FrequencyDataFormat = string.Empty;
                    outputStreamDevice.AnalogDataFormat = string.Empty;
                    outputStreamDevice.CoordinateFormat = string.Empty;
                    outputStreamDevice.IdCode = device.AccessID;
                    SaveOutputStreamDevice(connection, outputStreamDevice, true, string.Empty);	//save in to OutputStreamDevice Table.

                    int savedOutputStreamDeviceID = GetOutputStreamDevice(connection, outputStreamID, device.Acronym).ID;

                    //********************************************
                    List<Phasor> phasorList = new List<Phasor>();
                    phasorList = GetPhasorList(connection, deviceInfo.Key);			//Get all the phasor information for the device to be added.

                    foreach (Phasor phasor in phasorList)
                    {
                        OutputStreamDevicePhasor outputStreamDevicePhasor = new OutputStreamDevicePhasor(); //Add all phasors one by one into OutputStreamDevicePhasor table.
                        outputStreamDevicePhasor.NodeID = device.NodeID;
                        outputStreamDevicePhasor.OutputStreamDeviceID = savedOutputStreamDeviceID;
                        outputStreamDevicePhasor.Label = phasor.Label;
                        outputStreamDevicePhasor.Type = phasor.Type;
                        outputStreamDevicePhasor.Phase = phasor.Phase;
                        outputStreamDevicePhasor.LoadOrder = phasor.SourceIndex;
                        outputStreamDevicePhasor.ScalingValue = 0;
                        SaveOutputStreamDevicePhasor(connection, outputStreamDevicePhasor, true);
                    }
                    //********************************************

                    //********************************************
                    List<Measurement> measurementList = new List<Measurement>();
                    measurementList = GetMeasurementsByDevice(connection, deviceInfo.Key);

                    int analogIndex = 0;
                    foreach (Measurement measurement in measurementList)
                    {
                        if (measurement.SignalAcronym != "STAT")
                        {
                            OutputStreamMeasurement outputStreamMeasurement = new OutputStreamMeasurement();
                            outputStreamMeasurement.NodeID = device.NodeID;
                            outputStreamMeasurement.AdapterID = outputStreamID;
                            outputStreamMeasurement.HistorianID = measurement.HistorianID;
                            outputStreamMeasurement.PointID = measurement.PointID;
                            outputStreamMeasurement.SignalReference = measurement.SignalReference;

                            if (measurement.SignalAcronym == "ALOG")
                            {
                                if (addAnalogs)
                                {
                                    SaveOutputStreamMeasurement(connection, outputStreamMeasurement, true);

                                    OutputStreamDeviceAnalog outputStreamDeviceAnalog = new OutputStreamDeviceAnalog();
                                    outputStreamDeviceAnalog.NodeID = device.NodeID;
                                    outputStreamDeviceAnalog.OutputStreamDeviceID = savedOutputStreamDeviceID;
                                    outputStreamDeviceAnalog.Label = device.Acronym.Length > 12 ? device.Acronym.Substring(0, 12) + ":A" + analogIndex.ToString() : device.Acronym + ":A" + analogIndex.ToString(); // measurement.PointTag;
                                    outputStreamDeviceAnalog.Type = 0;	//default
                                    outputStreamDeviceAnalog.LoadOrder = Convert.ToInt32(measurement.SignalReference.Substring((measurement.SignalReference.LastIndexOf("-") + 3)));
                                    outputStreamDeviceAnalog.ScalingValue = 0;
                                    SaveOutputStreamDeviceAnalog(connection, outputStreamDeviceAnalog, true);
                                    analogIndex += 1;
                                }
                            }
                            else if (measurement.SignalAcronym == "DIGI")
                            {
                                if (addDigitals)
                                {
                                    SaveOutputStreamMeasurement(connection, outputStreamMeasurement, true);

                                    OutputStreamDeviceDigital outputStreamDeviceDigital = new OutputStreamDeviceDigital();
                                    outputStreamDeviceDigital.NodeID = device.NodeID;
                                    outputStreamDeviceDigital.OutputStreamDeviceID = savedOutputStreamDeviceID;
                                    outputStreamDeviceDigital.Label = digitalLabel;     // measurement.PointTag;
                                    outputStreamDeviceDigital.LoadOrder = Convert.ToInt32(measurement.SignalReference.Substring((measurement.SignalReference.LastIndexOf("-") + 3)));
                                    outputStreamDeviceDigital.MaskValue = 0;
                                    SaveOutputStreamDeviceDigital(connection, outputStreamDeviceDigital, true);
                                }
                            }
                            else
                                SaveOutputStreamMeasurement(connection, outputStreamMeasurement, true);

                        }
                    }
                    //********************************************
                }

                return "Output Stream Device(s) Added Successfully";
            }
            finally
            {
                if (createdConnection && connection != null)
                    connection.Dispose();
            }
        }
Beispiel #13
0
        public static string SaveOutputStreamMeasurement(DataConnection connection, OutputStreamMeasurement outputStreamMeasurement, bool isNew)
        {
            //DataConnection connection = new DataConnection();
            bool createdConnection = false;
            try
            {
                if (connection == null)
                {
                    connection = new DataConnection();
                    createdConnection = true;
                }

                IDbCommand command = connection.Connection.CreateCommand();
                command.CommandType = CommandType.Text;

                if (isNew)
                    command.CommandText = "Insert Into OutputStreamMeasurement (NodeID, AdapterID, HistorianID, PointID, SignalReference, UpdatedBy, UpdatedOn, CreatedBy, CreatedOn) " +
                        "Values (@nodeID, @adapterID, @historianID, @pointID, @signalReference, @updatedBy, @updatedOn, @createdBy, @createdOn)";
                else
                    command.CommandText = "Update OutputStreamMeasurement Set NodeID = @nodeID, AdapterID = @adapterID, HistorianID = @historianID, " +
                        "PointID = @pointID, SignalReference = @signalReference, UpdatedBy = @updatedBy, UpdatedOn = @updatedOn WHERE ID = @id";

                command.Parameters.Add(AddWithValue(command, "@nodeID", outputStreamMeasurement.NodeID));
                command.Parameters.Add(AddWithValue(command, "@adapterID", outputStreamMeasurement.AdapterID));
                command.Parameters.Add(AddWithValue(command, "@historianID", outputStreamMeasurement.HistorianID ?? (object)DBNull.Value));
                command.Parameters.Add(AddWithValue(command, "@pointID", outputStreamMeasurement.PointID));
                command.Parameters.Add(AddWithValue(command, "@signalReference", outputStreamMeasurement.SignalReference));
                command.Parameters.Add(AddWithValue(command, "@updatedBy", s_currentUser));
                command.Parameters.Add(AddWithValue(command, "@updatedOn", command.Connection.ConnectionString.Contains("Microsoft.Jet.OLEDB") ? DateTime.UtcNow.Date : DateTime.UtcNow));

                if (isNew)
                {
                    command.Parameters.Add(AddWithValue(command, "@createdBy", s_currentUser));
                    command.Parameters.Add(AddWithValue(command, "@createdOn", command.Connection.ConnectionString.Contains("Microsoft.Jet.OLEDB") ? DateTime.UtcNow.Date : DateTime.UtcNow));
                }
                else
                {
                    command.Parameters.Add(AddWithValue(command, "@id", outputStreamMeasurement.ID));
                }

                command.ExecuteNonQuery();
                return "Output Stream Measurement Information Saved Successfully";
            }
            finally
            {
                if (createdConnection && connection != null)
                    connection.Dispose();
            }
        }