added pagesixe to userlist object. added total user count to enable PageCount to work correctly. added GET_TOTAL_USER_COUNT and GET_ALL_USERS_PAGINATE sqlite procedures to support pagination. updated methods in SQLiteRepository to support pagination procedures and pagination properties of UserList. updated UsersController to support pagination parameters. tidied html script tags. added pagination buttons at the bottom of user page. including drop down to select PageSize added setPageSize, goToUserPage and setPagination methods to the viewmodel. updated other methods for sammy etc to work with pagesize and PageNumber params. #11
110 lines
4.4 KiB
C#
110 lines
4.4 KiB
C#
using System;
|
|
|
|
namespace Interfaces
|
|
{
|
|
public interface IRepository
|
|
{
|
|
/// <summary>
|
|
/// Get a list of Users
|
|
/// </summary>
|
|
/// <returns>
|
|
/// Returns <see cref="UserList"/> with full list of users,
|
|
/// plus a total user count. Pagination options are supported.
|
|
/// </returns>
|
|
UserList GetUsers(int pageNumber=-1, int pageSize=-1);
|
|
///// <summary>
|
|
///// Get a paginated list of users
|
|
///// </summary>
|
|
///// <param name="pageNumber">The number of the page to retrieve</param>
|
|
///// <param name="pageSize">The size of the pages</param>
|
|
///// <returns>
|
|
///// Returns <see cref="UserList"/> with full list of users,
|
|
///// plus a total user count. Pagination options are supported.
|
|
///// </returns>
|
|
//UserList GetUsers(int pageNumber, int pageSize);
|
|
/// <summary>
|
|
/// Search the user list for the following string
|
|
/// </summary>
|
|
/// <param name="searchParam">string to search the user store for.</param>
|
|
/// <returns>
|
|
/// Returns <see cref="UserList"/> with full list of users,
|
|
/// plus a total user count. Pagination options are supported.
|
|
/// </returns>
|
|
UserList Search(string searchParam);
|
|
/// <summary>
|
|
/// Get details about a single user in the system base on their Id
|
|
/// </summary>
|
|
/// <param name="id">
|
|
/// integer data type, the Id of the User to get details about.</param>
|
|
/// <returns>
|
|
/// <see cref="User"/> object with full details,
|
|
/// including full <see cref="Identifier"/>
|
|
/// </returns>
|
|
User GetUser(int id);
|
|
/// <summary>
|
|
/// Get a list of the timelogs available for the specified user
|
|
/// for the current Calendar Week
|
|
/// </summary>
|
|
/// <param name="userId">
|
|
/// integer data type, the Id of the user to get time logs for
|
|
/// </param>
|
|
/// <returns>
|
|
/// <see cref="TimeLogList"/> with nested <see cref="TimeLog"/> objects
|
|
/// for the current calendar week
|
|
/// </returns>
|
|
TimeLogList GetTimeLogs(int userId);
|
|
/// <summary>
|
|
/// Get a list of the timelogs available for the specified user
|
|
/// for the specified calendar week
|
|
/// </summary>
|
|
/// <param name="userId">
|
|
/// integer data type, the Id of the user to get time logs for
|
|
/// </param>
|
|
/// <param name="selectedDate">
|
|
/// datetime data type, the date to receive time logs for (will scope out to calendar week).
|
|
/// </param>
|
|
/// <returns>
|
|
/// <see cref="TimeLogList"/> with nested <see cref="TimeLog"/> objects
|
|
/// for the current calendar week
|
|
/// </returns>
|
|
TimeLogList GetTimeLogs(int userId, DateTime selectedDate);
|
|
/// <summary>
|
|
/// Get a full list of Identifiers which are not associated to a user.
|
|
/// </summary>
|
|
/// <returns>
|
|
/// <see cref="IdentifierList"/> with nested <see cref="Identifier"/> list
|
|
/// </returns>
|
|
IdentifierList GetUnassignedIdentifierList();
|
|
|
|
/// <summary>
|
|
/// Update a user in the system with the new values.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// If the user object passed does not exist, it will be created.
|
|
/// </remarks>
|
|
/// <param name="user">
|
|
/// <see cref="User"/> object detailing the new properties to assign to the user.
|
|
/// The Id Field should not be changed, or should be -1 for new users.
|
|
/// </param>
|
|
/// <param name="userId">
|
|
/// int - ref param, value will be the UserId of the inserted or updated user
|
|
/// </param>
|
|
/// <returns>
|
|
/// <see cref="OperationResponse"/> to indicate procedure status.
|
|
/// </returns>
|
|
OperationResponse UpdateUser(User user, out int userId);
|
|
|
|
/// <summary>
|
|
/// Create a new TimeLog Event in the repository.
|
|
/// </summary>
|
|
/// <param name="identifier">
|
|
/// <see cref="Identifier"/> object with the Unique Id triggering the event
|
|
/// </param>
|
|
/// <param name="logId">The resultant Id of the inserted TimeLog</param>
|
|
/// <returns>
|
|
/// <see cref="OperationResponse"/> to indicate procedure status.
|
|
/// </returns>
|
|
OperationResponse LogEventTime(Identifier identifier, out int logId);
|
|
}
|
|
}
|