示例#1
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            lblError.Text = "";
            if (nddScore.Value <= 0)
            {
                lblError.Text = @"Score is required";
                return;
            }
            if ((nddScore.Value % 1) != 0)
            {
                lblError.Text = @"Score is whole number";
                return;
            }

            try
            {
                MatricNumber = AspNetUserService.GetStudentId((string)ddlMatricNumber.SelectedValue);
                var studentDetails = $"{MatricNumber.FirstName} {MatricNumber.LastName}({MatricNumber.MatricNumber})";
                var level          = LevelService.GetItem(LevelId);

                if (level.SectionModels != null && level.SectionModels.Count > 0)
                {
                    var message      = $@"Result Details {Environment.NewLine}Matric Number: {studentDetails}{Environment.NewLine}Course: {(string)ddlCourse.SelectedValue}{Environment.NewLine}Result: {nddScore.Value}";
                    var dialogResult = MessageBox.Show(message, @"Result Details", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    if (dialogResult == DialogResult.OK)
                    {
                        var cId = CourseService.GetCourseByName((string)ddlCourse.SelectedValue).Id;
                        var courseWithResult = ResultService.CanSaveResult(MatricNumber.Id, cId);
                        if (courseWithResult != null)
                        {
                            MessageBox.Show(@"Student already have result", "Upload Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }

                        var result = new ResultModel
                        {
                            SectionId = level.SectionModels.FirstOrDefault().Id,
                            CourseId  = cId,
                            StudentId = MatricNumber.Id,
                            Score     = int.Parse(nddScore.Value.ToString()),
                            CreatedAt = DateTime.UtcNow
                        };

                        ResultService.Create(result, 0);
                        MessageBox.Show($@"Result of {studentDetails} is saved", "Upload successfull", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    MessageBox.Show(@"Ensure that LEVEL selected has a SESSION attached to it.", "Upload Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception ex)
            {
                _logger.Error("Error Message: " + ex.Message.ToString(), ex);
                MessageBox.Show($@"Message: {ex.Message}{Environment.NewLine}Stack Message: {ex.StackTrace}", $@"Error Message from {typeof(SingleStudentSemesterResult)}");
            }
        }
示例#2
0
        private void btnUpload_Click(object sender, EventArgs e)
        {
            try
            {
                var level = LevelService.GetLevelId((string)ddlLevel2.SelectedValue);

                if (level.SectionModels != null && level.SectionModels.Count > 0)
                {
                    if (TextHelper.ContainsValue(new List <string>
                    {
                        beResultTemplate.Value
                    }))
                    {
                        lblError.Text = @"Result data is not selected";
                        return;
                    }

                    var dataRows = FileHelper.GetDataFromFile(beResultTemplate.Value);
                    var models   = new List <ResultSingleStudentTemplateDownloadModel>();

                    var rowIndex = 2;
                    foreach (var row in dataRows)
                    {
                        try
                        {
                            var institutionModel = new ResultSingleStudentTemplateDownloadModel()
                            {
                                CourseCode = row["CourseCode"].ToString(),
                                Score      = Convert.ToInt32(row["Score"].ToString()),
                            };
                            models.Add(institutionModel);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message);
                        }
                    }

                    gridSingleStudentResult.DataSource = models;
                    _resultTemplateDownloadModels      = models;
                    MatricNumber = AspNetUserService.GetStudentId((string)ddlMatricNumber.SelectedValue);
                    gridSingleStudentResult.Enabled             = true;
                    gridSingleStudentResult.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
                    SemesterId = SemesterService.GetSemesterId((string)ddlSemester2.SelectedValue);
                    LevelId    = level.Id;
                }
                else
                {
                    MessageBox.Show(@"Ensure that LEVEL selected has a SESSION attached to it.", "Upload Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception ex)
            {
                _logger.Error("Error Message: " + ex.Message.ToString(), ex);
                MessageBox.Show($@"Message: {ex.Message}{Environment.NewLine}Stack Message: {ex.StackTrace}", $@"Error Message from {typeof(SingleStudentSemesterResult)}");
            }
        }
示例#3
0
        private void btnUpload_Click(object sender, EventArgs e)
        {
            try
            {
                LevelId    = LevelService.GetLevelId((string)ddlLevel.SelectedValue).Id;
                SemesterId = SemesterService.GetSemesterId((string)ddlSemester.SelectedValue);
                Student    = AspNetUserService.GetStudentId((string)ddlMatricNumber.SelectedValue);
                List <ResultSingleStudentTemplateDownloadModel> forSemester = ResultService.GetStudentResultForSemester(Student.Id, LevelId, SemesterId);

                gridSingleStudentResult.DataSource          = forSemester;
                gridSingleStudentResult.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
            }
            catch (Exception ex)
            {
                _logger.Error("Error Message: " + ex.Message.ToString(), ex);
                this.ShowMessageBox($@"Message: {ex.Message}{Environment.NewLine}Stack Message: {ex.StackTrace}", $@"Error Message from {typeof(SingleStudentSemesterResult)}");
            }
        }
示例#4
0
        private void Initialize()
        {
            var semesterItems = SemesterService.GetCount().OrderBy(c => c.Id).ToList();
            var levels        = LevelService.GetCount().OrderBy(c => c.Id).ToList();

            ddlSemester.DataSource = semesterItems.ToList().Select(c => c.Name);
            ddlLevel.DataSource    = levels.Select(c => c.Name);

            ddlMatricNumber.DataSource = AspNetUserService
                                         .GetCount(Enum.GetName(typeof(RolesConstants.Enum), RolesConstants.Enum.Student))
                                         .Select(c => c.MatricNumber);

            ddlLevel.SelectedIndexChanged    += (sender, args) => { LevelId = LevelService.GetLevelId((string)ddlLevel.SelectedValue).Id; };
            ddlSemester.SelectedIndexChanged += (sender, args) =>
            {
                SemesterId = SemesterService.GetSemesterId((string)ddlSemester.SelectedValue);
            };
            ddlMatricNumber.SelectedIndexChanged += (sender, args) => { Student = AspNetUserService.GetStudentId((string)ddlMatricNumber.SelectedValue); };
            LoadDataForResult();
        }
示例#5
0
        private void btnLoadReport_Click(object sender, EventArgs e)
        {
            Student    = AspNetUserService.GetStudentId((string)ddlMatricNumber.SelectedValue);
            LevelId    = LevelService.GetLevelId((string)ddlLevel.SelectedValue).Id;
            SemesterId = SemesterService.GetSemesterId((string)ddlSemester.SelectedValue);


            var result = ResultService.StudentSemesterResult(Student.Id, LevelId, SemesterId);

            if (result == null)
            {
                this.ShowMessageBox("Can not load result at this time, please check selected values",
                                    "Error processing result", MessageBoxButtons.OK, RadMessageIcon.Error);

                return;
            }

            ReportDataSource studentDetails = new ReportDataSource("StudentDetails", new List <ReportStudentDetail>()
            {
                result.StudentDetail ?? new ReportStudentDetail(),
            });

            ReportDataSource reportStudentSemesterCourse = new ReportDataSource("ReportStudentSemesterCourse",
                                                                                result.SemesterCourse
                                                                                );

            ReportDataSource reportGradeDetail = new ReportDataSource("ReportGradeDetail",
                                                                      new List <ReportGradeDetail>()
            {
                result.GradeDetail ?? new ReportGradeDetail(),
            }
                                                                      );


            reportViewer1.LocalReport.DataSources.Clear();
            reportViewer1.LocalReport.DataSources.Add(reportGradeDetail);
            reportViewer1.LocalReport.DataSources.Add(reportStudentSemesterCourse);
            reportViewer1.LocalReport.DataSources.Add(studentDetails);
            reportViewer1.RefreshReport();
        }
示例#6
0
        public AllCourseStudent()
        {
            InitializeComponent();

            var semesterItems = SemesterService.GetCount().OrderBy(c => c.Id).ToList();
            var levels        = LevelService.GetCount().OrderBy(c => c.Id).ToList();

            ddlSemester.DataSource = semesterItems.ToList().Select(c => c.Name);
            ddlLevel.DataSource    = levels.Select(c => c.Name);

            gridSingleStudentResult.Enabled = false;

            ddlMatricNumber.DataSource = AspNetUserService
                                         .GetCount(Enum.GetName(typeof(RolesConstants.Enum), RolesConstants.Enum.Student))
                                         .Select(c => c.MatricNumber);

            ddlLevel.SelectedIndexChanged    += (sender, args) => { LevelId = LevelService.GetLevelId((string)ddlLevel.SelectedValue).Id; };
            ddlSemester.SelectedIndexChanged += (sender, args) =>
            {
                SemesterId = SemesterService.GetSemesterId((string)ddlSemester.SelectedValue);
            };
            ddlMatricNumber.SelectedIndexChanged += (sender, args) => { Student = AspNetUserService.GetStudentId((string)ddlMatricNumber.SelectedValue); };
        }
示例#7
0
        private void btnSaveResult_Click(object sender, EventArgs e)
        {
            try
            {
                var level    = LevelService.GetItem(LevelId);
                var semester = SemesterService.GetSemester(SemesterId).Name;
                var course   = CourseService.GetCourse(CourseId).Code;

                if (level.SectionModels != null && level.SectionModels.Count > 0)
                {
                    var message      = $@"Upload Details {Environment.NewLine}Level: {level.Name}{Environment.NewLine}Semester: {semester}{Environment.NewLine}Course: {course}{Environment.NewLine}Number of student: {_resultTemplateDownloadModels.Count}";
                    var dialogResult = this.ShowMessageBox(message, @"Data Upload Details", MessageBoxButtons.OKCancel, RadMessageIcon.Info);

                    if (dialogResult == DialogResult.OK)
                    {
                        var results          = new List <ResultModel>();
                        var studentProcessed = $@"Student Processed: {Environment.NewLine}";
                        var studentInDb      = $@"Student with result: {Environment.NewLine}";

                        foreach (var resultSingleStudentTemplateDownloadModel in _resultTemplateDownloadModels)
                        {
                            var studentModel = AspNetUserService.GetStudentId(resultSingleStudentTemplateDownloadModel.MatricNumber);
                            var courseModel  = CourseService.GetCourse(CourseId);
                            if (string.IsNullOrWhiteSpace(resultSingleStudentTemplateDownloadModel.MatricNumber))
                            {
                                continue;
                            }

                            if (courseModel == null)
                            {
                                continue;
                            }
                            var courseWithResult = ResultService.CanSaveResult(studentModel.Id, courseModel.Id);
                            if (courseWithResult != null)
                            {
                                studentInDb += $"{studentModel.MatricNumber}: {courseWithResult.Score} {Environment.NewLine}";
                                continue;
                            }

                            var result = new ResultModel
                            {
                                SectionId = level.SectionModels.FirstOrDefault().Id,
                                CourseId  = courseModel.Id,
                                StudentId = studentModel.Id,
                                Score     = resultSingleStudentTemplateDownloadModel.Score,
                                CreatedAt = DateTime.UtcNow
                            };
                            results.Add(result);
                            studentProcessed += $"{studentModel.MatricNumber}: {result.Score} {Environment.NewLine}";
                        }

                        ResultService.CreateBulk(results);
                        this.ShowMessageBox($@"{studentProcessed}{Environment.NewLine}{studentInDb}", @"Result Successed", MessageBoxButtons.OK, RadMessageIcon.Info);
                    }
                }
                else
                {
                    this.ShowMessageBox(@"Ensure that LEVEL selected has a SESSION attached to it.", "Upload Error", MessageBoxButtons.OK, RadMessageIcon.Error);
                }
            }
            catch (Exception ex)
            {
                _logger.Error("Error Message: " + ex.Message, ex);
                this.ShowMessageBox($@"Message: {ex.Message}{Environment.NewLine}Stack Message: {ex.StackTrace}", $@"Error Message from {typeof(SingleStudentSemesterResult)}");
            }
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                SemesterId = SemesterService.GetSemesterId((string)ddlSemester.SelectedValue);
                var level = LevelService.GetLevelId((string)ddlLevel.SelectedValue);
                LevelId = level.Id;

                Student = AspNetUserService.GetStudentId((string)ddlMatricNumber.SelectedValue);
                var data      = (List <ResultSingleStudentTemplateDownloadModel>)gridSingleStudentResult.DataSource;
                var oldResult = ResultService.GetStudentResultForSemester(Student.Id, LevelId, SemesterId);

                var updateResult = false;
                if (oldResult.Count == data.Count)
                {
                    updateResult = true;
                    var dialog = this.ShowMessageBox(@"Student have results for this semester already, Could you like to update it.", "Result Compeletion", MessageBoxButtons.OKCancel, RadMessageIcon.Error);
                    if (dialog == DialogResult.Cancel)
                    {
                        return;
                    }
                }

                if (oldResult.Count < data.Count)
                {
                    var dialog = this.ShowMessageBox($@"Student have {oldResult.Count} results for this semester already, could you like to save the rest.", "Result Processing", MessageBoxButtons.OKCancel, RadMessageIcon.Error);
                    if (dialog == DialogResult.Cancel)
                    {
                        return;
                    }
                }

                var newData = data.Except(oldResult, new ResultSingleStudentTemplateDownloadModelComparer()).ToList();

                var message = string.Empty;
                if (newData.Any())
                {
                    List <ResultModel> resultModels = new List <ResultModel>();
                    foreach (var resultSingleCourseTemplateDownloadModel in newData)
                    {
                        var result = oldResult.FirstOrDefault(c =>
                                                              c.CourseCode.Equals(resultSingleCourseTemplateDownloadModel.CourseCode,
                                                                                  StringComparison.OrdinalIgnoreCase));

                        ResultModel model = null;
                        if (result != null)
                        {
                            if (CheckScore(resultSingleCourseTemplateDownloadModel))
                            {
                                return;
                            }
                            if (updateResult)
                            {
                                model       = ResultService.GetByMatricNumberCourseCode(Student.MatricNumber, result.CourseCode);
                                model.Score = resultSingleCourseTemplateDownloadModel.Score;
                            }

                            if (updateResult)
                            {
                                message +=
                                    $"{resultSingleCourseTemplateDownloadModel.CourseCode}: Old({result.Score}) - New({resultSingleCourseTemplateDownloadModel.Score}){Environment.NewLine}";
                            }
                        }
                        else
                        {
                            if (CheckScore(resultSingleCourseTemplateDownloadModel))
                            {
                                return;
                            }

                            var cId = CourseService.GetCourseByName(resultSingleCourseTemplateDownloadModel.CourseCode).Id;
                            model = new ResultModel
                            {
                                SectionId = level.SectionModels.FirstOrDefault().Id,
                                CourseId  = cId,
                                StudentId = Student.Id,
                                Score     = resultSingleCourseTemplateDownloadModel.Score,
                                CreatedAt = DateTime.UtcNow
                            };

                            message +=
                                $"{resultSingleCourseTemplateDownloadModel.CourseCode}: {resultSingleCourseTemplateDownloadModel.Score}{Environment.NewLine}";
                        }

                        if (model != null)
                        {
                            resultModels.Add(model);
                        }
                    }



                    if (!string.IsNullOrWhiteSpace(message))
                    {
                        var dialogResult = this.ShowMessageBox(message, "Result to process", MessageBoxButtons.OKCancel,
                                                               RadMessageIcon.Info);

                        if (dialogResult == DialogResult.OK)
                        {
                            if (updateResult)
                            {
                                ResultService.UpdateBulk(resultModels);
                            }
                            else
                            {
                                ResultService.CreateBulk(resultModels);
                            }
                            this.ShowMessageBox($"{newData.Count} processed", "Result after processing",
                                                MessageBoxButtons.OKCancel);

                            gridSingleStudentResult.DataSource = ResultService.GetStudentResultForSemester(Student.Id, LevelId, SemesterId);
                        }
                    }

                    return;
                }

                message = "No result to update";
                this.ShowMessageBox(message, "Update Process", MessageBoxButtons.OK, RadMessageIcon.Info);
            }
            catch (Exception ex)
            {
                _logger.Error("Error Message: " + ex.Message, ex);
                this.ShowMessageBox($@"Message: {ex.Message}{Environment.NewLine}Stack Message: {ex.StackTrace}", $@"Error Message from {typeof(AllStudentCourseResult)}");
            }
        }