private void ChangeTable_Click(object sender, EventArgs e) { ScheduleRepository scheduleRepository = new ScheduleRepository(); DataTableCollection data; using (var stream = File.Open(fileName, FileMode.Open, FileAccess.Read)) { using (var reader = ExcelReaderFactory.CreateReader(stream)) { DataSet result = reader.AsDataSet(); data = result.Tables; DataTable BakTable = data[0]; ScheduleParser.ParseScheduleFromExcel(data[0].Rows, practiceRepository, scheduleRepository, competenceRepository); } } practiceRepository.Save(); scheduleRepository.Save(); competenceRepository.Save(); }
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(); } } } } }
void IUnitOfWork.Save(AbstractDomainModel domainModel) { try { providerRegistration = (ProviderRegistration)domainModel; User user = null; Provider provider = null; ProviderPractice poviderPractice = new ProviderPractice(); Practice practice = null; user = userRepository.GetByName(providerRegistration.Name); if (user == null) { user = new User(); user.UserId = providerRegistration.Name; user.Password = CareHub.Core.Common.Encryption.Encrypt("#", providerRegistration.Password); user.UserRoleId = 1; user.Enable = true; user.Locked = false; user.LastLoginDate = DateTime.Now; } else { throw new Exception("User name already exist. Please login using the existing user name."); } provider = providerRepository.GetByName(providerRegistration.Name); if (provider == null) { provider = new Provider(); provider.UserId = providerRegistration.Name; provider.FirstName = providerRegistration.Name; provider.ScreenName = providerRegistration.Name; provider.GenderId = providerRegistration.Gender; provider.MobileNumber = providerRegistration.MobileNumber; provider.Email = providerRegistration.Email; provider.IsActive = true; provider.SignUpDate = DateTime.Now; } else { throw new Exception("Provider name already exist. Please use different provider name."); } practice = practiceRepository.GetByName(providerRegistration.ClinicName); if (practice == null) { practice = new Practice(); practice.Name = providerRegistration.ClinicName; practice.CountryId = providerRegistration.CountryId; practice.CityId = providerRegistration.CityId; practice.LocalityId = providerRegistration.LocalityId; practice.CreationDate = DateTime.Now; practice.Address = providerRegistration.ClinicAddress; } poviderPractice = new ProviderPractice(); poviderPractice.Provider = provider; poviderPractice.Practice = practice; userRepository.Save(user); providerRepository.Save(provider); practiceRepository.Save(practice); providerPracticeRepository.Save(poviderPractice); } catch (Exception ex) { throw ex; } }