public ActionResult <ScheduleStudentListViewModel> SearchScheduledStudentForGroupDrop(PageResult pageResult)
        {
            ScheduleStudentListViewModel ScheduledStudentListView = new ScheduleStudentListViewModel();

            try
            {
                ScheduledStudentListView = _studentScheduleService.SearchScheduledStudentForGroupDrop(pageResult);
            }
            catch (Exception es)
            {
                ScheduledStudentListView._failure = true;
                ScheduledStudentListView._message = es.Message;
            }
            return(ScheduledStudentListView);
        }
예제 #2
0
        /// <summary>
        /// Search Scheduled Student For Group Drop
        /// </summary>
        /// <param name="scheduleStudentListViewModel"></param>
        /// <returns></returns>
        public ScheduleStudentListViewModel SearchScheduledStudentForGroupDrop(PageResult pageResult)
        {
            ScheduleStudentListViewModel ScheduledStudentListView = new ScheduleStudentListViewModel();

            try
            {
                if (TokenManager.CheckToken(pageResult._tenantName + pageResult._userName, pageResult._token))
                {
                    ScheduledStudentListView = this.studentScheduleRepository.SearchScheduledStudentForGroupDrop(pageResult);
                }
                else
                {
                    ScheduledStudentListView._failure = true;
                    ScheduledStudentListView._message = TOKENINVALID;
                }
            }
            catch (Exception es)
            {
                ScheduledStudentListView._failure = true;
                ScheduledStudentListView._message = es.Message;
            }
            return(ScheduledStudentListView);
        }
        /// <summary>
        /// Search Scheduled Student For Group Drop
        /// </summary>
        /// <param name="scheduleStudentListViewModel"></param>
        /// <returns></returns>
        public ScheduleStudentListViewModel SearchScheduledStudentForGroupDrop(PageResult pageResult)
        {
            ScheduleStudentListViewModel        scheduleStudentListView = new ScheduleStudentListViewModel();
            IQueryable <ScheduleStudentForView> transactionIQ           = null;

            try
            {
                var scheduledStudentData = this.context?.StudentCoursesectionSchedule.
                                           Join(this.context?.StudentMaster,
                                                scs => scs.StudentId, sm => sm.StudentId,
                                                (scs, sm) => new { scs, sm }).Where(c => c.scs.TenantId == pageResult.TenantId && c.scs.SchoolId == pageResult.SchoolId && c.scs.CourseSectionId == pageResult.CourseSectionId && c.sm.SchoolId == pageResult.SchoolId && c.sm.TenantId == pageResult.TenantId).ToList().Select(ssv => new ScheduleStudentForView
                {
                    SchoolId          = ssv.sm.SchoolId,
                    TenantId          = ssv.sm.TenantId,
                    StudentId         = ssv.sm.StudentId,
                    FirstGivenName    = ssv.sm.FirstGivenName,
                    LastFamilyName    = ssv.sm.LastFamilyName,
                    AlternateId       = ssv.sm.AlternateId,
                    StudentInternalId = ssv.sm.StudentInternalId,
                    GradeLevel        = this.context.Gradelevels.FirstOrDefault(c => c.TenantId == ssv.sm.TenantId && c.SchoolId == ssv.sm.SchoolId && c.GradeId == ssv.scs.GradeId)?.Title,
                    Section           = this.context.Sections.FirstOrDefault(c => c.TenantId == ssv.sm.TenantId && c.SchoolId == ssv.sm.SchoolId && c.SectionId == ssv.sm.SectionId)?.Name,
                    PhoneNumber       = ssv.sm.MobilePhone,
                    Action            = ssv.scs.IsDropped,
                    ScheduleDate      = ssv.scs.CreatedOn,
                    StudentPhoto      = (pageResult.ProfilePhoto == true)?ssv.sm.StudentPhoto:null
                }).ToList();

                if (scheduledStudentData.Count > 0)
                {
                    if (pageResult.FilterParams == null || pageResult.FilterParams.Count == 0)
                    {
                        transactionIQ = scheduledStudentData.AsQueryable();
                    }
                    else
                    {
                        if (pageResult.FilterParams != null && pageResult.FilterParams.ElementAt(0).ColumnName == null && pageResult.FilterParams.Count == 1)
                        {
                            string Columnvalue = pageResult.FilterParams.ElementAt(0).FilterValue;

                            transactionIQ = scheduledStudentData.Where(x => x.FirstGivenName.ToLower().Contains(Columnvalue.ToLower()) || x.LastFamilyName.ToLower().Contains(Columnvalue.ToLower()) || x.GradeLevel.ToLower().Contains(Columnvalue.ToLower()) || x.ScheduleDate.ToString() == Columnvalue).AsQueryable();
                        }
                        else
                        {
                            transactionIQ = Utility.FilteredData(pageResult.FilterParams, scheduledStudentData).AsQueryable();
                        }
                        transactionIQ = transactionIQ.Distinct();
                    }
                    if (pageResult.SortingModel != null)
                    {
                        switch (pageResult.SortingModel.SortColumn.ToLower())
                        {
                        default:
                            transactionIQ = Utility.Sort(transactionIQ, pageResult.SortingModel.SortColumn, pageResult.SortingModel.SortDirection.ToLower());
                            break;
                        }
                    }

                    int totalCount = transactionIQ.Count();
                    if (pageResult.PageNumber > 0 && pageResult.PageSize > 0)
                    {
                        transactionIQ = transactionIQ.Skip((pageResult.PageNumber - 1) * pageResult.PageSize).Take(pageResult.PageSize);
                    }
                    scheduleStudentListView.scheduleStudentForView = transactionIQ.ToList();
                    scheduleStudentListView.TotalCount             = totalCount;
                }
                else
                {
                    scheduleStudentListView.scheduleStudentForView = scheduledStudentData;
                    scheduleStudentListView._failure = false;
                    scheduleStudentListView._message = NORECORDFOUND;
                }

                scheduleStudentListView.TenantId        = pageResult.TenantId;
                scheduleStudentListView.SchoolId        = pageResult.SchoolId;
                scheduleStudentListView.CourseSectionId = pageResult.CourseSectionId;
                scheduleStudentListView.PageNumber      = pageResult.PageNumber;
                scheduleStudentListView._pageSize       = pageResult.PageSize;
                scheduleStudentListView._tenantName     = pageResult._tenantName;
                scheduleStudentListView._token          = pageResult._token;
                scheduleStudentListView._failure        = false;
            }
            catch (Exception es)
            {
                scheduleStudentListView._failure = true;
                scheduleStudentListView._message = es.Message;;
            }
            return(scheduleStudentListView);
        }