using PersonalFinance.Entity;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PersonalFinance
{
///
/// Service for communication to database
///
public class UserService
{
private EntityContext _context;
public UserService(EntityContext context)
{
_context = context;
}
///
/// Add new user
///
/// User
/// Added user
public User AddUser(User u){
_context.Users.Add(u);
_context.SaveChanges();
return u;
}
///
/// Create and add new user
///
///
///
///
///
///
/// Added user
public User AddUser(string login, string name, string lastname, string password, Sex sex)
{
return AddUser(new User(password) { Login = login, Name = name, Lastname = lastname, Sex = sex });
}
///
/// Retrieve all users
///
/// List of users
public List GetAllUsers()
{
return _context.Users.ToList();
}
///
/// Get user by ID (Primary key)
///
/// int Primary key
/// User
public User GetUser(int id)
{
return _context.Users.FirstOrDefault(i => i.UserId == id);
}
///
/// Get user by ID (Primary key)
///
/// string
/// User
public User GetUser(string login)
{
return _context.Users.FirstOrDefault(i => i.Login == login);
}
///
/// Delete user by ID (primary key)
///
/// int Primary key
/// Deleted user
public virtual User DeleteUser(int id)
{
User user = _context.Users.Where(u => u.UserId == id).FirstOrDefault();//.First();
if (user != null)
{
User deleted = _context.Users.Remove(user);
_context.SaveChanges();
return deleted;
}
else
{
throw new IndexOutOfRangeException("User with ID " + id + " don't exist!");
}
}
///
/// Delete user
///
/// User to delete
/// Deleted user
public virtual User DeleteUser(User u)
{
User deleted = _context.Users.Remove(u);
_context.SaveChanges();
return deleted;
}
///
/// Update user
///
/// User to update
/// Updated user
public User UpdateUser(User u)
{
_context.Users.Add(u);
_context.SaveChanges();
return u;
}
}
}