コード例 #1
0
        public PartialViewResult CreateSubGr(int num, string sel)
        {
            ScheduleContext          sc     = new ScheduleContext();
            List <EditUserViewModel> listst = sc.GetStudentsGroup(sel);
            List <string>            stud   = new List <string>();

            foreach (var y in listst)
            {
                stud.Add(y.FIO);
            }
            ViewData["num"]     = num;
            TempData["lststud"] = listst;
            TempData.Keep("lststud");
            TempData["group"] = sel;
            TempData.Keep("group");
            ViewData["ListSt[]"] = new SelectList(stud);
            return(PartialView("ListStudView"));
        }
コード例 #2
0
        public async Task <ActionResult> CreateGrid(string[] marks, string[] subgro, string[] prot)
        {
            ScheduleContext sc        = new ScheduleContext();
            Grid            gr        = (Grid)TempData["Mod"];
            NapravContext   nc        = new NapravContext();
            string          group     = gr.Group;
            string          g         = "";
            bool            pun       = false;
            int             numsem    = 0;
            int             numgr     = 0;
            int             countsub  = 0;
            int             countsub1 = 0;
            int             countsub2 = 0;
            int             tekcount  = 0;
            int             su        = 0;
            Marks           m         = new Marks();

            for (int i = 0; i < marks.Count(); i++)
            {
                if (marks[i] == "1")
                {
                    m.M1 = true;
                }
                if (marks[i] == "2")
                {
                    if (gr.KindOfSubject == "Лекция")
                    {
                        m.M2 = "";
                    }
                    else
                    {
                        m.M6 = true;
                        m.M7 = "";
                    }
                }
                if (gr.KindOfSubject == "Практическое занятие")
                {
                    if (marks[i] == "3")
                    {
                        m.M5 = "";
                    }
                    if (marks[i] == "4")
                    {
                        m.M8 = true;
                    }
                }
            }
            for (int i = 0; i < prot.Count(); i++)
            {
                if (gr.KindOfSubject == "Лабораторная работа")
                {
                    if (prot[i] == "6")
                    {
                        m.M3 = "";
                        break;
                    }
                    if (prot[i] == "7")
                    {
                        m.M4 = true;
                        break;
                    }
                }
            }
            if (subgro != null)
            {
                if (subgro[0] == "3")
                {
                    su = 1;
                }
                else if (subgro[0] == "4")
                {
                    su = 2;
                }
                else
                {
                    su = 3;
                }
                gr.subgr = su + " подгруппа";
            }

            for (int i = 0; i < group.Count(); i++)
            {
                if (Char.IsPunctuation(group[i]))
                {
                    pun = true;
                    if (Char.IsLetter(group[i + 1]))
                    {
                        g += group[i + 1];
                    }
                }
                else if (!pun)
                {
                    g += group[i];
                }
                if (Char.IsNumber(group[i]))
                {
                    numgr = Convert.ToInt32(group[i].ToString());
                    if (gr.Date.Month <= 6)
                    {
                        numsem = numgr * 2;
                    }
                    else
                    {
                        numsem = numgr * 2 - 1;
                    }
                    break;
                }
            }
            gr.Semestr = numsem + " семестр";
            string       coll = nc.GetNameColl(g);
            List <Disci> d    = (List <Disci>) await nc.GetDis(coll, gr.SubjectName);

            RabProg rp = d[0].rp;
            Dictionary <int, DateTime> numDate = new Dictionary <int, DateTime>();
            ScheduleView scv = sc.GetSchedule(User.Identity.Name);
            bool         se = false; bool s1s2 = false;

            foreach (var w in scv.Weeks)
            {
                foreach (var day in w.Days)
                {
                    if (day.Subjects != null && day.Subjects.Count != 0)
                    {
                        foreach (var sub in day.Subjects)
                        {
                            if (!sub.Cancel && sub.SubjectName == gr.SubjectName && sub.KindOfSubject == gr.KindOfSubject)
                            {
                                if (gr.KindOfSubject == "Лабораторная работа")
                                {
                                    if (sub.SubGroup[0] && sub.SubGroup[1])
                                    {
                                        s1s2 = true;
                                    }
                                    if (sub.SubGroup[0])
                                    {
                                        countsub++;
                                    }
                                    if (sub.SubGroup[1])
                                    {
                                        countsub1++;
                                    }
                                    if (sub.SubGroup[2])
                                    {
                                        countsub2++;
                                    }
                                }
                                else
                                {
                                    countsub++;
                                }
                            }
                        }
                    }
                    if (se = (day.Date == gr.Date))
                    {
                        if (su == 2)
                        {
                            tekcount = countsub1;
                        }
                        else if (su == 3)
                        {
                            tekcount = countsub2;
                        }
                        else
                        {
                            tekcount = countsub;
                        }
                        break;
                    }
                }
                if (se)
                {
                    break;
                }
            }
            if (s1s2 && su != 3)
            {
                tekcount /= 2;
            }
            List <string> Them = new List <string>();

            foreach (var s in rp.Sect)
            {
                if (s.NumSem == numsem.ToString())
                {
                    foreach (var s1 in s.Sections)
                    {
                        if (gr.KindOfSubject == "Лабораторная работа")
                        {
                            foreach (var s2 in s1.SectLabs)
                            {
                                if (s2.LaborLabClass > 4)
                                {
                                    for (int i = 0; i < (s2.LaborLabClass / 4); i++)
                                    {
                                        Them.Add(s2.NameLabW);
                                    }
                                }
                                else
                                {
                                    Them.Add(s2.NameLabW);
                                }
                            }
                        }
                        else if (gr.KindOfSubject == "Практическое занятие")
                        {
                            foreach (var s2 in s1.SectPracs)
                            {
                                if (s2.LaborPracClass > 2)
                                {
                                    for (int i = 0; i < (s2.LaborPracClass / 2); i++)
                                    {
                                        Them.Add(s2.NamePracW);
                                    }
                                }
                                else
                                {
                                    Them.Add(s2.NamePracW);
                                }
                            }
                        }
                        else
                        {
                            foreach (var s2 in s1.SectLecs)
                            {
                                if (s2.LaborLecClass > 2)
                                {
                                    for (int i = 0; i < (s2.LaborLecClass / 2); i++)
                                    {
                                        Them.Add(s2.NameTheme);
                                    }
                                }
                                else
                                {
                                    Them.Add(s2.NameTheme);
                                }
                            }
                        }
                    }
                }
            }
            if (tekcount <= Them.Count)
            {
                gr.Theme = Them[tekcount - 1];
            }
            else
            {
                gr.Theme = "";
            }
            if (gr.KindOfSubject == "Лабораторная работа")
            {
                List <SubgroupView> ls = sc.GetSubgroup(gr.Group, gr.SubjectName, User.Identity.Name);
                gr.StudMarks = new List <StudMarks>();
                foreach (var l in ls)
                {
                    foreach (var s in l.Subgroups)
                    {
                        if (su.ToString() == s.NumSubgroup)
                        {
                            foreach (var k in s.Students)
                            {
                                StudMarks sm = new StudMarks()
                                {
                                    IdStud       = k.Id,
                                    FIO          = k.FIO,
                                    UserNameStud = k.UserName,
                                    marks        = m,
                                    listMarks    = new Marks(),
                                    Comment      = ""
                                };
                                gr.StudMarks.Add(sm);
                            }
                        }
                    }
                }
            }
            else
            {
                List <EditUserViewModel> stud = sc.GetStudentsGroup(gr.Group);
                gr.StudMarks = new List <StudMarks>();
                foreach (var s in stud)
                {
                    StudMarks sm = new StudMarks()
                    {
                        IdStud       = s.Id,
                        FIO          = s.FIO,
                        UserNameStud = s.UserName,
                        marks        = m,
                        listMarks    = new Marks(),
                        Comment      = ""
                    };
                    gr.StudMarks.Add(sm);
                }
            }
            Grid kfk = (Grid)ViewData.Model;

            return(View("Grid", gr));
        }