using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using Wierszowki.Core;
using Wierszowki.Core.Interfaces;
using Wierszowki.Core.Linq;

namespace Wierszowki.Tests
{
    public class TestUserRepository : IRepository<User>
    {

        //List<User> users = new List<User>();
        //public TestUserRepository()
        //{
        //    var user = new User
        //                    {
        //                        Id = 1,
        //                        FirstName = "Test",
        //                        LastName = "Tester",
        //                        Login = "user",
        //                        Password = "password"
        //                    };
        //    users.Add(user);
        //}

        //public User FindByLoginAndPassword(string login, string password)
        //{
        //    return users.Find(u =>  u.Login == login && u.Password == password);
        //}

        public int Count()
        {
            throw new NotImplementedException();
        }

        public int Count(Expression<Func<User, bool>> expression)
        {
            throw new NotImplementedException();
        }

        public void Insert(User entity)
        {
            throw new NotImplementedException();
        }

        public void Delete(User entity)
        {
            throw new NotImplementedException();
        }

        public void Update(User entity)
        {
            throw new NotImplementedException();
        }

        public User FindOne(int id)
        {
            throw new NotImplementedException();
        }

        public User FindOne(Expression<Func<User, bool>> expression)
        {
            throw new NotImplementedException();
        }

        public bool TryFindOne(Expression<Func<User, bool>> expression, out User entity)
        {
            var user = new User { Login = "marek", Password = "marek" };
            entity = user;
            return true;
        }

        public bool Exists(Expression<Func<User, bool>> expression)
        {
            throw new NotImplementedException();
        }

        public IList<User> FindAll()
        {
            throw new NotImplementedException();
        }

        public IList<User> FindAll(Expression<Func<User, bool>> expression)
        {
            throw new NotImplementedException();
        }

        public IQueryable<User> Find()
        {
            throw new NotImplementedException();
        }

        public IQueryable<User> Find(int id)
        {
            throw new NotImplementedException();
        }

        public IQueryable<User> Find(Expression<Func<User, bool>> expression)
        {
            throw new NotImplementedException();
        }
    }
}