using SolarPower.Models; using SolarPower.Models.User; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace SolarPower.Repository.Interface { public interface IUserRepository : IRepositoryBase { /// /// 透過Account,取得單一筆資料 /// /// /// Task GetOneByAccountAsync(string account); /// /// 透過Email,取得單一筆資料 /// /// /// Task GetOneByEmailAsync(string email); /// /// 更換密碼 /// /// /// /// Task ChangePassword(string password, int id); /// /// 透過Account,取得當前登入使用者資訊 /// /// /// MyUser GetMyUserInfoByAccount(string account); /// /// 取得單一使用者 /// /// /// Task GetOneSimpleUser(int id); /// /// 修改個人資料 /// /// /// /// Task UpdatePersonInfo(UpdateUser entity, List properties); /// /// 更新密碼 /// /// /// /// Task UpdatePassword(UpdatePassword entity, List properties); /// /// 透過搜尋條件,查詢過濾後的使用者 /// /// /// Task> GetAllByFilterAsync(PostUserFilter filter); /// /// 透過公司,查詢使用者列表,0為全部公司的所有人 /// /// /// Task> GetUserSelectOptionListAsync(int CompanyId); /// /// 透過使用者Id,取得該使用者所有管理的電站 /// /// /// Task> GetUserPowerStationAsync(int userId); /// /// 透過Id,取得該使用者單一管理的電站 /// /// /// Task GetOneUserPowerStationAsync(int id); /// /// 透過Id,刪除該使用者所管理的電站 /// /// /// Task DeleteOneUserPowerStationAsync(int id); /// /// 透過公司編號,取得該公司的電站 /// /// /// Task> GetCompanyPowerStationAsync(int companyId, int userId, bool isPlatformLayer); Task DeleteOneGetEmail(IdAndTypeByEmail post); } }