using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using Dao;
using Domain;

namespace Service.Implement
{
	public class OverviewManager : IOverviewManager
	{
		public IOverviewRepository CurrentRepository { get; set; }

        //public IHostModalRecordRepository HostModalRecordRepository { get; set; }

		public IRoomTypeModalRepository RoomTypeModalRepository { get; set; }

		public object LoadRoomServiceState()
		{
			return CurrentRepository.LoadRoomServiceState();
		}

        public object LoadRoomRentState(int hotelID)
		{
            return CurrentRepository.LoadRoomRentState(hotelID);
		}

		public object LoadRoomState()
		{
			return CurrentRepository.LoadRoomState();
		}

        public object LoadAirConditionState(int hotelID)
		{
            return CurrentRepository.LoadAirConditionState(hotelID);
		}

        public DataTable LoadHostModalRecords(out long total, int page, int rows, string order, string sort, string roomNumber, string startTime, string endTime, DeviceType? deviceType, string modalIds, int hotelID)
		{
            CommonEntity.DataTongJi.InvokeCount("LoadHostModalRecords_");
			return CurrentRepository.LoadHostModalRecords(out total, page, rows, order, sort, roomNumber, startTime, endTime, deviceType, modalIds, hotelID);
		}

        //定时上报异常记录
        public DataTable LoadHostAbnormalRecords(int type, int hotelID)
        {
            CommonEntity.DataTongJi.InvokeCount("LoadHostAbnormalRecords_");
            return CurrentRepository.LoadHostAbnormalRecords(type, hotelID);
        }

        public DataSet LoadHostAbnormalRecordsAll(int type)
        {
            CommonEntity.DataTongJi.InvokeCount("LoadHostAbnormalRecordsAll_");
            //严重怀疑这里的代码有问题
            return CurrentRepository.LoadHostAbnormalRecordsAll(type);
        }

        public object LoadDoorState(int hotelID)
        {
            return CurrentRepository.LoadDoorState(hotelID);
        }

              
        public object LoadSafeBoxState()
        {
            return CurrentRepository.LoadSafeBoxState();
        }

		public DataTable LoadEnergyStatitics(string roomNumber, DateTimeUnit dateUnit, string startDate, string endDate, DeviceType? deviceType, string modalIds)
		{
			return CurrentRepository.LoadEnergyStatitics(roomNumber, dateUnit, startDate, endDate, deviceType, modalIds);
		}
	}
}
