コード例 #1
0
        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();
        }
コード例 #2
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();
                        }
                    }
                }
            }
        }
コード例 #3
0
        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;
            }
        }