//ovdje ce prvo genrisati samostalne treninge, ostalo je isto za datume i id i program id,  jedino NOVINA: ime i prezime i id klijenta je 0
        private object PutTrainerTrainingsInOrder(List <ClientTrainingDTO> model, DateTime monday, DateTime sunday)
        {
            ClientTrainingDTO emptyTraining = new ClientTrainingDTO();

            for (int i = 0; i < NUMBER_OF_TRAINING_ROWS; i++)
            {
                trainingDescriptions[i] = new ClientTrainingDTO[7];
                for (int j = 0; j < NUMBER_OF_DAYS; j++)
                {
                    emptyTraining = (ClientTrainingDTO)getTrainingByIAndJ(i, j, true, monday, sunday);
                    emptyTraining.TrainingTypeId = 1; //samostalno
                    //budu nule:
                    //emptyTraining.ProgramId = 0;
                    // emptyTraining.Id = 0;
                    //popunjavanje podacima iz baze
                    if (model != null)
                    {
                        trainingDescriptions[i][j] = (ClientTrainingDTO)(model.Where((m) => predicate(m, i))     // Func<TrainingDTO, int, bool> checkDoesMHasTimeLikeI = (m, ii) => predicate(m, ii);
                                                                         .FirstOrDefault(m => m.StartTime.DayOfWeek == getDayOfTheWeekForId(j)));
                    }
                    // inicijalizacija niza odgovarajucim elementom
                    if (trainingDescriptions[i][j] == null)
                    {
                        trainingDescriptions[i][j] = emptyTraining;
                    }
                }
            }
            return(trainingDescriptions);
        }
        public List <ClientTrainingDTO> getTrainerTrainingsInPickedWeek(DateTime Monday)
        {
            List <ClientTrainingDTO> trainings;
            var    training_type = 2;// todo Utility.TrainerTrainingType;
            string queryString   =
                "SELECT t.id as id, t.program_id as program_id, t.training_type_id as training_type_id, t.start_time, t.end_time, t.description as description, c.id as client_id, c.first_name as first_name, c.last_name as last_name  FROM training t " +
                "JOIN program p ON p.id=program_id " +
                "JOIN client c ON c.id=p.client_id " +
                " WHERE  @training_type = training_type_id AND" +
                " t.start_time between @monday and @sunday";


            using (SqlConnection connection = EstablishingConnection.GetConnection())
            {
                connection.Open();
                using (SqlCommand command = new SqlCommand(queryString, connection))
                {
                    command.Parameters.AddWithValue("@training_type", training_type);

                    var monday = Monday.Date;
                    var sunday = Monday.AddDays(6);
                    command.Parameters.AddWithValue("@monday", monday);
                    command.Parameters.AddWithValue("@sunday", sunday);

                    SqlDataReader reader = command.ExecuteReader();
                    trainings = new List <ClientTrainingDTO>();

                    while (reader.Read())
                    {
                        ClientTrainingDTO training = new ClientTrainingDTO
                        {
                            Id             = (int)reader["id"], //training id
                            ProgramId      = (int)reader["program_id"],
                            TrainingTypeId = (int)reader["training_type_id"],
                            StartTime      = Convert.ToDateTime(reader["start_time"]),
                            EndTime        = Convert.ToDateTime(reader["end_time"]),
                            Description    = (string)reader["description"],

                            ClientId  = (string)reader["client_id"],
                            FirstName = (string)reader["first_name"],
                            LastName  = (string)reader["last_name"]
                        };
                        trainings.Add(training);
                    }
                    connection.Close();
                }
                return(trainings);
            }
        }
        //OK
        private object getTrainingByIAndJ(int i, int j, bool isItClientTraining, DateTime monday, DateTime sunday)
        {
            var training = new TrainingDTO();

            if (isItClientTraining)
            {
                training = new ClientTrainingDTO();
            }
            DateTime dateByJ = getDayOfTheWeekById(j);

            if (i == 0)
            {
                training.StartTime = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 8, 0, 0);
                training.EndTime   = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 9, 0, 0);
            }
            else if (i == 1)
            {
                training.StartTime = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 9, 0, 0);
                training.EndTime   = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 10, 0, 0);
            }
            else if (i == 2)
            {
                training.StartTime = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 10, 0, 0);
                training.EndTime   = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 11, 0, 0);
            }
            else if (i == 3)
            {
                training.StartTime = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 11, 0, 0);
                training.EndTime   = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 12, 0, 0);
            }
            else if (i == 4)
            {
                training.StartTime = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 12, 0, 0);
                training.EndTime   = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 13, 0, 0);
            }
            else if (i == 5)
            {
                training.StartTime = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 13, 0, 0);
                training.EndTime   = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 14, 0, 0);
            }
            else if (i == 6)
            {
                training.StartTime = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 14, 0, 0);
                training.EndTime   = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 15, 0, 0);
            }
            else if (i == 7)
            {
                training.StartTime = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 15, 0, 0);
                training.EndTime   = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 16, 0, 0);
            }
            else if (i == 8)
            {
                training.StartTime = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 16, 0, 0);
                training.EndTime   = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 17, 0, 0);
            }
            else if (i == 9)
            {
                training.StartTime = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 17, 0, 0);
                training.EndTime   = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 18, 0, 0);
            }
            else if (i == 10)
            {
                training.StartTime = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 18, 0, 0);
                training.EndTime   = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 19, 0, 0);
            }
            else if (i == 11)
            {
                training.StartTime = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 19, 0, 0);
                training.EndTime   = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 20, 0, 0);
            }
            else if (i == 12)
            {
                training.StartTime = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 20, 0, 0);
                training.EndTime   = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 21, 0, 0);
            }
            else
            {
                training.StartTime = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 21, 0, 0);
                training.EndTime   = Utility.ChangeTime(getDayOfTheWeekByIdAndGetDateByWeek(j, monday, sunday), 22, 0, 0);
            }
            return(training);
        }