public async Task <ActionResult> Edit(int?id)
        {
            var position = await PositionManager.FindEntityByIdAsync(id ?? 0);

            if (position == null)
            {
                return(HttpNotFound());
            }

            ViewBag.Positions = await PositionManager.GetAllEntities().ToListAsync();

            var departs = await DepartmentManager.GetAllEntities().ToListAsync();

            ViewBag.selectListDepart = new SelectList(departs, "Id", "Name");

            var offices = await OfficeManager.GetOfficesForDepartment(departs.ElementAtOrDefault(0)).ToListAsync();

            ViewBag.selectListOffice = new SelectList(offices, "Id", "Name");

            var teachers = await UserManager.GetNoPositionTeachersAsync();

            ViewBag.selectListTeacher = new SelectList(teachers, "Id", "Name");

            var model = new PositionEditViewModel
            {
                Id          = position.Id,
                Description = position.Description,
                Name        = position.Name,
                UserId      = position.HeadUser.Teacher.Id,
                OfficeId    = position.Office.Id
            };

            return(View(model));
        }
        public async Task <ActionResult> Create()
        {
            ViewBag.Positions = await PositionManager.GetAllEntities().ToListAsync();

            var teachers = await UserManager.GetNoPositionTeachersAsync();

            ViewBag.selectListTeacher = new SelectList(teachers, "Id", "Name");

            var departs = await DepartmentManager.GetAllEntities().ToListAsync();

            ViewBag.selectListDepart = new SelectList(departs, "Id", "Name");

            var offices = await OfficeManager.GetOfficesForDepartment(departs.ElementAtOrDefault(0)).ToListAsync();

            ViewBag.selectListOffice = new SelectList(offices, "Id", "Name");

            return(View());
        }
        public ActionResult Index(int?p, string searchString, string currentFilter)
        {
            var list = PositionManager.GetAllEntities();

            if (searchString != null)
            {
                p = 1;
            }
            else
            {
                searchString = currentFilter;
            }
            ViewBag.CurrentFilter = searchString;
            list = list.Where(e => string.IsNullOrEmpty(searchString) || e.Name.Contains(searchString));
            list = list.OrderBy(e => e.Name);
            var pagesize = 5;
            var page     = p ?? 1;

            return(View(list.ToPagedList(page, pagesize)));
        }