Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }