public ActionResult AddEmployee(EmployeeVM model) { if (ModelState.IsValid) { if (model.IsCEO) { var currentCeo2 = EmployeeProcessor.CheckForCEO(); if (currentCeo2 != null) { var currentCeo = LogicClass.GetCEOErrorMessage(currentCeo2); return(RedirectToAction("AddEmployee", new { currentCEO = currentCeo })); } model.ManagerId = null; } if (!model.IsCEO) { model.ManagerId = LogicClass.CheckManager(model); } if (!model.IsCEO && model.ManagerId < 0) { string message = "Every employee need to have a manager, please select Manager"; return(RedirectToAction("AddEmployee", new { currentCEO = message })); } else if (!model.IsCEO && model.ManagerId == 0) { string message = "Only a manager can have the CEO as their manager"; return(RedirectToAction("AddEmployee", new { currentCEO = message })); } model.Salary = LogicClass.CalculateSalary(model); var outModel = mapping.MappToEmployeeModelFromVM(model); EmployeeProcessor.CreateEmployee(outModel); return(RedirectToAction("Index")); } return(RedirectToAction("AddEmployee")); }