using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Bowin.Common.Linq.Entity;
using EMIS.Entities;
using EMIS.ViewModel;
using EMIS.ViewModel.UniversityManage.AdministrativeOrgan;

namespace EMIS.CommonLogic.UniversityManage.AdministrativeOrgan
{
    public interface ICampusServices
    {
        /// <summary>
        /// 查询校区信息View
        /// </summary>
        /// <param name="configuretView"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        IGridResultSet<CampusView> GetCampusViewGrid(ConfiguretView configuretView, int pageIndex, int pageSize);

        /// <summary>
        /// 查询校区信息List
        /// </summary>
        /// <param name="configuretView"></param>
        /// <returns></returns>
        IList<CampusView> GetCampusViewList(ConfiguretView configuretView);

        /// <summary>
        /// 查询全部校区信息CF_Campus
        /// </summary>
        /// <returns></returns>
        List<CF_Campus> GetCampusList();

        /// <summary>
        /// 查询全部校区信息CF_Campus(不考虑状态列)
        /// </summary>
        /// <returns></returns>
        List<CF_Campus> GetCampusListWithoutDataRange();

        /// <summary>
        /// 查询对应的校区信息CampusView
        /// </summary>
        /// <param name="campusID"></param>
        /// <returns></returns>
        CampusView GetCampusView(Guid? campusID);

        /// <summary>
        /// 编辑(新增、修改,业务主键:校区代码或校区名称)
        /// </summary>
        /// <param name="campusView"></param>
        void CampusEdit(CampusView campusView);

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="campusIDList"></param>
        /// <returns></returns>
        bool CampusDelete(List<Guid?> campusIDList);

        /// <summary>
        /// 查询校区对应的院系所信息CollegeView
        /// </summary>
        /// <param name="configuretView"></param>
        /// <param name="campusID"></param>
        /// <param name="unitCategoryID"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        IGridResultSet<CollegeView> GetCollegeListViewGrid(ConfiguretView configuretView, Guid? campusID, int? unitCategoryID, int pageIndex, int pageSize);

        /// <summary>
        /// 查询校区对应的院系所信息List
        /// </summary>
        /// <param name="configuretView"></param>
        /// <param name="campusID"></param>
        /// <param name="unitCategoryID"></param>
        /// <returns></returns>
        IList<CollegeView> GetCollegeListViewList(ConfiguretView configuretView, Guid? campusID, int? unitCategoryID);

    }
}