public async Task <string> Update(ClassRoomDetailsVM entity) { if (entity == null) { throw new ArgumentNullException("entity"); } string RtnFlag = string.Empty; int result = 0; var strategy = _DBContext.Database.CreateExecutionStrategy(); await strategy.ExecuteAsync(async() => { using (IDbContextTransaction transaction = _DBContext.Database.BeginTransaction()) { try { Tblmclassroom DBClassroom = await _DBContext.Tblmclassroom.Where(c => c.Id.Equals(entity.Id)).FirstOrDefaultAsync(); if (DBClassroom == null) { throw new Exception("Invalid Classroom data."); } DBClassroom.RefId = entity.RefId; DBClassroom.Description = entity.Description; DBClassroom.Name = entity.Name; DBClassroom.SubjectId = entity.SubjectId; DBClassroom.StandardId = entity.StandardId; DBClassroom.ClassActivationThreshold = entity.ClassActivationThreshold; DBClassroom.Scheduler = entity.Scheduler.ToJSONString(); ClassRoomEntities.Attach(DBClassroom); _DBContext.Entry(DBClassroom).State = EntityState.Modified; List <Tblrteacherclassroom> AllClassroomTeachers = await _DBContext.Tblrteacherclassroom.Where(c => c.ClassRoomId.Equals(entity.Id)).ToListAsync(); if (AllClassroomTeachers != null && AllClassroomTeachers.Count > 0) { _DBContext.Tblrteacherclassroom.RemoveRange(AllClassroomTeachers); //foreach (var itemTeacher in AllClassroomTeachers) //{ // Tblrteacherclassroom DBClassTeacher = new Tblrteacherclassroom // { // Id = itemTeacher.Id, // TeacherId = itemTeacher.TeacherId, // ClassRoomId = itemTeacher.ClassRoomId, // CreatedOn = itemTeacher.CreatedOn // }; // //ClassTeacherEntities.Remove(DBClassTeacher); // _DBContext.Entry(DBClassTeacher).State = EntityState.Deleted; //} //result = await _DBContext.SaveChangesAsync(); } foreach (var itemTeacher in entity.AsignTeacherInfo) { Tblrteacherclassroom DBClassTeacher = new Tblrteacherclassroom { TeacherId = itemTeacher.Id, ClassRoomId = DBClassroom.Id, CreatedOn = DateTime.Now }; ClassTeacherEntities.Add(DBClassTeacher); } List <Tblrstudentclassroom> AllClassroomStudents = await _DBContext.Tblrstudentclassroom.Where(c => c.ClassRoomId.Equals(entity.Id)).ToListAsync(); if (AllClassroomStudents != null && AllClassroomStudents.Count > 0) { _DBContext.Tblrstudentclassroom.RemoveRange(AllClassroomStudents); //foreach (var itemStudent in AllClassroomStudents) //{ // Tblrstudentclassroom DBClassStudent = new Tblrstudentclassroom // { // Id = itemStudent.Id, // StudentId = itemStudent.StudentId, // ClassRoomId = itemStudent.ClassRoomId, // CreatedOn = itemStudent.CreatedOn // }; // //ClassStudentEntities.Remove(DBClassStudent); // _DBContext.Entry(DBClassStudent).State = EntityState.Deleted; //} //result = await _DBContext.SaveChangesAsync(); } foreach (var itemStudent in entity.AsignStudentInfo) { Tblrstudentclassroom DBClassStudent = new Tblrstudentclassroom { StudentId = itemStudent.Id, ClassRoomId = DBClassroom.Id, CreatedOn = DateTime.Now }; ClassStudentEntities.Add(DBClassStudent); } result = await _DBContext.SaveChangesAsync(); transaction.Commit(); RtnFlag = "SUCCESS"; } catch (Exception ex) { transaction.Rollback(); RtnFlag = ex.Message; } } }); return(RtnFlag); }
public async Task <string> Insert(ClassRoomDetailsVM entity) { if (entity == null) { throw new ArgumentNullException("entity"); } string RtnFlag = string.Empty; var strategy = _DBContext.Database.CreateExecutionStrategy(); await strategy.ExecuteAsync(async() => { using (IDbContextTransaction transaction = _DBContext.Database.BeginTransaction()) { try { Tblmclassroom DBClassroom = new Tblmclassroom { Id = entity.Id, RefId = entity.RefId, Description = entity.Description, Name = entity.Name, SubjectId = entity.SubjectId, StandardId = entity.StandardId, ClassActivationThreshold = entity.ClassActivationThreshold, Scheduler = entity.Scheduler.ToJSONString(), CreatedBy = entity.BUserID, CreatedOn = DateTime.Now }; ClassRoomEntities.Add(DBClassroom); int result = await _DBContext.SaveChangesAsync(); if (result > 0) { foreach (var itemTeacher in entity.AsignTeacherInfo) { Tblrteacherclassroom DBClassTeacher = new Tblrteacherclassroom { TeacherId = itemTeacher.Id, ClassRoomId = DBClassroom.Id, CreatedOn = DateTime.Now }; ClassTeacherEntities.Add(DBClassTeacher); } foreach (var itemStudent in entity.AsignStudentInfo) { Tblrstudentclassroom DBClassStudent = new Tblrstudentclassroom { StudentId = itemStudent.Id, ClassRoomId = DBClassroom.Id, CreatedOn = DateTime.Now }; ClassStudentEntities.Add(DBClassStudent); } result = await _DBContext.SaveChangesAsync(); } else { throw new Exception("Fail to save classroom details"); } transaction.Commit(); RtnFlag = "SUCCESS"; } catch (Exception ex) { transaction.Rollback(); RtnFlag = ex.Message; //throw; } } }); return(RtnFlag); }