public async Task <IActionResult> Create([Bind("RoeId,RoeOfficeId,RoeEmployeeId")] RelOfficeResponsEmployee relOfficeResponsEmployee,
                                                 string filter = "", int page = 1, string sortExpression = "RoeId")
        {
            ViewBag.Filter         = filter;
            ViewBag.Page           = page;
            ViewBag.SortExpression = sortExpression;

            if (ModelState.IsValid)
            {
                _context.Add(relOfficeResponsEmployee);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index),
                                        new
                {
                    page = page,
                    filter = filter,
                    sortExpression = sortExpression
                }));
            }
            ViewData["OfficeRegionId"] = new SelectList(_context.Region, "RegionId", "RegionName"
                                                        , relOfficeResponsEmployee.RoeOffice.OfficeHouses.HousesRegionId);
            ViewData["OfficeHousesId"] = new SelectList(_context.Houses, "HouseId", "HouseName"
                                                        , relOfficeResponsEmployee.RoeOffice.OfficeHousesId);
            ViewData["RoeEmployeeId"] = new SelectList(_context.Employees, "EmployeeId", "EmployeeFullFio"
                                                       , relOfficeResponsEmployee.RoeEmployeeId);
            ViewData["RoeOfficeId"] = new SelectList(_context.Offices, "OfficeId", "OfficeName"
                                                     , relOfficeResponsEmployee.RoeOfficeId);
            return(View(relOfficeResponsEmployee));
        }
        public async Task <IActionResult> Edit(int id, [Bind("RoeId,RoeOfficeId,RoeEmployeeId")] RelOfficeResponsEmployee relOfficeResponsEmployee,
                                               string filter = "", int page = 1, string sortExpression = "RoeId")
        {
            ViewBag.Filter         = filter;
            ViewBag.Page           = page;
            ViewBag.SortExpression = sortExpression;

            if (id != relOfficeResponsEmployee.RoeId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(relOfficeResponsEmployee);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!RelOfficeResponsEmployeeExists(relOfficeResponsEmployee.RoeId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index),
                                        new
                {
                    page = page,
                    filter = filter,
                    sortExpression = sortExpression
                }));
            }

            var _offices = _context.Offices
                           .Include(h => h.OfficeHouses)
                           .AsNoTracking();

            _offices = _offices.Where(o => o.OfficeId == relOfficeResponsEmployee.RoeOfficeId);

            var _houses = _context.Houses
                          .Include(h => h.HousesRegion)
                          .AsNoTracking();

            _houses = _houses.Where(h => h.HousesRegionId == relOfficeResponsEmployee.RoeOffice.OfficeHouses.HousesRegionId);

            var _employees = _context.Employees
                             .Include(e => e.EmployeeRegion)
                             .AsNoTracking();

            _employees = _employees.Where(e => e.EmployeeRegionId == relOfficeResponsEmployee.RoeOffice.OfficeHouses.HousesRegionId);

            ViewData["OfficeRegionId"] = new SelectList(_context.Region, "RegionId", "RegionName"
                                                        , relOfficeResponsEmployee.RoeOffice.OfficeHouses.HousesRegionId);
            ViewData["OfficeHousesId"] = new SelectList(_houses, "HouseId", "HouseName"
                                                        , relOfficeResponsEmployee.RoeOffice.OfficeHousesId);

            ViewData["RoeEmployeeId"] = new SelectList(_employees, "EmployeeId", "EmployeeFullFio"
                                                       , relOfficeResponsEmployee.RoeEmployeeId);
            ViewData["RoeOfficeId"] = new SelectList(_offices, "OfficeId", "OfficeName"
                                                     , relOfficeResponsEmployee.RoeOfficeId);
            return(View(relOfficeResponsEmployee));
        }