private void dgvAssessmentModules_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { var gridView = (DataGridView)sender; foreach (DataGridViewRow row in gridView.Rows) { if (!row.IsNewRow) { AssessmentModule AssessmentModuleObj = (AssessmentModule)(row.DataBoundItem); //var IndividualObj = ContactDetailObj.Individual; row.Cells[colModuleName.Index].Value = AssessmentModuleObj.CurriculumCourseModule.Module.ModuleName.ToString(); } } }
private void SaveAssessment() { using (var Dbconnection = new MCDEntities()) { using (System.Data.Entity.DbContextTransaction dbTran = Dbconnection.Database.BeginTransaction()) { try { //CRUD Operations List <AssessmentModule> AMList = CurrentlySelectedAssessment.AssessmentModules.ToList <AssessmentModule>(); CurrentlySelectedAssessment.AssessmentModules.Clear(); CurrentlySelectedAssessment.AssessmentRecommendationID = GetRecommendation(); //check the ObjectState property and mark appropriate EntityState if (CurrentlySelectedAssessment.ObjectState == EntityObjectState.Added) { Dbconnection.Entry(CurrentlySelectedAssessment).State = System.Data.Entity.EntityState.Added; } else if (CurrentlySelectedAssessment.ObjectState == EntityObjectState.Modified) { Dbconnection.Entry(CurrentlySelectedAssessment).State = System.Data.Entity.EntityState.Modified; } else if (CurrentlySelectedAssessment.ObjectState == EntityObjectState.Deleted) { Dbconnection.Entry(CurrentlySelectedAssessment).State = System.Data.Entity.EntityState.Deleted; } else { Dbconnection.Entry(CurrentlySelectedAssessment).State = System.Data.Entity.EntityState.Unchanged; } Dbconnection.SaveChanges(); foreach (AssessmentModule AssessmentModuleObj in AMList) { AssessmentModule AM = new AssessmentModule() { AssessmentModuleID = 0, AssessmentID = CurrentlySelectedAssessment.AssessmentID, CurriculumCourseModuleID = AssessmentModuleObj.CurriculumCourseModuleID, ObjectState = EntityObjectState.Added, PracticalAssessmentStatusID = AssessmentModuleObj.PracticalAssessmentStatusID, TheoriticalAssessmentStatusID = AssessmentModuleObj.TheoriticalAssessmentStatusID, Notes = AssessmentModuleObj.Notes }; CurrentlySelectedAssessment.AssessmentModules.Add(AM); //check the ObjectState property and mark appropriate EntityState if (AM.ObjectState == EntityObjectState.Added) { Dbconnection.Entry(AM).State = System.Data.Entity.EntityState.Added; } else if (AM.ObjectState == EntityObjectState.Modified) { Dbconnection.Entry(AM).State = System.Data.Entity.EntityState.Modified; } else if (AM.ObjectState == EntityObjectState.Deleted) { Dbconnection.Entry(AM).State = System.Data.Entity.EntityState.Deleted; } else { Dbconnection.Entry(AM).State = System.Data.Entity.EntityState.Unchanged; } } ////saves all above operations within one transaction Dbconnection.SaveChanges(); foreach (AssessmentReport AR in AssessmentReportList) { AR.AssessmentID = CurrentlySelectedAssessment.AssessmentID; Dbconnection.AssessmentReports.Add(AR); } Dbconnection.SaveChanges(); //if (radConculsionCompetent.Checked) //{ Dbconnection.CurriculumCourseEnrollments.Attach(CurrentlySelectedCurriculumCourseEnrollment); CurrentlySelectedCurriculumCourseEnrollment.LookupEnrollmentProgressStateID = (int)Common.Enum.EnumEnrollmentProgressStates.Complete; Dbconnection.SaveChanges(); Dbconnection.Entry(CurrentlySelectedCurriculumCourseEnrollment).Reference(a => a.LookupEnrollmentProgressState).Load(); //} //else if (radConculsionNotYetCompetent.Checked) //{ //} //else if (radConculsionCourseInComplete.Checked) //{ //} //commit transaction dbTran.Commit(); } catch (Exception ex) { if (ex is DbEntityValidationException) { foreach (DbEntityValidationResult entityErr in ((DbEntityValidationException)ex).EntityValidationErrors) { foreach (DbValidationError error in entityErr.ValidationErrors) { MessageBox.Show(error.ErrorMessage, "Error Message", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } else { MessageBox.Show(ex.Message, "Error Message", MessageBoxButtons.OK, MessageBoxIcon.Error); } //Rollback transaction if exception occurs dbTran.Rollback(); } } }; }