using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using Repository.Models;
namespace Repository.BackendRepository.Interface
{
public interface INiagaraDataSynchronizeRepository : IBackendRepository
{
///
/// 同步N4至資料表 import_niagara_tag
///
///
///
///
Task InsertNiagaraTagList(List ds, List building, string tag_quantity);
///
/// 獲取照明開關 是否在 device_node 層
///
///
Task getLightSwitchLevel();
///
/// 同步N4至資料表 import_niagara_item
///
///
///
///
Task InsertItemFromNiagara(List ds, List building, bool isFirstAsync);
///
/// 比對 device
///
///
Task DeviceComparison(string LightSwitchLevel);
///
///檢查Device與import_niagara_tag 的Full_Name是否相同 不同則Full_Name從import_niagara_tag 覆蓋至device
///
///
Task CheckDiffFullNameAndCover();
Task CheckItemIsShowHistory();
///
///根據Building_menu 更新 AuthPage
///
///
Task UpdateAuthPageByBuildingMenu();
Task InsertItemFromNiagara_History(List ds, List building);
///
/// 比對 device的FullName,若為空則以DeviceName取代
///
///
Task CheckFullNameEmptyReplaceByDeviceName();
///
/// 比對 device_item
///
///
Task DeviceItemComparison();
///
/// 比對 device_item full_name 與 import_niagara_item是否相同
/// 不同則覆蓋
///
///
Task CheckItemDiffFullNameAndCover();
Task ItemCheckFullNameEmptyReplaceByDeviceName();
///
/// 新增資料至 buildingMenu
///
///
Task InsertBuildingMenu();
///
/// 新增資料至 subSystemFloor
///
///
Task InsertSubSystemFloor();
Task DeviceDisasterAysnc(List dv);
///
/// InsertFloor
///
///
Task InsertFloor();
///
/// Recover device_system_tag
///
///
Task RecoverSysTag(string tableName);
///
/// record all device control point
///
///
///
Task DeviceControlPoint(List dcp);
Task KeepTimeLog(string functionName, long milliSecond, [CallerLineNumber] int line = 0, [CallerMemberName] string name = "");
}
}