Example #1
0
        public void FinalGradeTest()
        {
            //       Assert.AreEqual(100, Kata.FinalGrade(100, 12));
            //       Assert.AreEqual(90, Kata.FinalGrade(85, 5));
            //       Assert.AreEqual(100, Kata.FinalGrade(99, 0));
            //       Assert.AreEqual(100, Kata.FinalGrade(10, 15));
            //       Assert.AreEqual(90, Kata.FinalGrade(85, 5));
            //       Assert.AreEqual(75, Kata.FinalGrade(55, 3));
            //       Assert.AreEqual(0, Kata.FinalGrade(55, 0));
            //       Assert.AreEqual(0, Kata.FinalGrade(20, 2));
            for (int e = 0; e <= 100; e++)
            {
                for (int p = 0; p <= 11; p++)
                {
                    Assert.AreEqual(solution(e, p), StudentFinalGrade.FinalGrade(e, p),
                                    $"exam = {e}, projects = {p}");
                }
            }

            Random rnd = new Random();

            for (var i = 0; i < 100; i++)
            {
                var a = rnd.Next(0, 100);
                var b = rnd.Next(0, 20);
                Assert.AreEqual(solution(a, b), StudentFinalGrade.FinalGrade(a, b));
            }
        }
Example #2
0
        public CalculateStudentFinalGradeResponse Invoke(CalculateStudentFinalGradeRequest request)
        {
            var lectureGrade  = new StudentGrade(request.LectureGrade);
            var exerciseGrade = new StudentGrade(request.ExerciseGrade);
            var workshopGrade = new StudentGrade(request.WorkshopGrade);
            var finalGrade    = new StudentFinalGrade(lectureGrade, exerciseGrade, workshopGrade);

            return(new CalculateStudentFinalGradeResponse
            {
                FinalGrade = finalGrade.Value,
                HasPassed = finalGrade.HasPassed
            });
        }
Example #3
0
        public void CreateObject_WithGivenGrades_ShouldCalculateCorrectlyFinalGradeAndHasPassedFlag(
            StudentGrade lectureGrade,
            StudentGrade exerciseGrade,
            StudentGrade workshopGrade,
            double expectedFinalGradeValue,
            bool expectedHasPassed
            )
        {
            // When
            var finalGrade = new StudentFinalGrade(lectureGrade, exerciseGrade, workshopGrade);

            // Then
            finalGrade.Should().NotBeNull();
            finalGrade.Value.Should().Be(expectedFinalGradeValue);
            finalGrade.HasPassed.Should().Be(expectedHasPassed);
        }
Example #4
0
 public void Basic()
 {
     Assert.AreEqual(100, StudentFinalGrade.FinalGrade(100, 12));
     Assert.AreEqual(90, StudentFinalGrade.FinalGrade(85, 5));
 }
        public async Task <IActionResult> AddRate(RateModel model)
        {
            try
            {
                var    studentFinalGrade = new StudentFinalGrade();
                string mesaj             = "";

                #region Toplamlar
                //I. Rapor
                decimal?toplamRaporPuan = (model.DuzenBicim * model.DuzenBicimWeight) + (model.Alintilama * model.AlintilamaWeight) + (model.YazimveDilkalite * model.YazimveDilkaliteWeight) + (model.RaporBoyut * model.RaporBoyutWeight) + (model.ProjeTanimi * model.ProjeTanimiWeight) + (model.GereksinimAnaliz * model.GereksinimAnalizWeight) + (model.GercekciKisitlama * model.GercekciKisitlamaWeight) + (model.AhlakiKonu * model.AhlakiKonuWeight) + (model.SistemTasarim * model.SistemTasarimWeight) + (model.Uygulama * model.UygulamaWeight) + (model.Standartlar * model.StandartlarWeight) + (model.Testler * model.TestlerWeight) + (model.SistemKullanimKılavuz * model.SistemKullanimKılavuzWeight) + (model.CozumAciklama * model.CozumAciklamaWeight) + (model.Kaynak * model.KaynakWeight) + (model.Ekler * model.EklerWeight);
                //II. Danışman
                var toplamDanismanPuan = (model.Toplantisikligi * model.ToplantisikligiWeight) + (model.IlerlemeRapor * model.IlerlemeRaporWeight) + (model.ProjeGelistirme * model.ProjeGelistirmeWeight);
                //III. Projenin Kalitesi
                var toplamProjeKalitePuan = (model.DisiplinliGelistirme * model.DisiplinliGelistirmeWeight) + (model.YeniFikir * model.YeniFikirWeight) + (model.UygulamaKalitesi * model.UygulamaKalitesiWeight) + (model.UygulamaAraclari * model.UygulamaAraclariWeight) + (model.ProjeCozum * model.ProjeCozumWeight);
                //IV. Sunum
                var toplamSunumPuan = (model.Duzen * model.DuzenWeight) + (model.ZamanKullanim * model.ZamanKullanimWeight) + (model.SlaytKalite * model.SlaytKaliteWeight) + (model.IletisimYetenek * model.IletisimYetenekWeight) + (model.SoruCevap * model.SoruCevapWeight);
                //Toplam Puanlar
                var toplamPuan = (toplamRaporPuan + toplamDanismanPuan + toplamProjeKalitePuan + toplamSunumPuan) / 4;
                //Genel Toplam Puan
                var genelToplamPuan = toplamRaporPuan + toplamDanismanPuan + toplamProjeKalitePuan + toplamSunumPuan;

                #endregion

                #region Reports Ekle
                studentFinalGrade = new StudentFinalGrade
                {
                    ReportsId = model.ReportsId,
                    //I. Rapor
                    DuzenBicim            = (decimal)model.DuzenBicim,
                    Alintilama            = (decimal)model.Alintilama,
                    YazimveDilkalite      = (decimal)model.YazimveDilkalite,
                    RaporBoyut            = (decimal)model.RaporBoyut,
                    ProjeTanimi           = (decimal)model.ProjeTanimi,
                    GereksinimAnaliz      = (decimal)model.GereksinimAnaliz,
                    GercekciKisitlama     = (decimal)model.GercekciKisitlama,
                    AhlakiKonu            = (decimal)model.AhlakiKonu,
                    SistemTasarim         = (decimal)model.SistemTasarim,
                    Uygulama              = (decimal)model.Uygulama,
                    Standartlar           = (decimal)model.Standartlar,
                    Testler               = (decimal)model.Testler,
                    SistemKullanimKılavuz = (decimal)model.SistemKullanimKılavuz,
                    CozumAciklama         = (decimal)model.CozumAciklama,
                    Kaynak          = (decimal)model.Kaynak,
                    Ekler           = (decimal)model.Ekler,
                    ToplamRaporPuan = (decimal)toplamRaporPuan,
                    //II. Danışman
                    Toplantisikligi    = (decimal)model.Toplantisikligi,
                    IlerlemeRapor      = (decimal)model.IlerlemeRapor,
                    ProjeGelistirme    = (decimal)model.ProjeGelistirme,
                    ToplamDanismanPuan = (decimal)toplamDanismanPuan,
                    //III. Projenin Kalitesi
                    DisiplinliGelistirme = (decimal)model.DisiplinliGelistirme,
                    YeniFikir            = (decimal)model.YeniFikir,
                    UygulamaKalitesi     = (decimal)model.UygulamaKalitesi,
                    UygulamaAraclari     = (decimal)model.UygulamaAraclari,
                    ProjeCozum           = (decimal)model.ProjeCozum,
                    ToplamKalitePuan     = (decimal)toplamProjeKalitePuan,
                    //IV. Sunum
                    Duzen           = (decimal)model.Duzen,
                    ZamanKullanim   = (decimal)model.ZamanKullanim,
                    SlaytKalite     = (decimal)model.SlaytKalite,
                    IletisimYetenek = (decimal)model.IletisimYetenek,
                    SoruCevap       = (decimal)model.SoruCevap,
                    ToplamSunumPuan = (decimal)toplamSunumPuan,
                    //Toplamlar
                    GenelToplamRaporPuan    = (decimal)toplamPuan,
                    GenelBolunmusToplamPuan = (decimal)genelToplamPuan,
                    GenelOzgunluk           = (decimal)model.Ozgunluk,
                    GenelSonPuan            = ((decimal)toplamPuan * (decimal)model.Ozgunluk) / 100
                };
                await _studentFinalGradeService.AddAsync(studentFinalGrade);

                mesaj = "Puanlama Başarıyle Eklendi.";
                #endregion

                return(Json(new JsonMessage {
                    HataMi = false, Baslik = "İşlem Başarılı", Mesaj = mesaj
                }));
            }
            catch (Exception ex)
            {
                return(Json(new JsonMessage {
                    HataMi = true, Baslik = "İşlem Başarısız", Mesaj = "İşlem Sırasında Hata Oluştu."
                }));
            }
        }
Example #6
0
        /// <summary>
        /// Add Update Student Final Grade
        /// </summary>
        /// <param name="studentFinalGradeListModel"></param>
        /// <returns></returns>
        public StudentFinalGradeListModel AddUpdateStudentFinalGrade(StudentFinalGradeListModel studentFinalGradeListModel)
        {
            using (var transaction = this.context.Database.BeginTransaction())
            {
                try
                {
                    List <StudentFinalGrade> studentFinalGradeList = new List <StudentFinalGrade>();
                    //List<StudentFinalGradeStandard> studentFinalGradeStandardList = new List<StudentFinalGradeStandard>();
                    List <StudentFinalGradeComments> studentFinalGradeCommentList = new List <StudentFinalGradeComments>();

                    int Id = 1;
                    var StudentFinalStandard = this.context?.StudentFinalGradeStandard.ToList();

                    if (StudentFinalStandard.Count > 0)
                    {
                        Id = Convert.ToInt32(StudentFinalStandard.OrderByDescending(s => s.Id).FirstOrDefault().Id + 1);
                    }

                    int?YrMarkingPeriodId    = 0;
                    int?SmstrMarkingPeriodId = 0;
                    int?QtrMarkingPeriodId   = 0;

                    if (studentFinalGradeListModel.MarkingPeriodId != null)
                    {
                        var markingPeriodid = studentFinalGradeListModel.MarkingPeriodId.Split("_", StringSplitOptions.RemoveEmptyEntries);

                        if (markingPeriodid.First() == "2")
                        {
                            QtrMarkingPeriodId = Int32.Parse(markingPeriodid.ElementAt(1));
                        }
                        if (markingPeriodid.First() == "1")
                        {
                            SmstrMarkingPeriodId = Int32.Parse(markingPeriodid.ElementAt(1));
                        }
                        if (markingPeriodid.First() == "0")
                        {
                            YrMarkingPeriodId = Int32.Parse(markingPeriodid.ElementAt(1));
                        }
                    }
                    foreach (var studentFinalGrade in studentFinalGradeListModel.studentFinalGradeList)
                    {
                        foreach (var studentFinalGradeStandarddata in studentFinalGrade.StudentFinalGradeStandard)
                        {
                            studentFinalGradeStandarddata.Id = Id;
                            studentFinalGradeStandarddata.QtrMarkingPeriodId   = (QtrMarkingPeriodId > 0) ? QtrMarkingPeriodId : null;
                            studentFinalGradeStandarddata.SmstrMarkingPeriodId = (SmstrMarkingPeriodId > 0) ? SmstrMarkingPeriodId : null;
                            studentFinalGradeStandarddata.YrMarkingPeriodId    = (YrMarkingPeriodId > 0) ? YrMarkingPeriodId : null;
                            studentFinalGradeStandarddata.CalendarId           = studentFinalGradeListModel.CalendarId;
                            studentFinalGradeStandarddata.AcademicYear         = studentFinalGradeListModel.AcademicYear;
                            studentFinalGradeStandarddata.TeacherComment       = studentFinalGrade.TeacherComment;
                            Id++;
                        }
                    }

                    if (studentFinalGradeListModel.studentFinalGradeList.Count > 0)
                    {
                        var studentFinalGradeData = new List <StudentFinalGrade>();

                        //if (studentFinalGradeListModel.MarkingPeriodId != null)
                        //{
                        studentFinalGradeData = this.context?.StudentFinalGrade.Where(e => e.SchoolId == studentFinalGradeListModel.SchoolId && e.TenantId == studentFinalGradeListModel.TenantId && e.CourseId == studentFinalGradeListModel.CourseId && e.CourseSectionId == studentFinalGradeListModel.CourseSectionId && e.CalendarId == studentFinalGradeListModel.CalendarId /*&& (YrMarkingPeriodId > 0 && e.YrMarkingPeriodId == YrMarkingPeriodId || SmstrMarkingPeriodId > 0 && e.SmstrMarkingPeriodId == SmstrMarkingPeriodId || QtrMarkingPeriodId > 0 && e.QtrMarkingPeriodId == QtrMarkingPeriodId)*/).ToList();
                        //}
                        //else
                        //{
                        //    studentFinalGradeData = this.context?.StudentFinalGrade.Where(e => e.SchoolId == studentFinalGradeListModel.SchoolId && e.TenantId == studentFinalGradeListModel.TenantId && e.CourseId == studentFinalGradeListModel.CourseId && e.CourseSectionId == studentFinalGradeListModel.CourseSectionId && e.CalendarId == studentFinalGradeListModel.CalendarId && e.YrMarkingPeriodId == null && e.SmstrMarkingPeriodId == null && e.QtrMarkingPeriodId == null).ToList();
                        //}

                        if (studentFinalGradeData.Count > 0)
                        {
                            var containStudentFinalGradeSrlno = studentFinalGradeData.Select(x => x.StudentFinalGradeSrlno).Distinct().ToList();

                            List <long> studentFinalGradeSrlnos = new List <long> {
                            };
                            studentFinalGradeSrlnos = containStudentFinalGradeSrlno;

                            var studentFinalGradeStandardData = this.context?.StudentFinalGradeStandard.Where(e => e.SchoolId == studentFinalGradeListModel.SchoolId && e.TenantId == studentFinalGradeListModel.TenantId && e.CalendarId == studentFinalGradeListModel.CalendarId && /*(YrMarkingPeriodId > 0 && e.YrMarkingPeriodId == YrMarkingPeriodId || SmstrMarkingPeriodId > 0 && e.SmstrMarkingPeriodId == SmstrMarkingPeriodId || QtrMarkingPeriodId > 0 && e.QtrMarkingPeriodId == QtrMarkingPeriodId) &&*/ (studentFinalGradeSrlnos == null || (studentFinalGradeSrlnos.Contains(e.StudentFinalGradeSrlno)))).ToList();

                            if (studentFinalGradeStandardData.Count > 0)
                            {
                                this.context?.StudentFinalGradeStandard.RemoveRange(studentFinalGradeStandardData);
                            }

                            var studentFinalGradeCommentsData = this.context?.StudentFinalGradeComments.Where(e => e.SchoolId == studentFinalGradeListModel.SchoolId && e.TenantId == studentFinalGradeListModel.TenantId && (studentFinalGradeSrlnos == null || (studentFinalGradeSrlnos.Contains(e.StudentFinalGradeSrlno)))).ToList();

                            if (studentFinalGradeCommentsData.Count > 0)
                            {
                                this.context?.StudentFinalGradeComments.RemoveRange(studentFinalGradeCommentsData);
                            }
                            this.context?.StudentFinalGrade.RemoveRange(studentFinalGradeData);
                            this.context?.SaveChanges();


                            long?studentFinalGradeSrlno = 1;

                            var studentFinalGradeSrlnoData = this.context?.StudentFinalGrade.Where(x => x.SchoolId == studentFinalGradeListModel.SchoolId && x.TenantId == studentFinalGradeListModel.TenantId).OrderByDescending(x => x.StudentFinalGradeSrlno).FirstOrDefault();

                            if (studentFinalGradeSrlnoData != null)
                            {
                                studentFinalGradeSrlno = studentFinalGradeSrlnoData.StudentFinalGradeSrlno + 1;
                            }

                            foreach (var studentFinalGrade in studentFinalGradeListModel.studentFinalGradeList)
                            {
                                var studentFinalGradeUpdate = new StudentFinalGrade()
                                {
                                    TenantId                  = studentFinalGradeListModel.TenantId,
                                    SchoolId                  = studentFinalGradeListModel.SchoolId,
                                    StudentId                 = studentFinalGrade.StudentId,
                                    CourseId                  = studentFinalGradeListModel.CourseId,
                                    CourseSectionId           = studentFinalGradeListModel.CourseSectionId,
                                    GradeId                   = studentFinalGrade.GradeId,
                                    GradeScaleId              = studentFinalGrade.GradeScaleId,
                                    AcademicYear              = studentFinalGradeListModel.AcademicYear,
                                    CalendarId                = studentFinalGradeListModel.CalendarId,
                                    YrMarkingPeriodId         = (YrMarkingPeriodId > 0) ? YrMarkingPeriodId : null,
                                    SmstrMarkingPeriodId      = (SmstrMarkingPeriodId > 0) ? SmstrMarkingPeriodId : null,
                                    QtrMarkingPeriodId        = (QtrMarkingPeriodId > 0) ? QtrMarkingPeriodId : null,
                                    IsPercent                 = studentFinalGradeListModel.IsPercent,
                                    PercentMarks              = studentFinalGrade.PercentMarks,
                                    GradeObtained             = studentFinalGrade.GradeObtained,
                                    UpdatedBy                 = studentFinalGradeListModel.CreatedOrUpdatedBy,
                                    UpdatedOn                 = DateTime.UtcNow,
                                    StudentFinalGradeSrlno    = (long)studentFinalGradeSrlno,
                                    BasedOnStandardGrade      = studentFinalGrade.BasedOnStandardGrade,
                                    TeacherComment            = studentFinalGrade.TeacherComment,
                                    StudentFinalGradeComments = studentFinalGrade.StudentFinalGradeComments?.Select(c =>
                                    {
                                        c.UpdatedBy = studentFinalGradeListModel.CreatedOrUpdatedBy;
                                        c.UpdatedOn = DateTime.UtcNow;
                                        return(c);
                                    }).ToList(),
                                    StudentFinalGradeStandard = studentFinalGrade.StudentFinalGradeStandard?.Select(c =>
                                    {
                                        c.UpdatedBy = studentFinalGradeListModel.CreatedOrUpdatedBy;
                                        c.UpdatedOn = DateTime.UtcNow;
                                        return(c);
                                    }).ToList()
                                };
                                studentFinalGradeList.Add(studentFinalGradeUpdate);
                                studentFinalGradeSrlno++;
                            }
                            studentFinalGradeListModel._message = "Student Final Grade Updated Succsesfully.";
                        }
                        else
                        {
                            long?studentFinalGradeSrlno = 1;

                            var studentFinalGradeSrlnoData = this.context?.StudentFinalGrade.Where(x => x.SchoolId == studentFinalGradeListModel.SchoolId && x.TenantId == studentFinalGradeListModel.TenantId).OrderByDescending(x => x.StudentFinalGradeSrlno).FirstOrDefault();

                            if (studentFinalGradeSrlnoData != null)
                            {
                                studentFinalGradeSrlno = studentFinalGradeSrlnoData.StudentFinalGradeSrlno + 1;
                            }

                            foreach (var studentFinalGrade in studentFinalGradeListModel.studentFinalGradeList)
                            {
                                var studentFinalGradeAdd = new StudentFinalGrade()
                                {
                                    TenantId                  = studentFinalGradeListModel.TenantId,
                                    SchoolId                  = studentFinalGradeListModel.SchoolId,
                                    StudentId                 = studentFinalGrade.StudentId,
                                    CourseId                  = studentFinalGradeListModel.CourseId,
                                    CourseSectionId           = studentFinalGradeListModel.CourseSectionId,
                                    GradeId                   = studentFinalGrade.GradeId,
                                    GradeScaleId              = studentFinalGrade.GradeScaleId,
                                    AcademicYear              = studentFinalGradeListModel.AcademicYear,
                                    CalendarId                = studentFinalGradeListModel.CalendarId,
                                    YrMarkingPeriodId         = (YrMarkingPeriodId > 0) ? YrMarkingPeriodId : null,
                                    SmstrMarkingPeriodId      = (SmstrMarkingPeriodId > 0) ? SmstrMarkingPeriodId : null,
                                    QtrMarkingPeriodId        = (QtrMarkingPeriodId > 0) ? QtrMarkingPeriodId : null,
                                    IsPercent                 = studentFinalGradeListModel.IsPercent,
                                    PercentMarks              = studentFinalGrade.PercentMarks,
                                    GradeObtained             = studentFinalGrade.GradeObtained,
                                    CreatedBy                 = studentFinalGradeListModel.CreatedOrUpdatedBy,
                                    CreatedOn                 = DateTime.UtcNow,
                                    StudentFinalGradeSrlno    = (long)studentFinalGradeSrlno,
                                    BasedOnStandardGrade      = studentFinalGrade.BasedOnStandardGrade,
                                    TeacherComment            = studentFinalGrade.TeacherComment,
                                    StudentFinalGradeComments = studentFinalGrade.StudentFinalGradeComments?.Select(c => { c.CreatedBy = studentFinalGradeListModel.CreatedOrUpdatedBy; c.CreatedOn = DateTime.UtcNow; return(c); }).ToList(),
                                    StudentFinalGradeStandard = studentFinalGrade.StudentFinalGradeStandard?.Select(c =>
                                    {
                                        c.CreatedBy = studentFinalGradeListModel.CreatedOrUpdatedBy;
                                        c.CreatedOn = DateTime.UtcNow;
                                        return(c);
                                    }).ToList()
                                };
                                studentFinalGradeList.Add(studentFinalGradeAdd);
                                studentFinalGradeSrlno++;
                            }
                            studentFinalGradeListModel._message = "Student Final Grade Added succsesfully.";
                        }
                        this.context?.StudentFinalGrade.AddRange(studentFinalGradeList);
                        //this.context?.StudentFinalGradeStandard.AddRange(studentFinalGradeStandardList);
                        this.context?.SaveChanges();
                        transaction.Commit();
                        studentFinalGradeListModel._failure = false;
                    }
                }
                catch (Exception es)
                {
                    transaction.Rollback();
                    studentFinalGradeListModel._failure = true;
                    studentFinalGradeListModel._message = es.Message;
                }
            }
            return(studentFinalGradeListModel);
        }