Esempio n. 1
0
 public void Save()
 {
     if (EditorStatus != EditorStatus.NoChanged)
     {
         EditCourse.SaveCourseRecordEditor(new CourseRecordEditor[] { this });
     }
 }
        protected void AddCourseButton_Click(object sender, EventArgs e)
        {
            int courseId = Convert.ToInt16(Request.QueryString["CourseId"]);

            bool discontinued = false;
            bool editSuccess;

            if (AddCourseDiscontinued.SelectedIndex == 1)
                discontinued = true;

            EditCourse edit = new EditCourse();

            if (courseId == 0)
            {
                editSuccess = edit.EditRoll(AddCourseName.Text, discontinued, AddCourseCreditHours.Text);
            }
            else
            {
                editSuccess = edit.EditRoll(courseId, AddCourseName.Text, discontinued, AddCourseCreditHours.Text);
            }

            if (editSuccess)
            {
                // Reload the page.
                Response.Redirect("/Admin/Course/Course_Display.aspx");
            }
        }
Esempio n. 3
0
        // PUT: api/Courses/5
        public IHttpActionResult PutCourse(int id, EditCourse editCourseRequest)
        {
            if (id != editCourseRequest.Id || !CourseExists(id))
            {
                return(BadRequest());
            }

            Course course = db.Courses.Find(id);

            var configuration = new MapperConfiguration(cfg => cfg.CreateMap <EditCourse, Course>());

            new Mapper(configuration).Map <EditCourse, Course>(editCourseRequest, course);

            course.Professors = course.Professors.Where(p => editCourseRequest.ProfessorIds.Contains(p.Id)).ToList();
            editCourseRequest.ProfessorIds
            .Where(pId => !course.Professors.Select(p => p.Id).Contains(pId))
            .Select(pId => db.Staffs.Find(pId))
            .ToList()
            .ForEach(proffessor => course.Professors.Add(proffessor));

            course.Assistants = course.Assistants.Where(a => editCourseRequest.AssistantIds.Contains(a.Id)).ToList();
            editCourseRequest.AssistantIds
            .Where(aId => !course.Assistants.Select(a => a.Id).Contains(aId))
            .Select(aId => db.Staffs.Find(aId))
            .ToList()
            .ForEach(assistant => course.Assistants.Add(assistant));

            db.SaveChanges();

            return(Ok(course));
        }
Esempio n. 4
0
        private void buttonX2_Click(object sender, EventArgs e)
        {
            List <string> AttendList = new List <string>();

            this.UseWaitCursor = true;
            int         changedCount = 0;
            DSXmlHelper helper       = new DSXmlHelper("UpdateSCAttend");

            foreach (AttInfo each in _AttendInfoList)
            {
                if (each.HasChanged)
                {
                    changedCount++;
                    XmlElement attend = helper.AddElement("Attend");
                    DSXmlHelper.AppendChild(attend, "<ID>" + each.AttendID + "</ID>");
                    DSXmlHelper.AppendChild(attend, "<RefCourseID>" + each.CourseID + "</RefCourseID>");
                    helper.AddElement(".", attend);
                    AttendList.Add(each.AttendID);
                }
            }
            if (changedCount > 0)
            {
                EditCourse.UpdateAttend(helper);
            }
            //更新課程List資料
            //SCAttend.Instance.SyncDataBackground(AttendList);
            FISCA.Presentation.MotherForm.SetStatusBarMessage("調整修課學生完成。");


            //Customization.PlugIn.Global.SetStatusBarMessage("調整修課學生完成。");
            this.UseWaitCursor = false;
            this.Close();
        }
Esempio n. 5
0
        public void UpdateToServer()
        {
            int  progress       = 0;
            bool updateRequired = false;

            foreach (List <Course> each in _packings)
            {
                DSXmlHelper request = new DSXmlHelper("Request");

                foreach (Course course in each)
                {
                    if (course.ExamTemplate == null)
                    {
                        continue;
                    }

                    if (!course.ExamRequired)
                    {
                        continue;
                    }

                    //AllowUpload 為 True 時,略過成績計算,因為成績是由老師提供。
                    if (course.ExamTemplate.AllowUpload)
                    {
                        continue;
                    }

                    foreach (SCAttend attend in course.SCAttends.Values)
                    {
                        XmlElement  xmlAttend = request.AddElement("Attend");
                        DSXmlHelper hlpAttend = new DSXmlHelper(xmlAttend);
                        hlpAttend.AddElement(".", "ID", attend.Identity);

                        if (_clear_data)
                        {
                            hlpAttend.AddElement(".", "Score", "");
                            attend.PreviousScore = string.Empty;
                        }
                        else
                        {
                            hlpAttend.AddElement(".", "Score", attend.Score);
                            attend.SaveScore();
                        }

                        updateRequired = true; //指示是否要執行呼叫 Service 的動作。

                        progress++;
                    }
                }

                if (updateRequired)
                {
                    EditCourse.UpdateAttend(request);
                }

                Progress.ReportProgress("", progress);
            }
        }
Esempio n. 6
0
 public bool UpdateCourse(EditCourse model)
 {
     using (var ctx = new ApplicationDbContext())
     {
         var entity =
             ctx
             .Courses
             .Single(e => e.Id == model.CourseId);
         entity.Name        = model.CourseName;
         entity.Description = model.CourseDescription;
         return(ctx.SaveChanges() > 0);
     }
 }
Esempio n. 7
0
        public async Task <bool> NewCourse(EditCourse editCourse)
        {
            Console.WriteLine("Begin submit api new course");
            var stringPayload = JsonConvert.SerializeObject(editCourse);
            var postRequest   = new StringContent(stringPayload, System.Text.Encoding.UTF8, "application/json");
            var response      = await client.PostAsync(OpenMooc.Constants.BACKEND_URL + "/course/new", postRequest);

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                return(true);
            }
            Console.WriteLine($"Error while call api new course: {response.StatusCode}, {response.Content}");
            return(false);
        }
Esempio n. 8
0
        public ActionResult Edit(int id)
        {
            var service = CreateCourseService();
            var detail  = service.GetCourseById(id);
            var model   =
                new EditCourse
            {
                CourseId          = detail.CourseId,
                CourseName        = detail.CourseName,
                CourseDescription = detail.CourseDescription
            };

            return(View(model));
        }
Esempio n. 9
0
 public ActionResult UpdateCourse(int id, EditCourse editCourse)
 {
     try
     {
         Course course = repository.GetById(id);
         if (course == null)
         {
             return(NotFound());
         }
         course = mapper.Map(editCourse, course);
         repository.Update(course);
         return(Ok());
     }
     catch (Exception)
     {
         return(BadRequest());
     }
 }
Esempio n. 10
0
        public IActionResult Edit(int id, EditCourseViewModel viewModel, [FromServices] EditCourse command)
        {
            //Orignal course
            var course = queryDb.CoursesWithInstructors.Where(c => c.CourseId == id).Single();

            //Maps changes from viewModel to course
            course          = mapper.Map <Course>(viewModel);
            course.CourseId = id;
            //Inserts course to command
            command.Course = course;
            //Execute command
            command.Run();
            if (command.Status)
            {
                return(RedirectToAction("Index", "Course"));
            }
            else
            {
                return(RedirectToAction("Error", "Course"));
            }
        }
Esempio n. 11
0
        public ActionResult Edit(int id, EditCourse model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (model.CourseId != id)
            {
                ModelState.AddModelError("", "Id Mismatch");
                return(View(model));
            }

            var service = CreateCourseService();

            if (service.UpdateCourse(model))
            {
                TempData["SaveResult"] = "Your course was updated.";
                return(RedirectToAction("Index"));
            }

            ModelState.AddModelError("", "Your course could not be updated.");
            return(View(model));
        }
Esempio n. 12
0
        private void editCourseToolStripMenuItem_Click(object sender, EventArgs e)
        {
            EditCourse edit = new EditCourse();

            edit.Show();
        }
Esempio n. 13
0
        private void editbtn_Click(object sender, EventArgs e)
        {
            EditCourse ec = new EditCourse(_cs);

            ec.ShowDialog();
        }
Esempio n. 14
0
        public override void Save()
        {
            List <AttendInfo> insertList = new List <AttendInfo>();  //新增清單
            List <AttendInfo> updateList = new List <AttendInfo>();  //更新清單
            List <AttendInfo> deleteList = new List <AttendInfo>();  //刪除清單

            GetList(insertList, updateList, deleteList);

            try
            {
                List <string> synclist = new List <string>();
                DSXmlHelper   helper   = new DSXmlHelper("InsertSCAttend");
                foreach (AttendInfo each in insertList)
                {
                    XmlElement attend = helper.AddElement("Attend");
                    DSXmlHelper.AppendChild(attend, "<RefStudentID>" + each.RefStudentID.ToString() + "</RefStudentID>");
                    DSXmlHelper.AppendChild(attend, "<RefCourseID>" + RunningID + "</RefCourseID>");
                    DSXmlHelper.AppendChild(attend, "<IsRequired>" + each.IsRequired + "</IsRequired>");
                    DSXmlHelper.AppendChild(attend, "<RequiredBy>" + each.RequiredBy + "</RequiredBy>");
                    //DSXmlHelper.AppendChild(attend, "<GradeYear>" + each.GradeYear + "</GradeYear>");
                    helper.AddElement(".", attend);
                }
                if (insertList.Count > 0)
                {
                    DSXmlHelper insertResult = AddCourse.AttendCourse(helper).GetContent();
                    foreach (XmlElement each in insertResult.GetElements("NewID"))
                    {
                        synclist.Add(each.InnerText);
                    }
                }

                helper = new DSXmlHelper("UpdateSCAttend");
                foreach (AttendInfo each in updateList)
                {
                    XmlElement attend = helper.AddElement("Attend");
                    DSXmlHelper.AppendChild(attend, "<ID>" + each.Identity + "</ID>");
                    DSXmlHelper.AppendChild(attend, "<IsRequired>" + each.IsRequired + "</IsRequired>");
                    DSXmlHelper.AppendChild(attend, "<RequiredBy>" + each.RequiredBy + "</RequiredBy>");
                    synclist.Add(each.Identity.ToString());

                    helper.AddElement(".", attend);
                }
                if (updateList.Count > 0)
                {
                    EditCourse.UpdateAttend(helper);
                }

                helper = new DSXmlHelper("DeleteSCAttendRequest");
                foreach (AttendInfo each in deleteList)
                {
                    XmlElement attend = helper.AddElement("Attend");
                    DSXmlHelper.AppendChild(attend, "<ID>" + each.Identity + "</ID>");
                    synclist.Add(each.Identity.ToString());

                    helper.AddElement(".", attend);
                }
                if (deleteList.Count > 0)
                {
                    EditCourse.DeleteAttend(helper);
                }

                #region Log

                StringBuilder desc = new StringBuilder("");
                desc.AppendLine("課程名稱:" + Course.Instance.Items[RunningID].Name);
                if (insertList.Count > 0)
                {
                    desc.AppendLine("加入修課學生:");
                }
                foreach (AttendInfo info in insertList)
                {
                    desc.AppendLine("- " + info.Class + " " + info.StudentNumber + " " + info.StudentName + " ");
                }
                if (deleteList.Count > 0)
                {
                    desc.AppendLine("移除課程修課學生:");
                }
                foreach (AttendInfo info in deleteList)
                {
                    desc.AppendLine("- " + info.Class + " " + info.StudentNumber + " " + info.StudentName + " ");
                }
                if (updateList.Count > 0)
                {
                    desc.AppendLine("課程修課學生修課資訊調整:");
                }
                foreach (AttendInfo info in updateList)
                {
                    desc.AppendLine("- " + info.Class + " " + info.StudentNumber + " " + info.StudentName + " ");
                }

                //CurrentUser.Instance.AppLog.Write(EntityType.Course, "修改課程修課學生", RunningID, desc.ToString(), "課程", "");
                FISCA.LogAgent.ApplicationLog.Log("課程基本資料", "修改課程修課學生", desc.ToString());

                #endregion

                //SCAttend.Instance.SyncDataBackground(synclist);
                LoadContent(RunningID);
            }
            catch (Exception ex)
            {
                MsgBox.Show("儲存失敗:" + ex.Message);
            }
        }
Esempio n. 15
0
        public override void Save()
        {
            // 產生新增成績 Request
            int insertStudentCount = 0;
            int updateStudentCount = 0;
            int deleteStudentCount = 0;
            int usCount            = 0;

            DSXmlHelper insertHelper = new DSXmlHelper("Request");
            DSXmlHelper updateHelper = new DSXmlHelper("Request");
            DSXmlHelper deleteHelper = new DSXmlHelper("Request");
            DSXmlHelper usHelper     = new DSXmlHelper("Request");

            insertHelper.AddElement("ScoreSheetList");
            updateHelper.AddElement("ScoreSheetList");
            deleteHelper.AddElement("ScoreSheet");

            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                string attendid = row.Tag.ToString();

                foreach (DataGridViewCell cell in row.Cells)
                {
                    IExamCell ic = cell.Tag as IExamCell;
                    if (ic == null)
                    {
                        continue;
                    }
                    ColumnSetting setting = dataGridView1.Columns[cell.ColumnIndex].Tag as ColumnSetting;
                    string        examid  = setting.Key;
                    if (ic is ScoreExamCell && ic.IsDirty)
                    {
                        usCount++;
                        usHelper.AddElement("Attend");
                        usHelper.AddElement("Attend", "Score", ic.GetValue());
                        usHelper.AddElement("Attend", "ID", attendid);
                    }
                    else if (string.IsNullOrEmpty(ic.Key) && ic.IsDirty)
                    {
                        insertStudentCount++;
                        insertHelper.AddElement("ScoreSheetList", "ScoreSheet");
                        insertHelper.AddElement("ScoreSheetList/ScoreSheet", "ExamID", examid);
                        insertHelper.AddElement("ScoreSheetList/ScoreSheet", "AttendID", attendid);
                        insertHelper.AddElement("ScoreSheetList/ScoreSheet", "Score", ic.GetValue());
                    }
                    else if (!string.IsNullOrEmpty(ic.Key) && ic.IsDirty && !string.IsNullOrEmpty(ic.GetValue()))
                    {
                        updateStudentCount++;
                        updateHelper.AddElement("ScoreSheetList", "ScoreSheet");
                        updateHelper.AddElement("ScoreSheetList/ScoreSheet", "Score", ic.GetValue());
                        updateHelper.AddElement("ScoreSheetList/ScoreSheet", "ID", ic.Key);
                    }
                    else if (!string.IsNullOrEmpty(ic.Key) && ic.IsDirty && string.IsNullOrEmpty(ic.GetValue()))
                    {
                        deleteStudentCount++;
                        deleteHelper.AddElement("ScoreSheet", "ID", ic.Key);
                    }
                }
            }

            if (insertStudentCount > 0)
            {
                EditCourse.InsertSCEScore(new DSRequest(insertHelper));
            }
            if (updateStudentCount > 0)
            {
                EditCourse.UpdateSCEScore(new DSRequest(updateHelper));
            }
            if (deleteStudentCount > 0)
            {
                EditCourse.DeleteSCEScore(new DSRequest(deleteHelper));
            }
            if (usCount > 0)
            {
                EditCourse.UpdateAttend(usHelper);
            }

            SaveButtonVisible = false;
            LoadContent(RunningID);
        }
Esempio n. 16
0
 /// <summary>
 /// 儲存在集合中的所有課程資料。
 /// </summary>
 public static void SaveAllEditors(this IEnumerable <CourseRecordEditor> editors)
 {
     EditCourse.SaveCourseRecordEditor(editors);
 }
Esempio n. 17
0
 public void RemoveCourseTeachers(XmlElement request)
 {
     EditCourse.RemoveCourseTeachers(new DSXmlHelper(request));
 }
Esempio n. 18
0
 public void AddCourseTeachers(XmlElement request)
 {
     EditCourse.AddCourseTeacher(new DSXmlHelper(request));
 }