/// <summary>
        /// Creates the training calendar view.
        /// </summary>
        /// <param name="traininingCalendarView">The trainining calendar view.</param>
        /// <param name="companyCollection">The company collection.</param>
        /// <param name="trainingCollection">The training collection.</param>
        /// <param name="trainingStatusCollection">The training status collection.</param>
        /// <param name="message">The message.</param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException">
        /// companyCollection
        /// or
        /// trainingCollection
        /// or
        /// trainingStatusCollection
        /// </exception>
        public ITraininingCalendarView CreateTrainingCalendarView(ITraininingCalendarView traininingCalendarView, IList <ICompanyDetail> companyCollection, IList <ITraining> trainingCollection, IList <ITrainingStatus> trainingStatusCollection, string message)
        {
            if (companyCollection == null)
            {
                throw new ArgumentNullException(nameof(companyCollection));
            }
            if (trainingCollection == null)
            {
                throw new ArgumentNullException(nameof(trainingCollection));
            }
            if (trainingStatusCollection == null)
            {
                throw new ArgumentNullException(nameof(trainingStatusCollection));
            }

            var companyDDL        = GetDropDownList.CompanyListItems(companyCollection, traininingCalendarView.CompanyId);
            var trainingDDL       = GetDropDownList.TrainingListItems(trainingCollection, traininingCalendarView.TrainingId);
            var trainingStatusDDL = GetDropDownList.TrainingStatusListItems(trainingStatusCollection, traininingCalendarView.TrainingStatusId);

            traininingCalendarView.CompanyDropDown        = companyDDL;
            traininingCalendarView.TrainingDropDown       = trainingDDL;
            traininingCalendarView.TrainingStatusDropDown = trainingStatusDDL;
            traininingCalendarView.ProcessingMessage      = message;

            return(traininingCalendarView);
        }
        /// <summary>
        /// Creates the edit training calendar view.
        /// </summary>
        /// <param name="trainingCalendar">The training calendar.</param>
        /// <param name="companyCollection">The company collection.</param>
        /// <param name="trainingCollection">The training collection.</param>
        /// <param name="trainingStatusCollection">The training status collection.</param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException">
        /// companyCollection
        /// or
        /// trainingCollection
        /// or
        /// trainingStatusCollection
        /// </exception>
        public ITraininingCalendarView CreateEditTrainingCalendarView(ITrainingCalendar trainingCalendar, IList <ICompanyDetail> companyCollection, IList <ITraining> trainingCollection, IList <ITrainingStatus> trainingStatusCollection)
        {
            if (companyCollection == null)
            {
                throw new ArgumentNullException(nameof(companyCollection));
            }
            if (trainingCollection == null)
            {
                throw new ArgumentNullException(nameof(trainingCollection));
            }
            if (trainingStatusCollection == null)
            {
                throw new ArgumentNullException(nameof(trainingStatusCollection));
            }

            var companyDDL        = GetDropDownList.CompanyListItems(companyCollection, trainingCalendar.CompanyId);
            var trainingDDL       = GetDropDownList.TrainingListItems(trainingCollection, trainingCalendar.TrainingId);
            var trainingStatusDDL = GetDropDownList.TrainingStatusListItems(trainingStatusCollection, trainingCalendar.TrainingStatusId);

            var result = new TrainingCalendarView
            {
                CompanyDropDown        = companyDDL,
                TrainingDropDown       = trainingDDL,
                TrainingStatusDropDown = trainingStatusDDL,
                CompanyId          = trainingCalendar.CompanyId,
                TrainingId         = trainingCalendar.TrainingId,
                TrainingStatusId   = trainingCalendar.TrainingStatusId,
                Location           = trainingCalendar.Location,
                DeliveryEndDate    = trainingCalendar.DeliveryEndDate,
                DeliveryStartDate  = trainingCalendar.DeliveryStartDate,
                TrainingCalenderId = trainingCalendar.TrainingCalenderId,
            };

            return(result);
        }
        /// <summary>
        /// Creates the training calendar view.
        /// </summary>
        /// <param name="companyCollection">The company collection.</param>
        /// <param name="trainingCollection">The training collection.</param>
        /// <param name="trainingStatusCollection">The training status collection.</param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException">
        /// companyCollection
        /// or
        /// trainingCollection
        /// or
        /// trainingStatusCollection
        /// </exception>
        public ITraininingCalendarView CreateTrainingCalendarView(int companyId, IList <ITraining> trainingCollection, IList <ITrainingStatus> trainingStatusCollection)
        {
            if (trainingCollection == null)
            {
                throw new ArgumentNullException(nameof(trainingCollection));
            }
            if (trainingStatusCollection == null)
            {
                throw new ArgumentNullException(nameof(trainingStatusCollection));
            }

            var trainingDDL       = GetDropDownList.TrainingListItems(trainingCollection, -1);
            var trainingStatusDDL = GetDropDownList.TrainingStatusListItems(trainingStatusCollection, -1);

            var result = new TrainingCalendarView
            {
                TrainingStatusDropDown = trainingStatusDDL,
                TrainingDropDown       = trainingDDL,
                CompanyId         = companyId,
                ProcessingMessage = string.Empty,
            };

            return(result);
        }