//******************************************************************************************************
// Historians.cs - Gbtc
//
// Copyright © 2012, Grid Protection Alliance. All Rights Reserved.
//
// Licensed to the Grid Protection Alliance (GPA) under one or more contributor license agreements. See
// the NOTICE file distributed with this work for additional information regarding copyright ownership.
// The GPA licenses this file to you under the MIT License (MIT), the "License"; you may
// not use this file except in compliance with the License. You may obtain a copy of the License at:
//
// http://www.opensource.org/licenses/MIT
//
// Unless agreed to in writing, the subject software distributed under the License is distributed on an
// "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Refer to the
// License for the specific language governing permissions and limitations.
//
// Code Modification History:
// ----------------------------------------------------------------------------------------------------
// 05/02/2011 - Mehulbhai P Thakkar
// Generated original version of source code.
// 12/20/2012 - Starlynn Danyelle Gilliam
// Modified Header.
//
//******************************************************************************************************
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Input;
using GSF.TimeSeries.UI.Commands;
using GSF.TimeSeries.UI.DataModels;
namespace GSF.TimeSeries.UI.ViewModels
{
///
/// Class to hold bindable collection and current selection information for UI.
///
internal class Historians : PagedViewModelBase
{
#region [ Members ]
// Fields
private Dictionary m_nodeLookupList;
private RelayCommand m_initializeCommand;
private string m_runtimeID;
#endregion
#region [ Properties ]
public string RuntimeID
{
get
{
return m_runtimeID;
}
set
{
m_runtimeID = value;
OnPropertyChanged("RuntimeID");
}
}
///
/// Gets flag that determines if is a new record.
///
public override bool IsNewRecord
{
get
{
return CurrentItem.ID == 0;
}
}
///
/// Gets type collection of defined in the database.
///
public Dictionary NodeLookupList
{
get
{
return m_nodeLookupList;
}
}
public ICommand InitializeCommand
{
get
{
if (m_initializeCommand == null)
m_initializeCommand = new RelayCommand(InitializeHistorian, () => CanSave);
return m_initializeCommand;
}
}
#endregion
#region [ Constructor ]
///
/// Creates an instance of class.
///
/// Integer value to determine number of items per page.
/// Boolean value to determine is user changes should be saved automatically.
public Historians(int itemsPerPage, bool autoSave = true)
: base(itemsPerPage, autoSave)
{
}
#endregion
#region [ Methods ]
///
/// Gets the primary key value of the .
///
/// The primary key value of the .
public override int GetCurrentItemKey()
{
return CurrentItem.ID;
}
///
/// Gets the string based named identifier of the .
///
/// The string based named identifier of the .
public override string GetCurrentItemName()
{
return CurrentItem.Name;
}
///
/// Initialization to be done before the initial call to .
///
public override void Initialize()
{
base.Initialize();
m_nodeLookupList = Node.GetLookupList(null);
}
protected override void OnPropertyChanged(string propertyName)
{
base.OnPropertyChanged(propertyName);
if (propertyName == "CurrentItem")
{
if (CurrentItem == null)
RuntimeID = string.Empty;
else
RuntimeID = CommonFunctions.GetRuntimeID("Historian", CurrentItem.ID);
}
}
private void InitializeHistorian()
{
try
{
if (Confirm("Do you want to Initialize " + GetCurrentItemName() + "?", "Confirm Initialize"))
{
Popup(CommonFunctions.SendCommandToService("Initialize " + RuntimeID), "Initialize", MessageBoxImage.Information);
}
}
catch (Exception ex)
{
Popup("ERROR: " + ex.Message, "Failed To Initialize", MessageBoxImage.Error);
}
}
#endregion
}
}