public ActionResult EditRepair(int id)
        {
            var result = GetLoggedInUser(new[] { Role.Cleaner, Role.Engineer, Role.HeadCleaner, Role.HeadEngineer });

            if (result is ActionResult)
            {
                return(result as ActionResult);
            }
            var user   = (User)result;
            var _logic = new SRLogic(Role.Engineer)
            {
                User = user
            };
            var viewmodel = new EditRepairViewModel();

            if (user.Role != Role.HeadEngineer)
            {
                _logic.Error        = "You do not have permission to do this!";
                TempData["SRLogic"] = _logic;

                return(RedirectToAction("Index", "SR"));
            }

            viewmodel.RepairToChange  = _logic.GetRepairToEdit(id);
            viewmodel.Id              = viewmodel.RepairToChange.Id;
            viewmodel.AssignedWorkers = _logic.AssignedWorkers;

            return(View(viewmodel));
        }
        public ActionResult EditRepair(EditRepairViewModel viewmodel)
        {
            var logic     = new SRLogic();
            var listusers = new List <User>();

            foreach (var user in viewmodel.AssignedWorkers)
            {
                if (user.Value)
                {
                    var usertoinsert = _repo.GetUserFromName(user.Key);
                    listusers.Add(usertoinsert);
                }
            }
            if (viewmodel.EndDate < viewmodel.StartDate)
            {
                viewmodel.EndDate = null;
            }
            var changedRepair = new Repair(viewmodel.Id, viewmodel.StartDate, viewmodel.EndDate, viewmodel.Size,
                                           viewmodel.Defect, viewmodel.Solution, listusers, viewmodel.TramID);

            try
            {
                _repo.EditService(changedRepair);
            }
            catch
            {
                viewmodel.Error =
                    "Something went wrong with posting the ervice. Check if the date field is filled and if the tram number is valid!";
                return(View(viewmodel));
            }

            logic.Error = "Repair posted succesfully!";
            //TempData["SRLogic"] = logic;
            return(RedirectToAction("Index", "SR"));
        }
        public EditRepairViewModel GetEditedRepair(int id)
        {
            Repair repair       = this.Context.Repairs.Find(id);
            var    allEmployees = this.Context.Employees.ToList();

            EditRepairViewModel viewModel = Mapper.Map <EditRepairViewModel>(repair);

            foreach (Employee employee in allEmployees)
            {
                EmployeeRepairViewModel employeeRepairView = Mapper.Map <EmployeeRepairViewModel>(employee);
                viewModel.Employees.Add(employeeRepairView);
            }

            return(viewModel);
        }
        public ActionResult Edit(int id)
        {
            EditRepairViewModel viewModel = this.service.GetEditedRepair(id);

            return(View("~/Areas/Repairs/Views/Edit.cshtml", viewModel));
        }