예제 #1
0
            //Used v-2
            /// <summary>
            /// Returns List<runningClass/> for the upcoming Session.
            /// </summary>
            /// <param name="schoolId"></param>
            /// <param name="nextSessionRelativePosition">Position of  either sub-year or session wrt. their year or academic year respectively.
            ///  i.e. within the year the sub-year position is either 1 or 2 (if two subyears). don't provide its actual position,
            /// but the relative positions within the sub-years.
            /// </param>
            /// <param name="academicYearId"> pass id of next academic year.. only pass for getting rcls while saveing</param>
            /// <param name="sessionId"></param>
            public Dictionary <Program, List <RunningClass> > ListClassesForNextSession(int schoolId
                                                                                        , int nextSessionRelativePosition, int academicYearId = 0, int sessionId = 0)
            {
                try
                {
                    Dictionary <Program, List <RunningClass> > dict = new Dictionary <Program, List <RunningClass> >();
                    // nextSessionRelativePosition is not 0-indexed so we make it 0-indexed by subtracting 1
                    var sessAndSubYearPosition = nextSessionRelativePosition - 1;

                    var aYears = Context.AcademicYear.Where(x => !(x.Void ?? false))
                                 .OrderByDescending(x => x.Position).ToList();


                    //academic years loop
                    for (int a = 0; a < aYears.Count; a++)
                    {
                        var aca = aYears[a];


                        var progBatches = aca.Batches.First().ProgramBatches.Where(x => !(x.Void ?? false)).ToList();
                        //program batches loop
                        for (int pb = 0; pb < progBatches.Count; pb++)
                        {
                            var progBatch = progBatches[pb];
                            var years     = progBatch.Program.Year.Where(x => !(x.Void ?? false))
                                            .OrderBy(x => x.Position).ToList();


                            if (a < years.Count)
                            {
                                var runningClasses = new List <RunningClass>();
                                if (dict.ContainsKey(progBatch.Program))
                                {
                                    runningClasses = dict[progBatch.Program];
                                }
                                else
                                {
                                    dict.Add(progBatch.Program, runningClasses);
                                }


                                var year = years[a];

                                var subYears = year.SubYears.Where(x => !(x.Void ?? false))
                                               .OrderBy(x => x.Position).ToList(); //[sessAndSubYearPosition];

                                // if there's no sub-year then don't create running class
                                if (sessAndSubYearPosition < subYears.Count)
                                {
                                    //get sub-year at specified position
                                    var subYear      = subYears[sessAndSubYearPosition];
                                    var runningClass = new RunningClass()
                                    {
                                        AcademicYearId = academicYearId,
                                        //AcademicYear = latestAca,
                                        Completed = false,
                                        IsActive  = true,
                                        SessionId = sessionId,
                                        //Session = latestSession,
                                        ProgramBatchId = progBatch.Id,
                                        ProgramBatch   = progBatch,
                                        YearId         = year.Id,
                                        Year           = year,
                                        Void           = false,
                                        SubYearId      = subYear.Id,
                                        SubYear        = subYear,
                                    };
                                    runningClasses.Add(runningClass);
                                }
                            }
                        } //end of program batch loop
                    }     //end of academic years loop
                    return(dict);
                    //}
                }
                catch
                {
                    return(null);
                }
                return(null);
            }
예제 #2
0
        void Save()
        {
            //var rc = Session["RunningClassYear"] as RunningClassEventArgs;
            //if (rc != null)
            int sessionId      = SessionId;
            int academicYearId = AcademicYearId;
            var list           = new List <RunningClass>();


            foreach (ProgramCheckBoxAndLabel p in pnlProgramListing.Controls)
            {
                foreach (var y in p.GetControls())
                {
                    if (SessionId > 0)
                    {
                        //year and subyear both must be included
                        foreach (var s in y.GetControls())
                        {
                            //if no data was previously saved and no batch assinged then don't add to list
                            if (s.Checked || s.RunningClassId > 0)
                            {
                                if (s.SelectedProgramBatchId > 0 || s.RunningClassId > 0)
                                {
                                    var rc = new RunningClass()
                                    {
                                        Id = s.RunningClassId
                                        ,
                                        AcademicYearId = academicYearId
                                        ,
                                        YearId = s.YearId
                                        ,
                                        SubYearId = s.SubYearId
                                        ,
                                        SessionId = sessionId
                                        ,
                                        Void = !(s.Checked && y.Checked)
                                    };
                                    if (s.SelectedProgramBatchId > 0)
                                    {
                                        rc.ProgramBatchId = s.SelectedProgramBatchId;
                                    }
                                    list.Add(rc);
                                }
                            }
                        }
                    }
                    else
                    {
                        //only year, no subyear
                        //if no data was previously saved and no batch assinged then don't add to list
                        if (y.Checked || y.RunningClassId > 0)
                        {
                            if (y.SelectedProgramBatchId > 0 || y.RunningClassId > 0)
                            {
                                var rc = new RunningClass()
                                {
                                    Id = y.RunningClassId
                                    ,
                                    AcademicYearId = academicYearId
                                    ,
                                    YearId = y.YearId
                                    ,
                                    Void = (!y.Checked)
                                };
                                if (y.SelectedProgramBatchId > 0)
                                {
                                    rc.ProgramBatchId = y.SelectedProgramBatchId;
                                }
                                list.Add(rc);
                            }
                        }
                    }
                }
            }
            //var lCntrl = pnlProgramListing.FindControl("levelControl" + rc.LevelId) as ListLevelUC;
            //foreach (ListLevelUC l in pnlProgramListing.Controls)
            //{
            //    foreach (var f in l.GetControls())
            //    {

            //    }
            //}
            //save
            if (list.Any())
            {
                using (var helper = new DbHelper.AcademicPlacement())
                {
                    var saved = false;//helper.AddOrUpdateRunningClass(list);
                    if (saved)
                    {
                        if (sessionId > 0)
                        {
                            Response.Redirect("~/Views/Academy/AcademicYear/AcademicYearDetail.aspx?aId=" +
                                              academicYearId + "&sId=" + sessionId);
                        }
                        else
                        {
                            Response.Redirect("~/Views/Academy/AcademicYear/AcademicYearDetail.aspx?aId=" +
                                              academicYearId);
                        }
                    }
                    //if (saved) Response.Redirect("~/Views/Academy/List.aspx");
                }
            }
        }