예제 #1
0
        private void PostTextDeserialization(string fileWay)
        {
            if (!File.Exists(fileWay))
            {
                return;
            }
            TmpText.Clear();
            Sem.WaitOne();
            using (StreamWriter sw = new StreamWriter(pathLog, true, System.Text.Encoding.Default))
            {
                sw.WriteLine("[" + DateTime.Now.ToString() + "] Началась работа метода считывающего текст из файла.");
            }
            Sem.Release();
            DataContractJsonSerializer jsonFormatter = new DataContractJsonSerializer(typeof(PostText[]));

            using (FileStream stream = new FileStream(fileWay, FileMode.Open))
            {
                PostText[] p = (PostText[])jsonFormatter.ReadObject(stream);
                TmpText = p.ToList <PostText>();
            }
            Sem.WaitOne();
            using (StreamWriter sw = new StreamWriter(pathLog, true, System.Text.Encoding.Default))
            {
                sw.WriteLine("[" + DateTime.Now.ToString() + "] Метод считал текст из файла.");
            }
            Sem.Release();
            AddText();
        }
예제 #2
0
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        private void AddPicture()
        {
            if (!TmpPicture.Any())
            {
                return;
            }
            List <PostPictures> posts = TmpPicture;

            Sem.WaitOne();
            using (StreamWriter sw = new StreamWriter(pathLog, true, System.Text.Encoding.Default))
            {
                sw.WriteLine("[" + DateTime.Now.ToString() + "] Началась работа метода записи картинок в БД.");
            }
            Sem.Release();
            Models.MyDBEntities1       db    = new Models.MyDBEntities1();
            List <Models.TablePicture> table = (from t in db.TablePicture select t).ToList();

            int count = db.TablePicture.Count();

            for (int i = 0; i < count; i++)
            {
                Models.TablePicture tableItem = (from t in db.TablePicture select t).First();
                db.TablePicture.Remove(tableItem);
                db.SaveChanges();
            }
            Sem.WaitOne();
            using (StreamWriter sw = new StreamWriter(pathLog, true, System.Text.Encoding.Default))
            {
                sw.WriteLine("[" + DateTime.Now.ToString() + "] Очистка картинок в БД выполнена.");
            }
            Sem.Release();

            int id = 0;

            foreach (PostPictures item in posts)
            {
                List <string> pictures = item.PictureURLs.ToList();
                foreach (string p in pictures)
                {
                    Models.TablePicture t1 = new Models.TablePicture()
                    {
                        Picture = p,
                        Post_Id = item.ID,
                        Id      = id
                    };
                    db.TablePicture.Add(t1);
                    id++;
                    db.SaveChanges();
                }
            }
            db.Dispose();
            Sem.WaitOne();
            using (StreamWriter sw = new StreamWriter(pathLog, true, System.Text.Encoding.Default))
            {
                sw.WriteLine("[" + DateTime.Now.ToString() + "] Метод закончил загружать картинки в БД.");
            }
            Sem.Release();
        }
예제 #3
0
 internal QueryThread(Sem sem, string host, int type, string scope, IPAddress
                      svr) : base("JCIFS-QueryThread: " + host)
 {
     this.Sem   = sem;
     this.Host  = host;
     this.Type  = type;
     this.Scope = scope;
     this.Svr   = svr;
 }
예제 #4
0
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        private void AddText()
        {
            if (!TmpText.Any())
            {
                return;
            }
            List <PostText> posts = TmpText;

            Sem.WaitOne();
            using (StreamWriter sw = new StreamWriter(pathLog, true, System.Text.Encoding.Default))
            {
                sw.WriteLine("[" + DateTime.Now.ToString() + "] Началась работа метода записи текста в БД.");
            }
            Sem.Release();
            Models.MyDBEntities1    db    = new Models.MyDBEntities1();
            List <Models.TableText> table = (from t in db.TableText select t).ToList();

            int count = db.TableText.Count();

            for (int i = 0; i < count; i++)
            {
                Models.TableText tableItem = (from t in db.TableText select t).First();
                db.TableText.Remove(tableItem);
                db.SaveChanges();
            }
            Sem.WaitOne();
            using (StreamWriter sw = new StreamWriter(pathLog, true, System.Text.Encoding.Default))
            {
                sw.WriteLine("[" + DateTime.Now.ToString() + "] Очистка текста в БД выполнена.");
            }
            Sem.Release();

            int id = 0;

            foreach (PostText item in posts)
            {
                Models.TableText t1 = new Models.TableText()
                {
                    Text    = item.Text,
                    Post_Id = item.ID,
                    Id      = id
                };
                db.TableText.Add(t1);
                db.SaveChanges();
                id++;
            }
            db.Dispose();
            Sem.WaitOne();
            using (StreamWriter sw = new StreamWriter(pathLog, true, System.Text.Encoding.Default))
            {
                sw.WriteLine("[" + DateTime.Now.ToString() + "] Метод закончил загружать текст в БД.");
            }
            Sem.Release();
        }
예제 #5
0
        static void Main(string[] args)
        {
            //int[] iArr = Array.ConvertAll(
            //            (Console.ReadLine()).Split(','),
            //            i => int.Parse(i));
            Console.Write("정수 입력 : ");

            int num = int.Parse(Console.ReadLine());

            Sem pow = a => a * a;

            Console.WriteLine("{0}의 제곱근 : {1}", num, pow(num));
        }
예제 #6
0
        /// <exception cref="UnknownHostException"></exception>
        internal static NbtAddress[] LookupServerOrWorkgroup(string name, IPAddress svr)
        {
            Sem         sem  = new Sem(2);
            int         type = NbtAddress.IsWins(svr) ? unchecked (0x1b) : unchecked (0x1d);
            QueryThread q1X  = new QueryThread(sem, name, type, null, svr);
            QueryThread q20  = new QueryThread(sem, name, unchecked (0x20), null, svr);

            q1X.SetDaemon(true);
            q20.SetDaemon(true);
            try
            {
                lock (sem)
                {
                    q1X.Start();
                    q20.Start();

                    while (sem.Count > 0 && q1X.Ans == null && q20.Ans == null)
                    {
                        Runtime.Wait(sem);
                    }
                }
            }
            catch (Exception)
            {
                throw new UnknownHostException(name);
            }
            if (q1X.Ans != null)
            {
                return(q1X.Ans);
            }
            if (q20.Ans != null)
            {
                return(q20.Ans);
            }
            throw q1X.Uhe;
        }
예제 #7
0
        static void Main()
        {
            Join j = Join.Create();
            j.Initialize(out wait);
            j.Initialize(out m1);
            j.Initialize(out m2);
            j.Initialize(out done);

            j.When(m1).Do(delegate {
            for(int i=0;i<max;i++) {
              s2.signal();
              s1.wait();
              if(i%1000 == 0) {Console.Write(1);}
            }
            done();});

            j.When(m2).Do(delegate{
            for(int i=0;i<max;i++) {
              s2.wait();
              s1.signal();
              if(i%1000 == 0) {Console.Write(2);}

            }
            done();
              } );
            j.When(wait).And(done).Do(delegate {});

            DateTime start, finish;

            Console.WriteLine("locking semaphores");
            s1=new LSem();
            s2=new LSem();
            start=DateTime.Now;
            m1();
            m2();
            wait(); wait();
            finish=DateTime.Now;
            Console.WriteLine(finish.Subtract(start));

            Console.WriteLine("polyphonic semaphores");
            s1=new PSem();
            s2=new PSem();
            start=DateTime.Now;
            m1();
            m2();
            wait(); wait();
            finish=DateTime.Now;
            Console.WriteLine(finish.Subtract(start));

            Console.WriteLine("direct interruption");
            t1 = new Thread(new ThreadStart(mt1));
            t2 = new Thread(new ThreadStart(mt2));
            start=DateTime.Now;
            t1.Start();
            t2.Start();
            wait(); wait();
            finish=DateTime.Now;
            Console.WriteLine(finish.Subtract(start));
        }
예제 #8
0
		/// <exception cref="UnknownHostException"></exception>
		internal static NbtAddress[] LookupServerOrWorkgroup(string name, IPAddress svr)
		{
			Sem sem = new Sem(2);
			int type = NbtAddress.IsWins(svr) ? unchecked(0x1b) : unchecked(0x1d);
			QueryThread q1X = new QueryThread(sem, name, type, null, svr
				);
			QueryThread q20 = new QueryThread(sem, name, unchecked(0x20), null, svr);
			q1X.SetDaemon(true);
			q20.SetDaemon(true);
			try
			{
				lock (sem)
				{
					q1X.Start();
					q20.Start();
					while (sem.Count > 0 && q1X.Ans == null && q20.Ans == null)
					{
						Runtime.Wait(sem);
					}
				}
			}
			catch (Exception)
			{
				throw new UnknownHostException(name);
			}
			if (q1X.Ans != null)
			{
				return q1X.Ans;
			}
		    if (q20.Ans != null)
		    {
		        return q20.Ans;
		    }
		    throw q1X.Uhe;
		}
예제 #9
0
			internal QueryThread(Sem sem, string host, int type, string scope, IPAddress
				 svr) : base("JCIFS-QueryThread: " + host)
			{
				this.Sem = sem;
				this.Host = host;
				this.Type = type;
				this.Scope = scope;
				this.Svr = svr;
			}
예제 #10
0
        private void AnalysisDataExcel()
        {
            /* Открываем файл Excel и считываем информацию с первого листа "Титул" */
            int NS;

            excel.Application ExcelApp = new excel.Application(); // создаем объект excel;
            ExcelApp.Visible     = false;                         // показывает или скрывает файл Excel;
            openFileExcel.Filter = "Файлы Excel(*.xls)|*.xls|Excel(*.xls)|*.xls";
            Action action = () => { if (openFileExcel.ShowDialog() == DialogResult.OK)
                                    {
                                        FileNaim = openFileExcel.FileName;
                                    }
            }; Invoke(action);                                                                                                                        // Запуск главного потока

            if (FileNaim == null)
            {
                return;
            }
            ExcelApp.Workbooks.Add(FileNaim);     // загружаем в excel файл с рабочей книгой
            Action action1 = () => { bt_selct_excel.Enabled = false; }; Invoke(action1);

            excel.Sheets    excelsheets;  // объявление переменных хранящих листы книги
            excel.Worksheet excelworksheet;
            excelsheets    = ExcelApp.Worksheets;
            excelworksheet = (excel.Worksheet)excelsheets.get_Item("Титул"); // обращение к листу по названию
            string Open1Sheet = excelworksheet.Cells[11, 3].Text;            // обращение к ячейкам книги

            for (int i = 20; i <= 50; i++)
            {
                string ST = excelworksheet.Cells[i, 13].Text;
                if (ST.IndexOf("стандарт") > 0)
                {
                    string Open2Sheet = excelworksheet.Cells[i, 18].Text;
                    PL.Standart = Open2Sheet.Trim();
                    if (PL.Standart != null && PL.Standart != "")
                    {
                        Action Progress = () => { RTB_ExcelLog.AppendText("Стандарт профиля загружен\n", Color.Green); }; Invoke(Progress);
                    }
                    else
                    {
                        Action Progress = () => { RTB_ExcelLog.AppendText("Стандарт профиля не найден!\n", Color.Red); }; Invoke(Progress);
                    }
                }
                string YR = excelworksheet.Cells[i, 13].Text;
                if (YR.IndexOf("подготовки") > 0)
                {
                    string Open2Sheet = excelworksheet.Cells[i, 18].Text;
                    PL.Year = Open2Sheet.Trim();
                    if (PL.Year == "")
                    {
                        string repeat = excelworksheet.Cells[i, 20].Text;
                        PL.Year = repeat;
                        PL.Year = repeat.Trim();
                    }
                    if (PL.Year != null && PL.Year != "")
                    {
                        Action Progress = () => { RTB_ExcelLog.AppendText("Год профиля загружен\n", Color.Green); }; Invoke(Progress);
                    }
                    else
                    {
                        Action Progress = () =>
                        { RTB_ExcelLog.AppendText("Год профиля не найден!\n", Color.Red); }; Invoke(Progress);
                    }
                }
            }
            PL.CreateList();

            NS = 3;
            int Flag = 1;

            for (int i = 1; i <= 5; i++)
            {
                string STR = excelworksheet.Cells[11, i].Text;
                if (STR.IndexOf("Направленность") > 0)
                {
                    NS   = i;
                    Flag = 0;
                    break;
                }
            }
            if (Flag == 0)
            {
                Open1Sheet = excelworksheet.Cells[11, NS].Text;
            }
            else
            {
                for (int i = 1; i <= 5; i++)
                {
                    string STR = excelworksheet.Cells[18, i].Text;
                    if (STR.IndexOf("Направленность") > 0)
                    {
                        NS   = i;
                        Flag = 0;
                        break;
                    }
                }
                if (Flag == 0)
                {
                    Open1Sheet = excelworksheet.Cells[18, NS].Text;
                }
            }
            if (Flag == 0)
            {
                int i1 = Open1Sheet.IndexOf("Направленность");


                string STRNapr = Open1Sheet.Substring(22, i1 - 24);
                int    i2      = Open1Sheet.IndexOf("\"");
                i1 = Open1Sheet.LastIndexOf("\"");
                string STRProf = Open1Sheet.Substring(i2 + 1, i1 - i2 - 1);
                ExcelApp.Visible = false;

                PL.Napr = STRNapr.Trim();

                if (PL.Napr != null && PL.Napr != "")
                {
                    Action Progress = () => { RTB_ExcelLog.AppendText("Направление профиля загружено\n", Color.Green); }; Invoke(Progress);
                }
                else
                {
                    Action Progress = () => { RTB_ExcelLog.AppendText("Направление профиля не найдено!\n", Color.Red); }; Invoke(Progress);
                }
                PL.Profile = STRProf.Trim();
                if (PL.Profile != null && PL.Profile != "")
                {
                    Action Progress = () => { RTB_ExcelLog.AppendText("Профиль загружен\n", Color.Green); }; Invoke(Progress);
                }
                else
                {
                    Action Progress = () => { RTB_ExcelLog.AppendText("Профиль не найден!\n", Color.Red); }; Invoke(Progress);
                }
                BD.Connect();     //проверка на дюблирование
                BD.command.CommandText = "SELECT Count([Профиль]![Код]) AS Выражение1 FROM Профиль WHERE (((Профиль.Название_профиля)='" + PL.Profile + "') AND ((Профиль.Год_профиля)='" + PL.Year + "'));";
                // int ertert = BD.command.ExecuteNonQuery();
                var prof_double = Convert.ToInt32(BD.command.ExecuteScalar());
                if (prof_double != 0)
                {
                    Action Progress = () => { MessageBox.Show("Выбранный вами профиль: " + PL.Profile + " " + PL.Year + " уже существует в базе данных, вернитесь в главное окно чтобы удалить и перезаписать данный профиль", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); }; Invoke(Progress);
                    return;
                }
            }
            int J;            // переменная номера столбца
            int SN       = 1; // переменная номера ячейки со словом "Виды"
            int FlagVids = 1; // переменная признак нахождения "Виды деятельности"

            for (J = 2; J <= 3; J++)
            {
                for (int i = 15; i <= 40; i++)
                {
                    string STR = excelworksheet.Cells[i, J].Text;
                    if (STR.IndexOf("Виды") >= 0)
                    {
                        SN       = i;
                        FlagVids = 0;
                        Action Progress = () => { RTB_ExcelLog.AppendText("Виды деятельности загружены\n", Color.Green); }; Invoke(Progress);
                        break;
                    }
                }
                if (FlagVids == 0)
                {
                    break;
                }
            }
            if (FlagVids == 0)
            {
                for (int i = SN + 1; i <= SN + 10; i++)
                {
                    string STR  = excelworksheet.Cells[i, J].Text;
                    string STR1 = excelworksheet.Cells[i, J - 1].Text;
                    if (STR1.IndexOf("+") >= 0)
                    {
                        PL.MyList(STR.Trim());
                    }
                }
            }



            /* Считывания информации с листа "Компетенции" */

            excelworksheet = (excel.Worksheet)excelsheets.get_Item("Компетенции");
            for (int a = 3; a <= 400; a++)
            {
                if (excelworksheet.Cells[a, 2].Text != "")
                {
                    string Compet = excelworksheet.Cells[a, 2].Text;
                    string Info   = excelworksheet.Cells[a, 4].Text;
                    PL._OriginalCompet(Compet.Trim());
                    PL._InfoCompet(Info.Trim());
                }
            }
            if (PL.OriginalCompet.Count != 0)
            {
                Action Progress = () => { RTB_ExcelLog.AppendText("Информация о компетенциях загружена\n", Color.Green); }; Invoke(Progress);
            }
            else
            {
                Action Progress = () => { RTB_ExcelLog.AppendText("Информация о компетенциях не найдена!\n", Color.Red); }; Invoke(Progress);
            }


            /* Считывания информации с листа "План" */

            excelworksheet = (excel.Worksheet)excelsheets.get_Item("План");
            string PlanSheet1 = excelworksheet.Cells[6, 3].Text;     // обращение к ячейкам книги "Список дисциплин"
            int    ND         = 0;

            PL.DistCount = 0;
            /////////////////////////////////////////////////////////////////////
            for (int d = 6; d <= 150; d++)
            {
                string stroch = excelworksheet.Cells[d, 1].Text;     // j - строчка ; i - столбец


                if (excelworksheet.Cells[d, 3].Font.Bold != true && stroch.IndexOf("+") >= 0 || excelworksheet.Cells[d, 3].Font.Bold != true && stroch.IndexOf("-") >= 0)
                {
                    PL.DistCount++;     // количество дисциплин
                }
            }
            ////////////////////////////////////////////////////////////////

            for (int j = 6; j <= 150; j++)
            {
                string STR1 = excelworksheet.Cells[j, 1].Text;     // j - строчка ; i - столбец


                if (excelworksheet.Cells[j, 3].Font.Bold != true && STR1.IndexOf("+") >= 0 || excelworksheet.Cells[j, 3].Font.Bold != true && STR1.IndexOf("-") >= 0)
                {
                    PLtime[ND].initStruct();     // объявление массива

                    for (int i = 4; i <= 175; i++)
                    {
                        string STR    = excelworksheet.Cells[j, 3].Text;
                        string _index = excelworksheet.Cells[j, 2].Text;
                        PLtime[ND].Naim  = STR;    // наименование
                        PLtime[ND].Index = _index; // индекс дисциплины



                        string PlanSheet2 = excelworksheet.Cells[3, i].Text; // читаем название шапки
                        PlanSheet2 = PlanSheet2.Replace(" ", "");
                        PlanSheet2 = PlanSheet2.Replace(".", "");            // удаляем все пробелы
                        PlanSheet2 = PlanSheet2.ToLower();                   // переводим в нижний регистор
                        int Sem;

                        switch (PlanSheet2)     // запись в структуру "Форма контроля"
                        {
                        case "экзамен":
                            if (excelworksheet.Cells[j, i].Text != "")
                            {
                                Sem = Int32.Parse(excelworksheet.Cells[j, i].Text);
                                if (Sem > 9)
                                {
                                    string CheckSem = Sem.ToString();
                                    char[] NumSem   = new char[CheckSem.Length];
                                    for (int z = 0; z < CheckSem.Length; z++)
                                    {
                                        NumSem[z] = CheckSem[z];
                                        string _CheckSem = NumSem[z].ToString();
                                        int    N         = Int32.Parse(_CheckSem);
                                        PLtime[ND]._Examen(N);
                                    }
                                }
                                else
                                {
                                    PLtime[ND]._Examen(Sem);
                                }
                            }
                            break;

                        case "зачет":
                            if (excelworksheet.Cells[j, i].Text != "")
                            {
                                Sem = Int32.Parse(excelworksheet.Cells[j, i].Text);
                                if (Sem > 9)
                                {
                                    string CheckSem = Sem.ToString();
                                    char[] NumSem   = new char[CheckSem.Length];
                                    for (int z = 0; z < CheckSem.Length; z++)
                                    {
                                        NumSem[z] = CheckSem[z];
                                        string _CheckSem = NumSem[z].ToString();
                                        int    N         = Int32.Parse(_CheckSem);
                                        PLtime[ND]._Zachet(N);
                                    }
                                }
                                else
                                {
                                    PLtime[ND]._Zachet(Sem);
                                }
                            }
                            break;

                        case "зачетсоц":
                            if (excelworksheet.Cells[j, i].Text != "")
                            {
                                Sem = Int32.Parse(excelworksheet.Cells[j, i].Text);
                                if (Sem > 9)
                                {
                                    string CheckSem = Sem.ToString();
                                    char[] NumSem   = new char[CheckSem.Length];
                                    for (int z = 0; z < CheckSem.Length; z++)
                                    {
                                        NumSem[z] = CheckSem[z];
                                        string _CheckSem = NumSem[z].ToString();
                                        int    N         = Int32.Parse(_CheckSem);
                                        PLtime[ND]._Dif_Zachet(N);
                                    }
                                }
                                else
                                {
                                    PLtime[ND]._Dif_Zachet(Sem);
                                }
                            }
                            break;

                        case "кр":
                            if (excelworksheet.Cells[j, i].Text != "")
                            {
                                Sem = Int32.Parse(excelworksheet.Cells[j, i].Text);
                                if (Sem > 9)
                                {
                                    string CheckSem = Sem.ToString();
                                    char[] NumSem   = new char[CheckSem.Length];
                                    for (int z = 0; z < CheckSem.Length; z++)
                                    {
                                        NumSem[z] = CheckSem[z];
                                        string _CheckSem = NumSem[z].ToString();
                                        int    N         = Int32.Parse(_CheckSem);
                                        PLtime[ND].KR = Sem;
                                    }
                                }
                                else
                                {
                                    PLtime[ND].KR = Sem;
                                }
                            }
                            break;
                        }

                        switch (PlanSheet2)     // запись "Итого часов"
                        {
                        case "факт":
                            if (excelworksheet.Cells[j, i].Text != "")
                            {
                                PLtime[ND].Fact = Int32.Parse(excelworksheet.Cells[j, i].Text);
                            }
                            break;

                        case "поплану":
                            if (excelworksheet.Cells[j, i].Text != "")
                            {
                                PLtime[ND].AtPlan = Int32.Parse(excelworksheet.Cells[j, i].Text);
                            }
                            break;

                        case "ср":
                            if (excelworksheet.Cells[j, i].Text != "" && PLtime[ND].SR == 0)
                            {
                                PLtime[ND].SR = Int32.Parse(excelworksheet.Cells[j, i].Text);
                            }
                            break;

                        case "ик":
                            if (excelworksheet.Cells[j, i].Text != "")
                            {
                                PLtime[ND].IK = Int32.Parse(excelworksheet.Cells[j, i].Text);
                            }
                            break;

                        case "катт":
                            if (excelworksheet.Cells[j, i].Text != "")
                            {
                                PLtime[ND].KaTT = Int32.Parse(excelworksheet.Cells[j, i].Text);
                            }
                            break;

                        case "кэ":
                            if (excelworksheet.Cells[j, i].Text != "")
                            {
                                PLtime[ND].KE = Int32.Parse(excelworksheet.Cells[j, i].Text);
                            }
                            break;

                        case "каттэкз":
                            if (excelworksheet.Cells[j, i].Text != "")
                            {
                                PLtime[ND].KattEx = Int32.Parse(excelworksheet.Cells[j, i].Text);
                            }
                            break;

                        case "контактчасы":
                            if (excelworksheet.Cells[j, i].Text != "")
                            {
                                PLtime[ND].ContactHours = Int32.Parse(excelworksheet.Cells[j, i].Text);
                            }
                            break;

                        case "ауд":
                            if (excelworksheet.Cells[j, i].Text != "")
                            {
                                PLtime[ND].Aud = Int32.Parse(excelworksheet.Cells[j, i].Text);
                            }
                            break;

                        case "контроль":
                            if (excelworksheet.Cells[j, i].Text != "")
                            {
                                PLtime[ND].Contr = Int32.Parse(excelworksheet.Cells[j, i].Text);
                            }
                            break;

                        case "интерчасы":
                            if (excelworksheet.Cells[j, i].Text != "")
                            {
                                PLtime[ND].InterHours = Int32.Parse(excelworksheet.Cells[j, i].Text);
                            }
                            break;
                        }
                        string NomerSemestra = excelworksheet.Cells[2, i].Text;

                        NomerSemestra.Trim();


                        if (NomerSemestra.IndexOf("Сем") >= 0)
                        {
                            string LastSymbol = NomerSemestra.Substring(NomerSemestra.Length - 1);     // номер семестра в шапке
                            PL.LS = Int32.Parse(LastSymbol);
                        }


                        if (PL.LS > 0)
                        {
                            switch (PlanSheet2)
                            {
                            case "зет":
                            case "зе":
                                if (excelworksheet.Cells[j, i].Text != "")
                                {
                                    int Kek = Int32.Parse(excelworksheet.Cells[j, i].Text);
                                    PLtime[ND]._ZET(PL.LS, Kek);
                                }
                                break;

                            case "итого":
                                if (excelworksheet.Cells[j, i].Text != "")
                                {
                                    int Kek = Int32.Parse(excelworksheet.Cells[j, i].Text);
                                    PLtime[ND]._Itogo(PL.LS, Kek);
                                }
                                break;

                            case "лек":
                                if (excelworksheet.Cells[j, i].Text != "")
                                {
                                    int Kek = Int32.Parse(excelworksheet.Cells[j, i].Text);
                                    PLtime[ND]._Lekc(PL.LS, Kek);
                                }
                                break;

                            case "лекинтер":
                                if (excelworksheet.Cells[j, i].Text != "")
                                {
                                    int Kek = Int32.Parse(excelworksheet.Cells[j, i].Text);
                                    PLtime[ND]._LekcInter(PL.LS, Kek);
                                }
                                break;

                            case "лаб":
                                if (excelworksheet.Cells[j, i].Text != "")
                                {
                                    int Kek = Int32.Parse(excelworksheet.Cells[j, i].Text);
                                    PLtime[ND]._Lab(PL.LS, Kek);
                                }
                                break;

                            case "лабинтер":
                                if (excelworksheet.Cells[j, i].Text != "")
                                {
                                    int Kek = Int32.Parse(excelworksheet.Cells[j, i].Text);
                                    PLtime[ND]._LabInter(PL.LS, Kek);
                                }
                                break;

                            case "пр":
                                if (excelworksheet.Cells[j, i].Text != "")
                                {
                                    int Kek = Int32.Parse(excelworksheet.Cells[j, i].Text);
                                    PLtime[ND]._Practice(PL.LS, Kek);
                                }
                                break;

                            case "принтер":
                                if (excelworksheet.Cells[j, i].Text != "")
                                {
                                    int Kek = Int32.Parse(excelworksheet.Cells[j, i].Text);
                                    PLtime[ND]._PractInter(PL.LS, Kek);
                                }
                                break;

                            case "элект":
                                if (excelworksheet.Cells[j, i].Text != "")
                                {
                                    int Kek = Int32.Parse(excelworksheet.Cells[j, i].Text);
                                    PLtime[ND]._Elect(PL.LS, Kek);
                                }
                                break;

                            case "элек":
                                if (excelworksheet.Cells[j, i].Text != "")
                                {
                                    int Kek = Int32.Parse(excelworksheet.Cells[j, i].Text);
                                    PLtime[ND]._Elect(PL.LS, Kek);
                                }
                                break;

                            case "ср":
                                if (excelworksheet.Cells[j, i].Text != "")
                                {
                                    int Kek = Int32.Parse(excelworksheet.Cells[j, i].Text);
                                    PLtime[ND]._SR1(PL.LS, Kek);
                                }
                                break;

                            case "ик":
                                if (excelworksheet.Cells[j, i].Text != "")
                                {
                                    int Kek = Int32.Parse(excelworksheet.Cells[j, i].Text);
                                    PLtime[ND]._ik(PL.LS, Kek);
                                }
                                break;

                            case "катт":
                                if (excelworksheet.Cells[j, i].Text != "")
                                {
                                    int Kek = Int32.Parse(excelworksheet.Cells[j, i].Text);
                                    PLtime[ND]._katt(PL.LS, Kek);
                                }
                                break;

                            case "каттэкз":
                                if (excelworksheet.Cells[j, i].Text != "")
                                {
                                    int Kek = Int32.Parse(excelworksheet.Cells[j, i].Text);
                                    PLtime[ND]._kattex(PL.LS, Kek);
                                }
                                break;

                            case "кэ":
                                if (excelworksheet.Cells[j, i].Text != "")
                                {
                                    int Kek = Int32.Parse(excelworksheet.Cells[j, i].Text);
                                    PLtime[ND]._ke(PL.LS, Kek);
                                }
                                break;

                            case "часыконт":
                            case "контроль":
                                if (excelworksheet.Cells[j, i].Text != "")
                                {
                                    int Kek = Int32.Parse(excelworksheet.Cells[j, i].Text);
                                    PLtime[ND]._HoursCont(PL.LS, Kek);
                                }
                                break;

                            case "часыконтэлектр":
                            case "контрэлектр":
                                if (excelworksheet.Cells[j, i].Text != "")
                                {
                                    int Kek = Int32.Parse(excelworksheet.Cells[j, i].Text);
                                    PLtime[ND]._HoursContElect(PL.LS, Kek);
                                }
                                break;
                            }
                        }

                        if (PlanSheet2.IndexOf("компетенции") >= 0)     // Код компетенции
                        {
                            string   Compet  = excelworksheet.Cells[j, i].Text;
                            string[] DivComp = Compet.Split(new char[] { ' ', ';' }, StringSplitOptions.RemoveEmptyEntries);
                            foreach (string s in DivComp)
                            {
                                PLtime[ND].AddCompet(s);
                            }
                        }
                        if (PlanSheet2.LastIndexOf("наименование") >= 0)     // Кафедра
                        {
                            string KF = excelworksheet.Cells[j, i].Text;
                            PLtime[ND].Kafedra = KF;
                        }
                    }

                    // Процесс загрузки
                    if (PL.DistCount > 0)
                    {
                        Action Progress = () => { RTB_ExcelLog.AppendText("Загрузка дисциплин прогресс " + PLtime[ND].Naim.ToString() + " загружено\n", Color.Green); }; Invoke(Progress);
                    }
                    /* Обработка возможных ошибок*/
                    if (PLtime[ND].Naim == "")
                    {
                        Action Progress = () => { RTB_ExcelLog.AppendText("Наименование дисциплины не найдено!\n", Color.Red); }; Invoke(Progress);
                    }
                    if (PLtime[ND].Index == "")
                    {
                        Action Progress = () => { RTB_ExcelLog.AppendText("Индекс не найден!\n", Color.Red); }; Invoke(Progress);
                    }
                    if (PLtime[ND].Compet.Count == 0)
                    {
                        Action Progress = () => { RTB_ExcelLog.AppendText("Компетенции не найдены!\n", Color.Red); }; Invoke(Progress);
                    }
                    if (PLtime[ND].Kafedra == "")
                    {
                        Action Progress = () => { RTB_ExcelLog.AppendText("Кафедра не найдена!\n", Color.Red); }; Invoke(Progress);
                    }

                    PLtime[ND]._InterHousInSem();
                    // счетчик дисциплин
                    ND++;
                    PL.LS = 0;
                }
                Action action2 = () => { PB_Excel.Maximum = PL.DistCount; PB_Excel.Value = ND; }; Invoke(action2);
            }

            // Если дисциплины не найдены, появляется информация об ошибке
            if (PL.DistCount == 0)
            {
                Action Progress = () => { RTB_ExcelLog.AppendText("Дисциплины не найдены!\n", Color.Red); }; Invoke(Progress);
            }


            StartEndDist();      // определения начало и конца дисцип
            BeforeAndAfterDis(); // анализ дисц ПОСЛЕ и ДО
            PL.DistCount = 0;
            CloseProcess();

            /* Заполнение инфррмации в БАЗУ ДАННЫХ */
            Action          AddBD   = () => { RTB_ExcelLog.AppendText("Заполняем Базу Данных \n", Color.Blue); }; Invoke(AddBD);
            OleDbConnection con     = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" + @"Data Source=" + Application.StartupPath + "/baza_dan_proekt_kh.accdb");
            OleDbCommand    command = new OleDbCommand("INSERT INTO Направление_подготовки (Индекс, Название, Станд) VALUES ('" + PL.Profile + "','" + PL.Napr + "','" + PL.Standart + "');", con);

            con.Open();
            OleDbDataReader reader;

            // запись в таблицу профиль
            command.CommandText = "INSERT INTO Профиль (Название_профиля,Год_профиля) VALUES ('" + PL.Profile + "','" + PL.Year + "');";
            reader = command.ExecuteReader();
            reader.Close();
            // берем ID из профиля
            command.CommandText = "SELECT Профиль.Код FROM Профиль WHERE (((Профиль.[Название_профиля])='" + PL.Profile + "')); ";
            var code_profile = command.ExecuteScalar();

            reader.Close();
            command.CommandText = "INSERT INTO Направление_подготовки (Код_профиля, Направление_подготовки, Станд) VALUES ('" + code_profile + "','" + PL.Napr + "','" + PL.Standart + "');";
            reader = command.ExecuteReader();
            reader.Close();
            // получаем id из Направление_подготовки для записи в Дисциплины_профиля
            command.CommandText = "SELECT Направление_подготовки.Код FROM Направление_подготовки WHERE (((Направление_подготовки.[Направление_подготовки])='" + PL.Napr + "') AND ((Направление_подготовки.[Код_профиля])=" + code_profile + ") AND ((Направление_подготовки.[Станд])='" + PL.Standart + "')); ";
            var code = command.ExecuteScalar();

            reader.Close();
            //компетенции с листа компетенции
            for (int y = 0; y <= PL.OriginalCompet.Count - 1; y++)
            {
                command.CommandText = "INSERT INTO Компетенции (Код_направления,Содержание,Компетенция) VALUES ('" + code + "','" + PL.InfoCompet[y] + "','" + PL.OriginalCompet[y] + "');";
                reader = command.ExecuteReader();
                reader.Close();
            }


            for (int i = 0; i <= PLtime.Length - 1; i++)
            {
                if (PLtime[i].Naim != null)
                {
                    command.CommandText = "INSERT INTO Дисциплины_профиля (Код_направления_подготовки,Дисциплины,Индекс,Факт_по_зет,По_плану,Контакт_часы,Аудиторные,Самостоятельная_работа,Контроль,Элект_часы,Интер_часы,Код_профиля,Закрепленная_кафедра,ИК,КаТТ,КЭ,Каттэкз) VALUES ('" + code + "','" + PLtime[i].Naim + "','" + PLtime[i].Index + "','" + PLtime[i].Fact + "','" + PLtime[i].AtPlan + "','" + PLtime[i].ContactHours + "','" + PLtime[i].Aud + "','" + PLtime[i].SR + "','" + PLtime[i].Contr + "','" + PLtime[i].ElectHours + "','" + PLtime[i].InterHours + "'," + code_profile + ",'" + PLtime[i].Kafedra + "'," + PLtime[i].IK + "," + PLtime[i].KaTT + "," + PLtime[i].KE + "," + PLtime[i].KattEx + ");";
                    reader = command.ExecuteReader();
                    reader.Close();
                    //получаем ID дисциплины которую записали
                    command.CommandText = "SELECT Дисциплины_профиля.Код FROM Дисциплины_профиля WHERE (((Дисциплины_профиля.Код_направления_подготовки)=" + code + ") AND ((Дисциплины_профиля.Дисциплины)='" + PLtime[i].Naim + "'));";
                    var code_distip = command.ExecuteScalar();
                    reader.Close();
                    //  подготовка к записи в таблицу компетенции_дисциплины
                    for (int y = 0; y <= PLtime[i].Compet.Count - 1; y++)
                    {      //берем ID из таблицы компетенции для помещения в таблицу  компетенции_дисциплины
                        command.CommandText = "SELECT Компетенции.Код, Компетенции.Компетенция FROM Компетенции WHERE (((Компетенции.Компетенция)='" + PLtime[i].Compet[y] + "')); ";
                        var code_komped = command.ExecuteScalar();
                        reader.Close();
                        command.CommandText = "INSERT INTO Компетенции_дисциплины (Код_компетенции,Код_дисциплины) VALUES (" + code_komped + "," + code_distip + ");";
                        reader = command.ExecuteReader();
                        reader.Close();
                    }
                    //дисциплины до
                    for (int y1 = 0; y1 <= PLtime[i].PreDis.Count - 1; y1++)
                    {
                        //
                        command.CommandText = "INSERT INTO Дисциплина_до (Код_дисциплины,Дисциплина_до) VALUES ('" + code_distip + "','" + PLtime[i].PreDis[y1] + "');";
                        reader = command.ExecuteReader();
                        reader.Close();
                    }
                    //дисциплины после
                    for (int y2 = 0; y2 <= PLtime[i].AfterDis.Count - 1; y2++)
                    {
                        //
                        command.CommandText = "INSERT INTO Дисциплина_после (Код_дисциплины,Дисциплина_после) VALUES ('" + code_distip + "','" + PLtime[i].AfterDis[y2] + "');";
                        reader = command.ExecuteReader();
                        reader.Close();
                    }
                    int t;     // прохождение по симестрам
                    for (t = 0; t <= 9; t++)
                    {
                        if (PLtime[i].Dif_Zachet[t] == true || PLtime[i].Zachet[t] == true || PLtime[i].Examen[t] == true)
                        {
                            int nomer_sem = t + 1;
                            command.CommandText = "INSERT INTO Семестр (Номер_семестра,ZET,Лек,Лек_инт,ПР,Лаб,Лаб_инт,ПР_инт,Элек,СР,Часы_конт,Часы_конт_электр,Курсовая,Итого,Код_дисциплины,Экзамен,Зачет,Зачет_с_оценкой,ИК,КаТТ,Каттэкз,КЭ) VALUES ('" + nomer_sem + "','" + PLtime[i].ZET[t] + "','" + PLtime[i].Lekc[t] + "','" + PLtime[i].LekcInter[t] + "','" + PLtime[i].Practice[t] + "','" + PLtime[i].Lab[t] + "','" + PLtime[i].LabInter[t] + "','" + PLtime[i].PractInter[t] + "','" + PLtime[i].Elect[t] + "','" + PLtime[i]._SR[t] + "','" + PLtime[i].HoursCont[t] + "','" + PLtime[i].HoursContElect[t] + "','" + PLtime[i].KR + "','" + PLtime[i].Itogo[t] + "','" + code_distip + "'," + PLtime[i].Examen[t] + "," + PLtime[i].Zachet[t] + "," + PLtime[i].Dif_Zachet[t] + "," + PLtime[i].ik[t] + "," + PLtime[i].katt[t] + "," + PLtime[i].kattex[t] + "," + PLtime[i].ke[t] + ");";
                            reader = command.ExecuteReader();
                            reader.Close();
                        }
                    }
                }
            }


            for (int i = 0; i <= PL.VidActive.Count - 1; i++)
            {
                command.CommandText = "INSERT INTO Виды_дейтельности (Список_дейтельности,Код_направления_подготовки) VALUES ('" + PL.VidActive[i] + "','" + code + "');";
                reader = command.ExecuteReader();
                reader.Close();
            }
            Action CompleteBD = () => { RTB_ExcelLog.AppendText("Информация в Базу Данных загружена  \n", Color.Green); }; Invoke(CompleteBD);

            Action BT = () => { bt_selct_excel.Enabled = true; }; Invoke(BT);

            DataBase();
        }
예제 #11
0
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        private void AddUrl()
        {
            if (!TmpURL.Any())
            {
                return;
            }
            List <PostURLs> posts = TmpURL;

            Sem.WaitOne();
            using (StreamWriter sw = new StreamWriter(pathLog, true, System.Text.Encoding.Default))
            {
                sw.WriteLine("[" + DateTime.Now.ToString() + "] Началась работа метода записи ссылок в БД.");
            }
            Sem.Release();
            Models.MyDBEntities1   db    = new Models.MyDBEntities1();
            List <Models.TableUrl> table = (from t in db.TableUrl select t).ToList();

            int count = db.TableUrl.Count();

            for (int i = 0; i < count; i++)
            {
                Models.TableUrl tableItem = (from t in db.TableUrl select t).First();
                db.TableUrl.Remove(tableItem);
                db.SaveChanges();
            }
            Sem.WaitOne();
            using (StreamWriter sw = new StreamWriter(pathLog, true, System.Text.Encoding.Default))
            {
                sw.WriteLine("[" + DateTime.Now.ToString() + "] Очистка ссылок в БД выполнена.");
            }
            Sem.Release();

            int id = 0;

            foreach (PostURLs item in posts)
            {
                List <string> urls = item.TextURLs.ToList();
                foreach (string u in urls)
                {
                    if (!u.Equals(""))
                    {
                        Models.TableUrl t1 = new Models.TableUrl()
                        {
                            Url     = u,
                            Post_Id = item.ID,
                            Id      = id
                        };
                        db.TableUrl.Add(t1);
                        id++;
                        db.SaveChanges();
                    }
                }
            }
            db.Dispose();
            Sem.WaitOne();
            using (StreamWriter sw = new StreamWriter(pathLog, true, System.Text.Encoding.Default))
            {
                sw.WriteLine("[" + DateTime.Now.ToString() + "] Метод закончил загружать ссылки в БД.");
            }
            Sem.Release();
        }