示例#1
0
        public void InsertAttendance()
        {
            try
            {
                using (KungFuEntities2 entities = new KungFuEntities2())
                {
                    var studentID = (from obj in entities.tblStudents
                                     where obj.STU_NUM == txtStudentNumber.Text
                                     select obj.STU_ID).FirstOrDefault();
                    var classID = int.Parse(ddlClassType.SelectedValue);
                    //DateTime dtFrom = Convert.ToDateTime(txtDate.Text);
                    //var AttendanceID = (from obj in entities.tblAttendences
                    //               where obj.CLASS_ID == ddlClassType.SelectedIndex && obj.STU_ID == studentID && obj.ATT_DATE == dtFrom
                    //                    select obj.ATT_ID).FirstOrDefault();



                    int   ihdnPKID     = int.Parse(hdnPKId.Value);
                    Int32 AttendanceID = 0;
                    if (ihdnPKID == 0)
                    {
                        AttendanceID = (from obj in entities.tblAttendences
                                        where obj.CLASS_ID == classID && obj.STU_ID == studentID
                                        select obj.ATT_ID).FirstOrDefault();
                    }
                    else
                    {
                        AttendanceID = (from obj in entities.tblAttendences
                                        where obj.CLASS_ID == classID && obj.STU_ID == studentID && obj.ATT_ID != ihdnPKID
                                        select obj.ATT_ID).FirstOrDefault();
                    }

                    if (studentID != 0 && AttendanceID == 0)
                    {
                        var objAttendence = entities.tblAttendences.Where(s => s.ATT_ID == ihdnPKID).OrderByDescending(s => s.ATT_ID).FirstOrDefault();
                        if (objAttendence == null)
                        {
                            objAttendence = new tblAttendence();
                        }
                        objAttendence.STU_ID           = Convert.ToInt32(studentID);
                        objAttendence.ATT_DATE         = DateTime.ParseExact(txtDate.Text, "MM/dd/yyyy", null);
                        objAttendence.CLASS_ID         = Convert.ToInt32(ddlClassType.SelectedValue);
                        objAttendence.ATT_CREATED_BY   = entities.tblInstructors.AsEnumerable().FirstOrDefault().INSTRUCTOR_ID;
                        objAttendence.ATT_CREATED_DATE = DateTime.Now;
                        objAttendence.STU_ID           = Convert.ToInt32(studentID);
                        objAttendence.ATT_STATUS       = chkIsPresent.Checked;

                        if (objAttendence.ATT_ID == 0)
                        {
                            entities.tblAttendences.Add(objAttendence);
                        }
                        else
                        {
                            objAttendence.ATT_MODIFY_BY         = entities.tblInstructors.Select(x => x.INSTRUCTOR_ID).FirstOrDefault();
                            objAttendence.ATT_MODIFIED_DATE     = DateTime.Now;
                            entities.Entry(objAttendence).State = System.Data.Entity.EntityState.Modified;
                        }
                        entities.SaveChanges();

                        objAttendence = null;
                        if (hdnPKId.Value != "0")
                        {
                            Response.Redirect("AttendanceList.aspx");
                        }
                        ResetControls();
                        divMessage.Visible  = true;
                        divErrorMsg.Visible = false;
                    }
                    else
                    {
                        if (studentID == 0)
                        {
                            divErrorMsg.InnerHtml = "";
                            divErrorMsg.InnerText = "Student does not exist with this number.";
                        }
                        else
                        {
                            divErrorMsg.InnerHtml = "";
                            divErrorMsg.InnerText = "Attendance for this student with class time and date already exist.";
                        }
                        divErrorMsg.Visible = true;
                        divMessage.Visible  = false;

                        return;
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }