using System; using System.Collections.Generic; using System.ServiceModel; using BeWo.Data.Entities; using BeWo.Service.Attributes; using BS.Shared.DataContracts; using BS.Shared.DataContracts.Compact; using BS.Shared; using BS.Shared.Core; namespace BeWo.Service.ServiceContracts { [ServiceContract] public interface IUserService { [FaultContract(typeof(BeWoFault))] [OperationContract] long ChangePassword(string pUserName, long pUserVersion, string pOldPassword, string pNewPassword); [FaultContract(typeof(BeWoFault))] [OperationContract] void CreateNewUser(string pUserName, string pPassword, string pEmail); [FaultContract(typeof(BeWoFault))] [OperationContract] [RequireWcfAuthorization(UserRightType.UserView_Delete)] void DeactivateUser(long pOid, long pVersion); [FaultContract(typeof(BeWoFault))] [OperationContract] [RequireWcfAuthorization(UserRightType.UserGroupView_Delete)] void DeactivateUserGroup(long pOid, long pVersion); [FaultContract(typeof(BeWoFault))] [OperationContract] [RequireWcfAuthorization(UserRightType.UserView_Delete)] void DeactivateUsers(Dictionary pOid2Version); [FaultContract(typeof(BeWoFault))] [OperationContract] [RequireWcfAuthorization(UserRightType.UserView_Delete)] void DeleteUser(long pOid, long pVersion); [FaultContract(typeof(BeWoFault))] [OperationContract] [RequireWcfAuthorization(UserRightType.UserGroupView_Delete)] void DeleteUserGroup(long pOid, long pVersion); [FaultContract(typeof(BeWoFault))] [OperationContract] [RequireWcfAuthorization(UserRightType.UserGroupView_Delete)] void DeleteUserGroups(Dictionary pOid2Version); [FaultContract(typeof(BeWoFault))] [OperationContract] [RequireWcfAuthorization(UserRightType.UserView_Delete)] void DeleteUsers(Dictionary pOid2Version); [FaultContract(typeof(BeWoFault))] [OperationContract] List FindUser(string pLoginName, string pEmployeeFirstName, string pEmployeeLastName); [FaultContract(typeof(BeWoFault))] [OperationContract] List GetAllUserGroups(); [FaultContract(typeof(BeWoFault))] [OperationContract] List GetAllUsersCompact(); [FaultContract(typeof(BeWoFault))] [OperationContract] List GetLastOpenedUserGroups(); [FaultContract(typeof(BeWoFault))] [OperationContract] List GetLastOpenedUsers(); [FaultContract(typeof(BeWoFault))] [OperationContract] [RequireWcfAuthorization(UserRightType.UserView_Create, UserRightType.CreateAll)] long InsertNewUser(UserDC pUser); [FaultContract(typeof(BeWoFault))] [OperationContract] [RequireWcfAuthorization(UserRightType.UserGroupView_Create, UserRightType.CreateAll)] long InsertNewUserGroup(UserGroupDC pUserGroup); [FaultContract(typeof(BeWoFault))] [OperationContract] UserValidationResult IsUserValidTwoFactor(string username, string password, string twoFactorPin, string supportPin); [FaultContract(typeof(BeWoFault))] [OperationContract] UserValidationResult IsUserValid(string pUserName, string pPassword, string pPIN); [FaultContract(typeof(BeWoFault))] [OperationContract] UserDC LoadUser(long pUserOid); [FaultContract(typeof(BeWoFault))] [OperationContract] UserDC LoadUserByLoginName(string pUserName); [FaultContract(typeof(BeWoFault))] [OperationContract] UserDC LoadUserByNameAndPassword(string pUserName, string password); [FaultContract(typeof(BeWoFault))] [OperationContract] UserGroupDC LoadUserGroup(long pOid); [FaultContract(typeof(BeWoFault))] [OperationContract] long UpdateUser(UserDC pUser); [FaultContract(typeof(BeWoFault))] [OperationContract] [RequireWcfAuthorization(UserRightType.UserGroupView_Edit, UserRightType.EditAll)] long UpdateUserGroup(UserGroupDC pUserGroup); [FaultContract(typeof(BeWoFault))] [OperationContract] List UpdateUserSettings(long userOid, List settings); [FaultContract(typeof(BeWoFault))] [OperationContract] long InsertNewSupportPin(SupportPinDC pSupportPin); [FaultContract(typeof(BeWoFault))] [OperationContract] List GetAllSupportPins(); [FaultContract(typeof(BeWoFault))] [OperationContract] long UpdateSupportPin(SupportPinDC pSupportPin); [FaultContract(typeof(BeWoFault))] [OperationContract] SupportPinDC GetSupportPinByPIN(string pin); [FaultContract(typeof(BeWoFault))] [OperationContract] bool GetEmailForUserName(string pUserName, Uri serverName, out string email); [FaultContract(typeof(BeWoFault))] [OperationContract] String CheckPassword(long userOid, string oldPassword, string newPassword); [FaultContract(typeof(BeWoFault))] [OperationContract] bool CheckUserGroupIsLastWithUserGroupEditRights(long pUserGroupOid); } }