public async Task <IActionResult> Indexpost()
        {
            List <int> courselist = HttpContext.Session.Get <List <int> >("crsRegisterd");

            // CourseRegisterdVM.CourseConfirm = CourseRegisterdVM.CourseConfirm.Std_Id;
            CourseConfirm courseConfirm = CourseRegisterdVM.CourseConfirm;

            _context.CourseConfirm.Add(courseConfirm);
            await _context.SaveChangesAsync();

            int courseconfirmId = courseConfirm.Id;

            foreach (var crsID in courselist)
            {
                SelectedCourse selectedCourse = new SelectedCourse()
                {
                    CourseConfirm_Id = courseconfirmId,
                    Course_Id        = crsID
                };
                _context.SelectedCourse.Add(selectedCourse);
            }
            await _context.SaveChangesAsync();

            courselist = new List <int>();
            HttpContext.Session.Set("crsRegisterd", courselist);
            return(RedirectToAction("CourseConfirmation", "RegisterdCourse", new { Id = courseconfirmId }));
        }
Beispiel #2
0
        private void ClickSelectCourseButton(object sender, EventArgs e)
        {
            SelectedCourse selectCourse = new SelectedCourse(_pmodel);

            if (selectCourse.ShowDialog() == DialogResult.OK)
            {
                MessageBox.Show(this, "加選課程成功!!", "成功", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
        /// <summary>
        /// This method removes a User from a Selected Course in the Database and the Objects
        /// </summary>
        /// <param name="selCourse">SelectedCourse</param>
        /// <param name="user">User</param>
        /// <returns></returns>
        public static async Task RemoveUserFromSelectedCourseAsync(SelectedCourse selCourse, SelectedCourseUser user)
        {
            using (var db = new DatabaseContext(_filename, _basePath))
            {
                await db.Database.ExecuteSqlCommandAsync($"DELETE FROM SelectedCourseUser WHERE SelectedCourseId={selCourse.Id} AND UserId = {user.User.Id} ");

                //Remove user from selected course and the connected course from the user
                selCourse.Users.RemoveAll(t => t.User.Id == user.User.Id);
                user.User.SelectedCourses.Remove(user);
            }
        }
        /// <summary>
        /// Adds a user to a selected course in the database and on object level
        /// </summary>
        /// <param name="course">Selected Course</param>
        /// <param name="user">User</param>
        /// <returns></returns>
        public static async Task AddUserToSelectedCourseAsync(SelectedCourse course, User user)
        {
            using (var db = new DatabaseContext(_filename, _basePath))
            {
                var selUser = new SelectedCourseUser()
                {
                    SelectedCourse = course, User = user
                };
                db.Entry(selUser).State = EntityState.Added;
                await db.SaveChangesAsync();

                course.Users.Add(selUser);
            }
        }
Beispiel #5
0
        public string DropCourse(string sno, string cno)
        {
            string result = null;
            SelectCourseDBContext   selectDbCourse   = new SelectCourseDBContext();
            SelectedCourse          selectedCourse   = new SelectedCourse();
            SelectedCourseDBContext selectedDbCourse = new SelectedCourseDBContext();
            var selectedResult = selectedDbCourse.SelectedCourses.Where(u => u.SNO == sno && u.CNO == cno).FirstOrDefault();
            int id             = selectedResult.ID;
            var deleteResult   = selectedDbCourse.SelectedCourses.First(u => u.ID == id);

            selectedDbCourse.SelectedCourses.Remove(deleteResult);
            var selectResult = selectDbCourse.SelectCourses.Where(u => u.CNO == cno).FirstOrDefault();

            selectedDbCourse.SaveChanges();
            selectResult.SELECTEDNUM--;
            selectDbCourse.SaveChanges();
            result = "退课成功!";
            return(result);
        }
Beispiel #6
0
        public string StudentSelectCourse(string sno, string cno, string cname, string tname, string cdept, string credit, string time)
        {
            string result = null;
            SelectCourseDBContext selectDbContext = new SelectCourseDBContext();
            var message = selectDbContext.SelectCourses.Where(u => u.CNO == cno && u.CNAME == cname).FirstOrDefault();
            SelectedCourseDBContext selectedDbContext = new SelectedCourseDBContext();
            var isSelected = selectedDbContext.SelectedCourses.Where(u => u.CNO == cno && u.SNO == sno).FirstOrDefault();
            var classTime  = selectedDbContext.SelectedCourses.Where(u => u.SNO == sno).ToList();

            if (message == null)
            {
                result = "该课程不存在,请核实该课程信息!";
            }
            else if (message.SELECTEDNUM == message.CAPACITY)
            {
                result = "该课程所选人数已达人数上限!";
            }
            else if (isSelected != null)
            {
                result = "您已经选过该课程!";
            }
            else if (classTime != null)
            {
                if (IsConflict(classTime, time))
                {
                    result = "课时冲突";
                }
                else
                {
                    SelectedCourse selectedCourse = new SelectedCourse()
                    {
                        SNO = sno, CNO = cno, CNAME = cname, CREDIT = Convert.ToInt32(credit), CDEPT = cdept, TNAME = tname, TIME = time, SEMESTER = "15-16春"
                    };
                    selectedDbContext.SelectedCourses.Add(selectedCourse);
                    selectedDbContext.SaveChanges();
                    message.SELECTEDNUM++;
                    selectDbContext.SaveChanges();
                    result = "选课成功!";
                }
            }
            return(result);
        }
Beispiel #7
0
        public void ReCalculated(ScoreCal_Form1 mainForm, SelectedCourse sc, int nCourseNumber)
        {
            ResetValue();

            #region 0
            if (nCourseNumber == 0)
            {
                if (sc.level <= 1)
                {
                    Score = 300000;
                }
                else if (sc.level <= 2)
                {
                    Score = 320000;
                }
                else if (sc.level <= 3)
                {
                    Score = 340000;
                }
                else if (sc.level <= 4)
                {
                    Score = 360000;
                }
                else if (sc.level <= 5)
                {
                    Score = 380000;
                }
                else
                {
                    Score = 340000;
                }
            }
            #endregion
            #region 1
            if (nCourseNumber == 1)
            {
                if (sc.level <= 1)
                {
                    Score = 400000;
                }
                else if (sc.level <= 2)
                {
                    Score = 450000;
                }
                else if (sc.level <= 3)
                {
                    Score = 500000;
                }
                else if (sc.level <= 4)
                {
                    Score = 550000;
                }
                else if (sc.level <= 5)
                {
                    Score = 600000;
                }
                else if (sc.level <= 6)
                {
                    Score = 650000;
                }
                else if (sc.level <= 7)
                {
                    Score = 700000;
                }
                else
                {
                    Score = 550000;
                }
            }
            #endregion
            #region 2
            if (nCourseNumber == 2)
            {
                if (sc.level <= 1)
                {
                    Score = 550000;
                }
                else if (sc.level <= 2)
                {
                    Score = 600000;
                }
                else if (sc.level <= 3)
                {
                    Score = 650000;
                }
                else if (sc.level <= 4)
                {
                    Score = 700000;
                }
                else if (sc.level <= 5)
                {
                    Score = 750000;
                }
                else if (sc.level <= 6)
                {
                    Score = 800000;
                }
                else if (sc.level <= 7)
                {
                    Score = 850000;
                }
                else if (sc.level <= 8)
                {
                    Score = 900000;
                }
                else
                {
                    Score = 750000;
                }
            }
            #endregion
            #region 3||4
            if (nCourseNumber >= 3 && nCourseNumber < 5)
            {
                if (sc.level <= 1)
                {
                    Score = 700000;
                }
                else if (sc.level <= 2)
                {
                    Score = 750000;
                }
                else if (sc.level <= 3)
                {
                    Score = 800000;
                }
                else if (sc.level <= 4)
                {
                    Score = 850000;
                }
                else if (sc.level <= 5)
                {
                    Score = 900000;
                }
                else if (sc.level <= 6)
                {
                    Score = 950000;
                }
                else if (sc.level <= 7)
                {
                    Score = 1000000;
                }
                else if (sc.level <= 8)
                {
                    Score = 1050000;
                }
                else if (sc.level <= 9)
                {
                    Score = 1100000;
                }
                else if (sc.level <= 10)
                {
                    Score = 1200000;
                }
                else
                {
                    Score = 1000000;
                }
            }
            #endregion

            ComboBonus             = sc.nComboBonus / 100;
            mainForm.ScoreUD.Value = Score;



            //通常スコア
            while (((calNdk[0] + calNdk[1] + calNdk[2] + calNdk[3] + calNdk[4] + calNtdk[0] + calNtdk[1] + calNtdk[2] + calNtdk[3] + calNtdk[4] + calGdk[0] + calGdk[1] + calGdk[2] + calGdk[3] + calGdk[4] + calGtdk[0] + calGtdk[1] + calGtdk[2] + calGtdk[3] + calGtdk[4]) + (ComboBonus * 10000 + (sc.baAmount[0] - sc.baSum[0]) * 300 + (sc.baAmount[1] - sc.baSum[1]) * 360 + sc.baSum[0] * 5000 + sc.baSum[1] * 6000)) < Score)
            {
                int n;
                diff用    += 1;
                ScoreDiff = diff用 / 4;
                if (diff用 % 10 == 0)
                {
                    ScoreInit += 10;
                }

                calNdk[0]  = sc.ndk[0] * (ScoreInit - ScoreInit % 10);
                calNdk[1]  = sc.ndk[1] * ((ScoreInit - ScoreInit % 10) + (ScoreDiff - ScoreDiff % 10));
                calNdk[2]  = sc.ndk[2] * ((ScoreInit - ScoreInit % 10) + (ScoreDiff * 2 - ScoreDiff * 2 % 10));
                calNdk[3]  = sc.ndk[3] * ((ScoreInit - ScoreInit % 10) + (ScoreDiff * 4 - ScoreDiff * 4 % 10));
                calNdk[4]  = sc.ndk[4] * ((ScoreInit - ScoreInit % 10) + (ScoreDiff * 8 - ScoreDiff * 8 % 10));
                calNtdk[0] = sc.ntdk[0] * 2 * (ScoreInit - ScoreInit % 10);
                calNtdk[1] = sc.ntdk[1] * 2 * ((ScoreInit - ScoreInit % 10) + (ScoreDiff - ScoreDiff % 10));
                calNtdk[2] = sc.ntdk[2] * 2 * ((ScoreInit - ScoreInit % 10) + (ScoreDiff * 2 - ScoreDiff * 2 % 10));
                calNtdk[3] = sc.ntdk[3] * 2 * ((ScoreInit - ScoreInit % 10) + (ScoreDiff * 4 - ScoreDiff * 4 % 10));
                calNtdk[4] = sc.ntdk[4] * 2 * ((ScoreInit - ScoreInit % 10) + (ScoreDiff * 8 - ScoreDiff * 8 % 10));

                calGdk[0]  = sc.gdk[0] * (((ScoreInit - ScoreInit % 10) * 12 / 10) - ((ScoreInit - ScoreInit % 10) * 12 / 10 % 10));
                calGdk[1]  = sc.gdk[1] * (((ScoreInit - ScoreInit % 10 + (ScoreDiff - ScoreDiff % 10)) * 12 / 10) - ((ScoreInit - ScoreInit % 10 + (ScoreDiff - ScoreDiff % 10)) * 12 / 10) % 10);
                calGdk[2]  = sc.gdk[2] * (((ScoreInit - ScoreInit % 10 + (ScoreDiff * 2 - ScoreDiff * 2 % 10)) * 12 / 10) - ((ScoreInit - ScoreInit % 10 + (ScoreDiff * 2 - ScoreDiff * 2 % 10)) * 12 / 10) % 10);
                calGdk[3]  = sc.gdk[3] * (((ScoreInit - ScoreInit % 10 + (ScoreDiff * 4 - ScoreDiff * 4 % 10)) * 12 / 10) - ((ScoreInit - ScoreInit % 10 + (ScoreDiff * 4 - ScoreDiff * 4 % 10)) * 12 / 10) % 10);
                calGdk[4]  = sc.gdk[4] * (((ScoreInit - ScoreInit % 10 + (ScoreDiff * 8 - ScoreDiff * 8 % 10)) * 12 / 10) - ((ScoreInit - ScoreInit % 10 + (ScoreDiff * 8 - ScoreDiff * 8 % 10)) * 12 / 10) % 10);
                calGtdk[0] = sc.gtdk[0] * 2 * (((ScoreInit - ScoreInit % 10) * 12 / 10) - ((ScoreInit - ScoreInit % 10) * 12 / 10 % 10));
                calGtdk[1] = sc.gtdk[1] * 2 * (((ScoreInit - ScoreInit % 10 + (ScoreDiff - ScoreDiff % 10)) * 12 / 10) - (((ScoreInit - ScoreInit % 10 + (ScoreDiff - ScoreDiff % 10)) * 12 / 10) % 10));
                calGtdk[2] = sc.gtdk[2] * 2 * (((ScoreInit - ScoreInit % 10 + (ScoreDiff * 2 - ScoreDiff * 2 % 10)) * 12 / 10) - (((ScoreInit - ScoreInit % 10 + (ScoreDiff * 2 - ScoreDiff * 2 % 10)) * 12 / 10) % 10));
                calGtdk[3] = sc.gtdk[3] * 2 * (((ScoreInit - ScoreInit % 10 + (ScoreDiff * 4 - ScoreDiff * 4 % 10)) * 12 / 10) - (((ScoreInit - ScoreInit % 10 + (ScoreDiff * 4 - ScoreDiff * 4 % 10)) * 12 / 10) % 10));
                calGtdk[4] = sc.gtdk[4] * 2 * (((ScoreInit - ScoreInit % 10 + (ScoreDiff * 8 - ScoreDiff * 8 % 10)) * 12 / 10) - (((ScoreInit - ScoreInit % 10 + (ScoreDiff * 8 - ScoreDiff * 8 % 10)) * 12 / 10) % 10));

                n = ((calNdk[0] + calNdk[1] + calNdk[2] + calNdk[3] + calNdk[4] + calNtdk[0] + calNtdk[1] + calNtdk[2] + calNtdk[3] + calNtdk[4] + calGdk[0] + calGdk[1] + calGdk[2] + calGdk[3] + calGdk[4] + calGtdk[0] + calGtdk[1] + calGtdk[2] + calGtdk[3] + calGtdk[4]) + (ComboBonus * 10000 + (sc.baAmount[0] - sc.baSum[0]) * 300 + (sc.baAmount[1] - sc.baSum[1]) * 360 + sc.baSum[0] * 5000 + sc.baSum[1] * 6000));
                if (n > Score)
                {
                    break;
                }
            }

            //真打スコア
            for (int i = 0; i < 5; i++)
            {
                shinuchiNotes += sc.ndk[i] + sc.ntdk[i] * 2 + sc.gdk[i] + sc.gtdk[i] * 2;
            }
            while (shinuchiNotes * shinuchiInit + (sc.baAmount[0] - sc.baSum[0]) * 300 + (sc.baAmount[1] - sc.baSum[1]) * 300 + (sc.baSum[0] * 5000 + sc.baSum[1] * 5000) < 1000000)
            {
                shinuchiInit += 10;
            }

            #region 読み込み後テキスト
            mainForm.Total.Text         = sc.nComboBonus.ToString();
            mainForm.Difficulty.Text    = sc.level.ToString();
            mainForm.ndk0.Text          = sc.ndk[0].ToString();
            mainForm.ndk1.Text          = sc.ndk[1].ToString();
            mainForm.ndk2.Text          = sc.ndk[2].ToString();
            mainForm.ndk3.Text          = sc.ndk[3].ToString();
            mainForm.ndk4.Text          = sc.ndk[4].ToString();
            mainForm.ntdk0.Text         = sc.ntdk[0].ToString();
            mainForm.ntdk1.Text         = sc.ntdk[1].ToString();
            mainForm.ntdk2.Text         = sc.ntdk[2].ToString();
            mainForm.ntdk3.Text         = sc.ntdk[3].ToString();
            mainForm.ntdk4.Text         = sc.ntdk[4].ToString();
            mainForm.gdk0.Text          = sc.gdk[0].ToString();
            mainForm.gdk1.Text          = sc.gdk[1].ToString();
            mainForm.gdk2.Text          = sc.gdk[2].ToString();
            mainForm.gdk3.Text          = sc.gdk[3].ToString();
            mainForm.gdk4.Text          = sc.gdk[4].ToString();
            mainForm.gtdk0.Text         = sc.gtdk[0].ToString();
            mainForm.gtdk1.Text         = sc.gtdk[1].ToString();
            mainForm.gtdk2.Text         = sc.gtdk[2].ToString();
            mainForm.gtdk3.Text         = sc.gtdk[3].ToString();
            mainForm.gtdk4.Text         = sc.gtdk[4].ToString();
            mainForm.textBox1.Text      = sc.str[2];
            mainForm.INITM.Text         = ScoreInit.ToString();
            mainForm.DIFFM.Text         = ScoreDiff.ToString();
            mainForm.ShinuchiUD.Text    = shinuchiInit.ToString();
            mainForm.re.Text            = ((calNdk[0] + calNdk[1] + calNdk[2] + calNdk[3] + calNdk[4] + calNtdk[0] + calNtdk[1] + calNtdk[2] + calNtdk[3] + calNtdk[4] + calGdk[0] + calGdk[1] + calGdk[2] + calGdk[3] + calGdk[4] + calGtdk[0] + calGtdk[1] + calGtdk[2] + calGtdk[3] + calGtdk[4]) + (ComboBonus * 10000 + (sc.baAmount[0] - sc.baSum[0]) * 300 + (sc.baAmount[1] - sc.baSum[1]) * 360 + sc.baSum[0] * 5000 + sc.baSum[1] * 6000)).ToString();
            mainForm.ShinuchiValue.Text = (shinuchiNotes * shinuchiInit + (sc.baAmount[0] - sc.baSum[0]) * 300 + (sc.baAmount[1] - sc.baSum[1]) * 300 + (sc.baSum[0] * 5000 + sc.baSum[1] * 5000)).ToString();
            mainForm.basum0.Text        = sc.baSum[0].ToString();
            mainForm.basum1.Text        = sc.baSum[1].ToString();
            mainForm.baamount0.Text     = sc.baAmount[0].ToString();
            mainForm.baamount1.Text     = sc.baAmount[1].ToString();

            if (sc.bKusudamaExist)
            {
                mainForm.Kusudama.Visible = true;
            }
            else
            {
                mainForm.Kusudama.Visible = false;
            }

            #endregion
            bRead = true;
        }
Beispiel #8
0
 public ReCalculate(ScoreCal_Form1 mainForm, SelectedCourse sc)
 {
     ResetValue();
 }