public async Task <IActionResult> GetGradeList(JQueryDataTableParamModel param)
        {
            using (var txscope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                try
                {
                    var parameters = CommonMethod.GetJQueryDatatableParamList(param, GetSortingColumnName(param.iSortCol_0));

                    var allList = await _gradeService.GetGradeList(parameters.Parameters.ToArray());

                    foreach (var grade in allList)
                    {
                        grade.lessonList = new List <LessonDto>();
                        var llist = Mapper.Map <List <LessonDto> >(_lessonService.GetAll(x => x.GradeId == grade.Id && x.IsDelete == false).ToList());
                        if (llist.Count > 0)
                        {
                            grade.lessonList.AddRange(llist);
                        }
                    }


                    var total = allList.FirstOrDefault()?.TotalRecords ?? 0;
                    return(Json(new
                    {
                        param.sEcho,
                        iTotalRecords = total,
                        iTotalDisplayRecords = total,
                        aaData = allList
                    }));
                }
                catch (Exception ex)
                {
                    ErrorLog.AddErrorLog(ex, "GetGradeList");
                    return(Json(new
                    {
                        param.sEcho,
                        iTotalRecords = 0,
                        iTotalDisplayRecords = 0,
                        aaData = ""
                    }));
                }
            }
        }