// EDIT

        public ActionResult EditDriverGroup(DriverGroupModel driverGroup)
        {
            try
            {
                var results = driverGroupAdapter.EditDriverGroup(driverGroup);

                if (results != 1)
                {
                    return(View("~/Views/Error/EnterAllInfoError.cshtml"));
                }

                return(RedirectToAction("ViewAllDriverGroups"));
            }
            catch
            {
                return(View("~/Views/Error/EnterAllInfoError.cshtml"));
            }
        }
        // DELETE

        public ActionResult DeleteDriverGroup(DriverGroupModel deleteGroup)
        {
            try
            {
                var results = driverGroupAdapter.DeleteDriverGroup(deleteGroup);

                if (results != 1)
                {
                    Log.Info($"Unable to Delete {deleteGroup.Name} -- results == {results}");
                    return(View("~/Views/Error/DeleteCourseTypeError.cshtml"));
                }

                return(RedirectToAction("ViewAllDriverGroups"));
            }
            catch
            {
                Log.Info($"Unable to Delete {deleteGroup.Name} in DriverGroupController --- Id == {deleteGroup.Id}");
                return(View("~/Views/Error/DeleteDriverGroupError.cshtml"));
            }
        }
        // DELETE

        public int DeleteDriverGroup(DriverGroupModel driverGroup)
        {
            Log.MethodStart();

            try
            {
                var sql = @"DELETE from DRIVER_GROUP where ID = @ID";

                var parameters = new List <Parameter>
                {
                    new Parameter("@ID", driverGroup.Id)
                };

                return(db.ExecNonQuery(sql, CommandType.Text, parameters));
            }
            catch (Exception ex)
            {
                Log.Info($"Unable to Delete {driverGroup.Name} from DRIVER_GROUP Table --- {ex}");
                Log.Error(ex);
                throw;
            }
        }
        // EDIT

        public int EditDriverGroup(DriverGroupModel driverGroup)
        {
            Log.MethodStart();

            try
            {
                var sql = @"Update DRIVER_GROUP set NAME = @NAME where ID = @ID";

                var parameters = new List <Parameter>
                {
                    new Parameter("@ID", driverGroup.Id),
                    new Parameter("@NAME", driverGroup.Name)
                };

                return(db.ExecNonQuery(sql, CommandType.Text, parameters));
            }
            catch (Exception ex)
            {
                Log.Info($"Unable to Edit {driverGroup.Name} in DRIVER_GROUP Table --- {ex}");
                Log.Error(ex);
                throw;
            }
        }
        // ADD

        public int AddDriverGroup(DriverGroupModel newGroupName)
        {
            Log.MethodStart();

            try
            {
                var sql = @"INSERT into DRIVER_GROUP (NAME) 
                            values (@NAME);";

                var parameters = new List <Parameter>
                {
                    new Parameter("@NAME", newGroupName.Name)
                };

                return(db.ExecNonQuery(sql, CommandType.Text, parameters));
            }
            catch (Exception ex)
            {
                Log.Info($"Unable to Add {newGroupName.Name} from DRIVER_GROUP --- {ex}");
                Log.Error(ex);
                throw ex;
            }
        }
 public ActionResult RedirectToEditDriverGroup(DriverGroupModel driverGroup)
 {
     return(View("~/Views/Admin/Edit/EditDriverGroup.cshtml", driverGroup));
 }