using DTS.Common.Base;
using DTS.Common.Enums.Sensors;
using DTS.Common.Interface.Pagination;
using System.Collections.Generic;
namespace DTS.Common.Interface.Sensors.SensorsList
{
public interface ISensorsListViewModel : IBaseViewModel, IFilterableListView
{
ISensorsListView View { get; set; }
IAnalogSensor [] AnalogSensors { get; set; }
ISquib [] Squibs { get; set; }
IDigitalInputSetting [] DigitalInputSettings { get; set; }
IDigitalOutputSetting [] DigitalOutputSettings { get; set; }
IUartIOSetting [] UartIOSettings { get; set; }
IStreamOutputSetting [] StreamOutputSettings { get; set; }
CalibrationBehaviors CalibrationBehavior { get; set; }
void GetSensors(int sensorCalWarningPeriodDays, bool included);
///
/// retrieves and populates view model with all sensors matching sensors allowed
///
/// cal warning period in days, used for colorization
/// array of which sensors to display
/// dictionary look up of databaseid to ISensorData for sensors in a test
void GetSensors(int sensorCalWarningPeriodDays, int[] sensorsAllowed, IReadOnlyDictionary sensors);
void SetSelectedSerial(string serialNumber);
void Sort(object sortBy, bool bColumnClick);
void SortOverdue(object sortBy, bool bColumnClick);
void Unset();
void Filter(string currentFilter);
void FilterSquib(object columnTag, string searchTerm);
void FilterDigitalIn(object columnTag, string searchTerm);
void FilterDigitalOut(object columnTag, string searchTerm);
void FilterUartIO(object columnTag, string searchTerm);
void FilterStreamIn(object columnTag, string searchTerm);
void FilterStreamOut(object columnTag, string searchTerm);
void SetCachedSensors(ISensorData[] cachedSensors);
void SetCachedCalibrations(ISensorCalibration[] sensorCalibrations);
string CapacityFormat { get; set; }
///
/// determines whether included columns are used in models/views
///
///
void UseIncludedColumn(bool bUsesIncludedColumn);
///
/// sets the included property for all sensors
///
///
void SetIncludedAll(bool bIncluded);
///
/// returns all the included sensors
///
///
IDragAndDropItem[] GetIncludedSensors();
///
/// controls whether TDC incompatible sensors should be included or not
///
bool ShowOnlyTDCSensors{ set; }
///
/// controls whether Sliceware incompatible sensors should be included or not
///
bool ShowOnlySlicewareSensors { set; }
}
}