using Ropin.Inspection.Common.Helper;
using Ropin.Inspection.Model;
using Ropin.Inspection.Model.SearchModel.DEV;
using Ropin.Inspection.Model.ViewModel.DEV;
using Ropin.Inspection.Service.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;

namespace Ropin.Inspection.Service
{
    public interface ITdevWebScadaDevSpotService : IBaseService<TdevWebScadaDevSpotViewModel>, IBaseServiceById<TdevWebScadaDevSpotViewModel, string>
    {
        Task<IEnumerable<TdevWebScadaDevSpotViewModel>> GetAllAsync();
        Task<IEnumerable<TdevWebScadaDevSpotViewModel>> GetByConditionAsync(Expression<Func<TdevWebScadaDevSpotViewModel, bool>> expression);
        Task UpdateAsync(string code, TdevWebScadaDevSpotUpdateModel updateModel);
        Task UpdateSortAsync(IEnumerable<string> ids);
        Task<IEnumerable<TdevWebScadaDevSpotViewModel>> GetConditionAsync(TdevWebScadaDevSpotSearchModel searchModel);
        Task DeleteAsync(string code);
        Task CreateAsync(TdevWebScadaDevSpotCreateModel viewModel);
        Task<string> GetWebScadaByAsync(string devId);
        Task<string> GetWebScadaDevSpotValue(string devId);
        Task<string> GetWebScadaDevSpotHisData(string devId);
        Task<bool> devBoxIsExist(TdevWebScadaDevSpotIsExist model);
        Task DeleteDataAsync(string code);
        Task<IEnumerable<DevBoxViewModel>> GetdevDevBoxConditionAsync(DevBoxSearchModel searchModel);
    }
}