public ActionResult EditCleaning(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.Cleaner)
            {
                User = user
            };
            var viewmodel = new EditCleaningViewModel();

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

                return(RedirectToAction("Index", "SR"));
            }
            if (viewmodel.EndDate < viewmodel.StartDate)
            {
                viewmodel.EndDate = null;
            }
            viewmodel.CleaningToChange = _logic.GetCleaningToEdit(id);
            viewmodel.Id = viewmodel.CleaningToChange.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 ActionResult MarkAsDone(int id)
        {
            var logic           = new SRLogic();
            var markasdonemodel = new MarkAsDoneViewModel();
            var result          = GetLoggedInUser(new[] { Role.Cleaner, Role.Engineer, Role.HeadCleaner, Role.HeadEngineer });

            if (result is ActionResult)
            {
                return(result as ActionResult);
            }
            var user = (User)result;


            if (user.Role == Role.HeadEngineer || user.Role == Role.Engineer)
            {
                var servicetomarkasdone = logic.GetRepairToEdit(id);
                markasdonemodel.RepairMarkAsDone = servicetomarkasdone;
                markasdonemodel.Serviceid        = servicetomarkasdone.Id;
            }
            if (user.Role == Role.HeadCleaner || user.Role == Role.Cleaner)
            {
                var servicetomarkasdone = logic.GetCleaningToEdit(id);
                markasdonemodel.CleaningMarkAsDone = servicetomarkasdone;
                markasdonemodel.Serviceid          = servicetomarkasdone.Id;
            }
            markasdonemodel.User = user;
            return(View(markasdonemodel));
        }
        public ActionResult AddRepair()
        {
            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);
            var model  = new AddRepairModel();

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

                return(RedirectToAction("Index", "SR"));
            }
            model.AssignedWorkers = _logic.AssignedWorkers;
            return(View(model));
        }