public void SaveSchedule(PracticeSchedule schedule)
 {
     if (!DataBase.PracticeSchedule.Any(x => x == schedule))
     {
         DataBase.PracticeSchedule.Add(schedule);
     }
 }
 public PracticeSchedule Select(PracticeSchedule schedule)
 {
     return(DataBase.PracticeSchedule.FirstOrDefault(x => x == schedule));
 }
Exemple #3
0
        public static void ParseScheduleFromExcel(DataRowCollection rows, PracticeRepository practiceRepository, ScheduleRepository scheduleRepository, CompetenceRepository competenceRepository)
        {
            string practiceName    = "";
            string practiceSemestr = "";
            string educationYear   = "";

            foreach (DataRow row in rows)
            {
                PracticeSchedule schedule = new PracticeSchedule();
                Practice         practice = new Practice();
                if (row[0].ToString() == "")
                {
                    //break;
                }
                if (row[0].ToString().ToLower().Contains("практика"))
                {
                    practiceName = row[0].ToString().Split(".")[0];

                    practiceSemestr = row[0].ToString().ToLower().Split("семестр")[1].Replace(" ", "");
                }
                if (row[5].ToString().Contains("год"))
                {
                    educationYear = row[5].ToString().ToLower().Split("уч")[0].Replace(" ", "");
                }
                if (int.TryParse(row[0].ToString(), out int s))
                {
                    schedule.EducationYear = educationYear;
                    practice.Semestr       = practiceSemestr;
                    practice.Name          = practiceName;
                    practice.PracticeView  = row[6].ToString();
                    practice.PracticeType  = row[7].ToString();
                    practice.WeeksNumber   = int.Parse(row[8].ToString().Replace(" ", ""));

                    schedule.SchedulePage = "";
                    schedule.WeeksNumber  = practice.WeeksNumber;
                    schedule.GroupNumber  = row[1].ToString();
                    schedule.HeadFcs      = row[2].ToString();
                    schedule.Vector       = row[3].ToString();
                    string year = row[4].ToString().ToLower().Split("по")[1].Replace(" ", "").Split(".")[2].Split("г")[0];
                    schedule.StartDate = DateTime.ParseExact(row[4].ToString().ToLower().Split("с")[1].Split("по")[0].Replace(" ", "") + "." + year, "d.M.yyyy", null);
                    schedule.EndDate   = DateTime.ParseExact(row[4].ToString().ToLower().Split("по")[1].Replace(" ", "").Split("г")[0], "d.M.yyyy", null);
                    #region Hours
                    schedule.StudentsNumber = studentsViewModel.GetStudentsCountByGroup(schedule.GroupNumber);

                    schedule.ExamenHours = (float)Math.Round(0.35 * schedule.StudentsNumber, 2);
                    schedule.HoursClass  = 4;
                    if (practice.PracticeType.ToLower() == "концентрированная")
                    {
                        if (schedule.StudentsNumber > 15)
                        {
                            schedule.HoursSum = (float)Math.Round(2.5 * 6 * schedule.WeeksNumber, 2);
                        }
                        else
                        {
                            schedule.HoursSum = (schedule.StudentsNumber * schedule.WeeksNumber);
                        }
                    }
                    else
                    {
                        schedule.HoursSum = (2 * schedule.WeeksNumber) + schedule.ExamenHours;
                    }
                    schedule.HoursSRS = schedule.HoursSum - schedule.HoursClass - schedule.ExamenHours;

                    #endregion
                    practiceRepository.SavePractice(practice);
                    practiceRepository.Save();
                    schedule.PracticeId = practiceRepository.Select(practice).Id;
                    scheduleRepository.SaveSchedule(schedule);
                    scheduleRepository.Save();
                    foreach (var item in  row[5].ToString().Split("\n"))
                    {
                        Competence competence = new Competence();
                        competence.PracticeScheduleId = scheduleRepository.Select(schedule).Id;

                        competence.ThisCompetence = item;
                        if (competence.ThisCompetence != "")
                        {
                            competenceRepository.SaveCompetence(competence);
                            competenceRepository.Save();
                        }
                    }
                }
            }
        }