using System.Linq; using System.Web.Mvc; using Scheduling.Domain.Abstact; using Scheduling.Domain.Entities; using Scheduling.WebUI.Models; namespace Scheduling.WebUI.Controllers { public class EmployeesController : Controller { private IAccountingService service; public int pageSize = 10; public EmployeesController(IAccountingService srvc) { service = srvc; } public ViewResult List(int page = 1) { ViewBag.Counter = (page - 1) * pageSize + 1; EmployeeListViewModel model = new EmployeeListViewModel() { Employees = service.SelectEmployees(1, 3) .OrderBy(e => e.Id) .Skip((page - 1) * pageSize) .Take(pageSize), PagingInfo = new PagingInfo { CurrentPage = page, ItemsPerPage = pageSize, TotalItems = service.EmployeesCount(1, 3) } }; return View(model); } public ViewResult Edit(int id) { Employee emp = service.GetEmployee(id); return View(emp); } [HttpPost] public ActionResult Edit(Employee emp) { if (ModelState.IsValid) { service.SaveEmployee(emp); return RedirectToAction("List"); } return View(emp); } [HttpPost] public RedirectToRouteResult Delete(int id) { service.DeleteEmployee(id); return RedirectToAction("List"); } public ViewResult Create() { return View("Edit", new Employee()); } } }