using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.Threading.Tasks;
using WcfServices.Dto;

namespace WcfServices.Contract
{
    [ServiceContract]
    public interface IUserService
    {

        [OperationContract]
        Task<IEnumerable<UserDto>> GetUsersAsync(FilterDto filterDto);
        [OperationContract]
        Task<UserDto> LoginAsync(string userName);
        [OperationContract]
        Task<UserDto> GetUserByIdAsync(int id);
        [OperationContract]
        Task CreateUserAsync(UserDto userDto);
        [OperationContract]
        Task UpdateUserAsync(UserDto userDto);
        [OperationContract]
        Task UpdateUserWithRolesAsync(UserDto userDto, IEnumerable<int> roleIds);
        [OperationContract]
        Task DeleteUserAsync(int id);

    }

}
