namespace Interfaces { public interface IRepository { /// /// Get a list of Users /// /// /// Returns with full list of users, /// plus a total user count. Pagination options are supported. /// UserList GetUsers(); /// /// Get details about a single user in the system base on their Id /// /// /// integer data type, the Id of the User to get details about. /// /// object with full details, /// including full /// User GetUser(int id); /// /// Get a list of the timelogs available for the specified user /// for the current Calendar Week /// /// /// integer data type, the Id of the user to get time logs for /// /// /// with nested objects /// for the current calendar week /// TimeLogList GetTimeLogs(int userId); /// /// Get a list of the timelogs available for the specified user /// for the specified calendar week /// /// /// integer data type, the Id of the user to get time logs for /// /// /// integer data type, the calendar week to retrieve logs for. /// /// /// with nested objects /// for the current calendar week /// TimeLogList GetTimeLogs(int userId, int calendarWeek); /// /// Get a full list of Identifiers which are not associated to a user. /// /// /// with nested list /// IdentifierList GetUnassignedIdentifierList(); /// /// Update a user in the system with the new values. /// /// /// If the user object passed does not exist, it will be created. /// /// /// object detailing the new properties to assign to the user. /// The Id Field should not be changed, or should be -1 for new users. /// /// /// to indicate procedure status. /// OperationResponse UpdateUser(User user); /// /// Create a new TimeLog Event in the repository. /// /// /// object with the Unique Id triggering the event /// /// /// to indicate procedure status. /// OperationResponse LogEventTime(Identifier identifier); } }