// EDIT

        public int EditAssignedCourseToDriver(DriverLinkCourseModel updatedEntry)
        {
            Log.MethodStart();

            try
            {
                string sql = @"UPDATE LINK_DRIVER_COURSE Set PRIORITY = @PRIORITY, ASSIGNED_DATETIME = @ASSIGNED_DATETIME, DUE_DATE = @DUE_DATE
                            Where ID = @ID";

                List <Parameter> parameters = new List <Parameter>
                {
                    new Parameter("@ID", updatedEntry.Id),
                    new Parameter("@PRIORITY", updatedEntry.SelectedPriorityId),
                    new Parameter("@ASSIGNED_DATETIME", DateTime.UtcNow.ToLocalTime()),
                    new Parameter("@DUE_DATE", updatedEntry.Due_Date)
                };

                return(database.ExecNonQuery(sql, CommandType.Text, parameters));
            }
            catch (Exception ex)
            {
                Log.Info($"Unable to Edit {updatedEntry.Course.Title} at {updatedEntry.Id} in LINK_DRIVER_COURSE Table --- {ex}");
                Log.Error(ex);
                throw;
            }
        }
        public DriverLinkCourseModel AssignCourseToDriver(CourseModel selectedCourse, DriverModel driver, CourseConfigModel config)
        {
            try
            {
                var newEntry = new DriverLinkCourseModel()
                {
                    User_Id             = driver.Id,
                    DriverId            = driver.DriverId,
                    Driver_Group_Id     = driver.Driver_Group_Id,
                    Course_Id           = selectedCourse.Id,
                    Course_Type         = selectedCourse.Course_Type,
                    Title               = selectedCourse.Title,
                    State               = Assigned,
                    Priority            = config.Priority,
                    Required            = config.Required,
                    Reactivate_Training = config.Reactivate_Training,
                    Hidden_Course       = selectedCourse.Hidden_Course,
                    Assigned_Datetime   = DateTime.Now
                };

                return(newEntry);
            }
            catch (Exception ex)
            {
                Log.Trace(ex.ToString());
                throw;
            }
        }
        // ADD

        public int AssignCourseToDriver(DriverLinkCourseModel assignToDriver)
        {
            Log.MethodStart();

            try
            {
                string sql = @"Insert into LINK_DRIVER_COURSE (USER_ID, DRIVER_ID, COURSE_ID, STATE, PRIORITY, ASSIGNED_DATETIME, DUE_DATE, CREATED_DATETIME) 
                            values (@USER_ID, @DRIVER_ID, @COURSE_ID, @STATE, @PRIORITY, @ASSIGNED_DATETIME, @DUE_DATE, @CREATED_DATETIME)";

                List <Parameter> parameters = new List <Parameter>
                {
                    new Parameter("@USER_ID", assignToDriver.User_Id),
                    new Parameter("@DRIVER_ID", assignToDriver.SelectedDriverId),
                    new Parameter("@COURSE_ID", assignToDriver.SelectedCourseId),
                    new Parameter("@STATE", assignToDriver.State),
                    new Parameter("@PRIORITY", assignToDriver.SelectedPriorityId),
                    new Parameter("@ASSIGNED_DATETIME", DateTime.UtcNow),
                    new Parameter("@DUE_DATE", assignToDriver.Due_Date),
                    new Parameter("@CREATED_DATETIME", DateTime.UtcNow)
                };
                //var test = database.ExecNonQuery(sql, CommandType.Text, parameters);
                return(database.ExecNonQuery(sql, CommandType.Text, parameters));
            }
            catch (Exception ex)
            {
                Log.Info($"Unable to Assign {assignToDriver.Course.Title} to {assignToDriver.Driver.DriverId} in LINK_DRIVER_COURSE Table --- {ex} ");
                Log.Error(ex);
                throw;
            }
        }
示例#4
0
        public ActionResult GetDriverId(string driverid)
        {
            DriverLinkCourseModel sendDriverId = new DriverLinkCourseModel();

            sendDriverId.DriverId = driverid;

            return(RedirectToAction("SelectAllCoursesAssignedToDriver", "LinkDriverCourse", sendDriverId));
        }
示例#5
0
        //public ActionResult RedirectToEditAssignedCourse(int assignedCourse)
        //{
        //    var entryToUpdate = linkDriverCourseAdapter.SelectCourseToEdit(assignedCourse);
        //    return View("~/Views/Admin/Edit/EditAssignedCourseToDriver.cshtml", entryToUpdate);
        //}

        public ActionResult RedirectToEditAssignedCourse(int assignedCourse)
        {
            DriverLinkCourseModel  entryToUpdate = linkDriverCourseAdapter.SelectCourseToEdit(assignedCourse);
            IEnumerable <Priority> priorityList  = priorityAdapter.SelectAllPriorities();

            entryToUpdate.PriorityList = new SelectList(priorityList, "Id", "NAME");
            return(View("~/Views/Admin/Edit/EditAssignedCourseToDriver.cshtml", entryToUpdate));
        }
        public void AssignCourseToMultipleDrivers(DriverLinkCourseModel course)
        {
            var driverList = driverAdapter.SelectAllDrivers();

            foreach (var driver in driverList)
            {
                linkDriverCourseAdapter.AssignCourseToDriver(course);
            }
        }
示例#7
0
        public ActionResult RedirectToAssignCourseToAllDrivers()
        {
            IEnumerable <CourseModel> courseList   = courseAdapter.SelectAllCourses().OrderBy(x => x.Title);
            IEnumerable <Priority>    priorityList = priorityAdapter.SelectAllPriorities().OrderBy(x => x.Name);

            DriverLinkCourseModel linkModel = new DriverLinkCourseModel()
            {
                CourseList   = new SelectList(courseList, "Id", "Title"),
                PriorityList = new SelectList(priorityList, "Id", "NAME")
            };

            return(View("~/Views/Admin/Assign/AssignCourseToAllDrivers.cshtml", linkModel));
        }
        public DriverLinkCourseModel SelectCourseToEdit(int entryToEdit)
        {
            Log.MethodStart();

            try
            {
                string sql = @"select link.ID, us.DRIVER_ID, cs.ID as CourseId, cs.TITLE, pr.ID as PriorityId, pr.NAME, link.ASSIGNED_DATETIME, link.DUE_DATE from LINK_DRIVER_COURSE link
                            join COURSE cs on cs.ID = link.COURSE_ID
                            join [USER] us on us.ID = link.DRIVER_ID
                            join PRIORITY pr on pr.ID = link.PRIORITY
                            where link.ID = @ID";

                List <Parameter> parameters = new List <Parameter>
                {
                    new Parameter("@ID", entryToEdit)
                };

                DataSet dataSet = database.GetDataSet(sql, CommandType.Text, parameters.ToArray());

                if (dataSet.IsEmptyDataSet())
                {
                    return(null);
                }

                DataRow results = dataSet.Tables[0].Rows[0];

                DriverLinkCourseModel newEntry = new DriverLinkCourseModel
                {
                    Id               = results["ID"].To <int>(),
                    DriverId         = results["DRIVER_ID"].To <string>(),
                    Title            = results["TITLE"].To <string>(),
                    SelectedCourseId = results["CourseId"].To <int>(),
                    Priority         = new Priority {
                        Name = results["NAME"].To <string>()
                    },
                    SelectedPriorityId = results["PriorityId"].To <int>(),
                    Assigned_Datetime  = results["ASSIGNED_DATETIME"].To <DateTime>().ToLocalTime(),
                    Due_Date           = results["DUE_DATE"].To <DateTime>()
                };

                return(newEntry);
            }
            catch (Exception ex)
            {
                Log.Info($"Unable to Edit {entryToEdit} from LINK_DRIVER_COURSE Table --- {ex}");
                Log.Error(ex);
                throw;
            }
        }
示例#9
0
        //[HttpPost]
        //public ActionResult AssignCourseToMultipleDrivers(List<DriverLinkCourseModel> driverList)
        //{
        //    try
        //    {
        //        foreach (var driver in driverList)
        //        {
        //            driver.State = "Assigned";
        //        }

        //        var results = linkDriverCourseAdapter.AssignCourseToMultipleDrivers(driverList);

        //        return RedirectToAction("SelectAllAssignedCourses");
        //    }
        //    catch
        //    {
        //        return View();
        //    }
        //}


        // EDIT

        public ActionResult EditAssignedCourseToDriver(DriverLinkCourseModel editEntry)
        {
            try
            {
                int results = linkDriverCourseAdapter.EditAssignedCourseToDriver(editEntry);

                if (results != 1)
                {
                    Log.Info($"Unable to Edit {editEntry.Course.Title} to {editEntry.Driver.DriverId} in LinkDriverCourseController -- results == {results}");
                    return(View("~/Views/Error/EnterAllInfoError.cshtml"));
                }

                return(RedirectToAction("SelectAllAssignedCourses"));
            }
            catch
            {
                Log.Info($"Unable to Edit course for driver in LinkDriverCourseController");
                return(View("~/Views/Error/EnterAllInfoError.cshtml"));
            }
        }
示例#10
0
        public ActionResult AssignCourseToDriverGroup(DriverLinkCourseModel driverGroupAssignment)
        {
            try
            {
                int results = linkDriverCourseAdapter.AssignCourseToDriverGroup(driverGroupAssignment.SelectedCourseId, driverGroupAssignment.SelectedPriorityId,
                                                                                driverGroupAssignment.Assigned_Datetime, driverGroupAssignment.Due_Date, driverGroupAssignment.SelectedGroupId);

                if (results == 0)
                {
                    Log.Info("Unable to assign course to driver group");
                    return(RedirectToAction("SelectAllAssignedCourses"));
                }

                return(RedirectToAction("SelectAllAssignedCourses"));
            }
            catch
            {
                Log.Info("Unable to assign course to driver group");
                return(View());
            }
        }
示例#11
0
        public ActionResult AssignCourseToAllDrivers(DriverLinkCourseModel assignment)
        {
            try
            {
                int results = linkDriverCourseAdapter.AssignCourseToAllDrivers(assignment.SelectedCourseId, assignment.SelectedPriorityId,
                                                                               assignment.Assigned_Datetime, assignment.Due_Date);

                if (results == 0)
                {
                    Log.Info($"Unable to Assign {assignment.Course.Title} to all drivers in LinkDriverCourseController -- results == {results}");
                    return(View("~/Views/Error/EnterAllInfoError.cshtml"));
                }

                return(RedirectToAction("SelectAllAssignedCourses"));
            }
            catch
            {
                Log.Info($"Unable to Assign course to all drivers in LinkDriverCourseController");
                return(View("~/Views/Error/EnterAllInfoError.cshtml"));
            }
        }
示例#12
0
        public ActionResult AssignCourseToDriver(DriverLinkCourseModel assignment)
        {
            try
            {
                assignment.State = "Assigned";
                int results = linkDriverCourseAdapter.AssignCourseToDriver(assignment);

                if (results != 1)
                {
                    Log.Info($"Unable to Assign {assignment.Course.Title} to {assignment.Driver.DriverId} -- results == {results}");
                    return(View("~/Views/Error/AssignCourseToDriverError.cshtml"));
                }

                return(RedirectToAction("SelectAllAssignedCourses"));
            }
            catch
            {
                Log.Info($"Unable to Assign course in LinkDriverCourseController");
                return(View("~/Views/Error/AssignCourseToDriverError.cshtml"));
            }
        }
        public int UpdateCoursesToPastDue(DriverLinkCourseModel courseToChange)
        {
            Log.MethodStart();

            try
            {
                string sql = @"update LINK_DRIVER_COURSE set STATE = @STATE where ID = @ID";

                List <Parameter> parameters = new List <Parameter>
                {
                    new Parameter("@ID", courseToChange.Id),
                    new Parameter("@STATE", "Past Due")
                };

                return(database.ExecNonQuery(sql, CommandType.Text, parameters));
            }
            catch (Exception ex)
            {
                Log.Info($"Unable to Update {courseToChange.Course.Title} at {courseToChange.Id} state to Past Due in LINK_DRIVER_COURSE Table --- {ex}");
                Log.Error(ex);
                throw;
            }
        }
        //public int UpdateCoursesToPastDue(List<DriverLinkCourseModel> courses)
        //{
        //    try
        //    {
        //        StringBuilder sqlBuilder = new StringBuilder();
        //        var parameters = new List<Parameter>();

        //        for (int i = 0; i < courses.Count; i++)
        //        {
        //            sqlBuilder.Append($@"update LINK_DRIVER_COURSE set STATE = 'Past Due' where ID = @ID");

        //            parameters.Add(new Parameter($"@ID{i}", courses[i].Id));
        //            //parameters.Add(new Parameter($"@STATE{i}", "Past Due"));
        //        }

        //        var sql = sqlBuilder.ToString();
        //        var result = database.ExecNonQuery(sql, CommandType.Text, parameters.ToArray());
        //        return result;

        //    }
        //    catch (Exception ex)
        //    {
        //        Log.Error(ex);
        //        throw;
        //    }
        //}

        public int UpdateCoursesToComplete(DriverLinkCourseModel course)
        {
            Log.MethodStart();

            try
            {
                string sql = @"update LINK_DRIVER_COURSE set STATE = @STATE, COMPLETED_DATETIME = @COMPLETED_DATETIME where ID = @ID";

                List <Parameter> parameters = new List <Parameter>
                {
                    new Parameter("@ID", course.Id),
                    new Parameter("@STATE", "Complete"),
                    new Parameter("@COMPLETED_DATETIME", DateTime.UtcNow.ToLocalTime())
                };

                return(database.ExecNonQuery(sql, CommandType.Text, parameters));
            }
            catch (Exception ex)
            {
                Log.Info($"Unable to Update {course.Course.Title} for {course.Driver.DriverId} to Completed state in LINK_DRIVER_COURSE Table --- {ex}");
                Log.Error(ex);
                throw;
            }
        }
 public DriverLinkCourseModel ChangeStateToComplete(DriverLinkCourseModel course)
 {
     linkDriverCourseAdapter.UpdateCoursesToComplete(course);
     return(course);
 }