예제 #1
0
        public void Seed()
        {
            // Grade seed
            var grades = new DbEntities.Grades.Grade[]
            {
                new DbEntities.Grades.Grade {
                    Name = "Range", Description = "", GradeValueIsInPercentOrPostition = false, TotalMaxValue = 100, TotalMinValue = 0, MinimumPassValue = 40, SchoolId = null, RangeOrValue = false, Void = null,
                },
                new DbEntities.Grades.Grade {
                    Name        = "Letter Grading", Description = "", GradeValueIsInPercentOrPostition = false, TotalMaxValue = 100, TotalMinValue = 0, MinimumPassValue = 40, SchoolId = null, RangeOrValue = true, Void = null,
                    GradeValues = new List <DbEntities.Grades.GradeValue> {
                        new DbEntities.Grades.GradeValue {
                            Value = "F", IsFailGrade = false, EquivalentPercentOrPostition = 0, Void = null,
                        },
                        new DbEntities.Grades.GradeValue {
                            Value = "C-", IsFailGrade = false, EquivalentPercentOrPostition = 1.7f, Void = null,
                        },
                        new DbEntities.Grades.GradeValue {
                            Value = "C", IsFailGrade = false, EquivalentPercentOrPostition = 2f, Void = null,
                        },
                        new DbEntities.Grades.GradeValue {
                            Value = "C+", IsFailGrade = false, EquivalentPercentOrPostition = 2.3f, Void = null,
                        },
                        new DbEntities.Grades.GradeValue {
                            Value = "B-", IsFailGrade = false, EquivalentPercentOrPostition = 2.7f, Void = null,
                        },
                        new DbEntities.Grades.GradeValue {
                            Value = "B", IsFailGrade = false, EquivalentPercentOrPostition = 3, Void = null,
                        },
                        new DbEntities.Grades.GradeValue {
                            Value = "B+", IsFailGrade = false, EquivalentPercentOrPostition = 3.3f, Void = null,
                        },
                        new DbEntities.Grades.GradeValue {
                            Value = "A-", IsFailGrade = false, EquivalentPercentOrPostition = 3.7f, Void = null,
                        },
                        new DbEntities.Grades.GradeValue {
                            Value = "A", IsFailGrade = false, EquivalentPercentOrPostition = 4, Void = null,
                        },
                        //new DbEntities.Grades.GradeValue{Value = "A+", IsFailGrade = false, EquivalentPercentOrPostition = 0, Void = null, },
                    }
                },
            };

            _context.Grade.AddOrUpdate(
                p => p.Name,
                grades
                );
            _context.SaveChanges();
        }
예제 #2
0
 public float ConvertPositionToPercent(DbEntities.Grades.Grade grade, int position)
 {
     try
     {
         var maxGrade =
             grade.GradeValues.OrderByDescending(x => x.EquivalentPercentOrPostition).FirstOrDefault();
         if (maxGrade != null)
         {
             if (maxGrade.EquivalentPercentOrPostition != null)
             {
                 var percent = (float)((1.0 * position / maxGrade.EquivalentPercentOrPostition ?? 0) * 100);
                 return(percent);
             }
             return(0);
         }
         return(0);
     }
     catch
     {
         return(0);
     }
 }
예제 #3
0
            //
            public DbEntities.Grades.Grade AddOrUpdateGrade(DbEntities.Grades.Grade grade,
                                                            List <DbEntities.Grades.GradeValue> gradeValuesList)
            {
                try
                {
                    using (var scope = new TransactionScope())
                    {
                        var ent = Context.Grade.Find(grade.Id);
                        if (ent == null)
                        {
                            ent = Context.Grade.Add(grade);
                            Context.SaveChanges();
                            if (gradeValuesList != null)
                            {
                                for (var i = 0; i < gradeValuesList.Count; i++) // in gradeValuesList)
                                {
                                    gradeValuesList[i].GradeId = ent.Id;
                                    Context.GradeValue.Add(gradeValuesList[i]);
                                    Context.SaveChanges();
                                }
                            }
                        }
                        else
                        {
                            ent.Name        = grade.Name;
                            ent.Description = grade.Description;
                            ent.GradeValueIsInPercentOrPostition = grade.GradeValueIsInPercentOrPostition;
                            ent.RangeOrValue = grade.RangeOrValue;
                            if (!grade.RangeOrValue)//range
                            {
                                ent.MinimumPassValue = grade.MinimumPassValue;
                                ent.TotalMaxValue    = grade.TotalMaxValue;
                                ent.TotalMinValue    = grade.TotalMinValue;

                                Context.SaveChanges();
                            }
                            else//values
                            {
                                ent.GradeValueIsInPercentOrPostition = grade.GradeValueIsInPercentOrPostition;
                                ent.MinimumPassValue = grade.MinimumPassValue;
                                ent.TotalMaxValue    = grade.TotalMaxValue;
                                ent.TotalMinValue    = grade.TotalMinValue;

                                //var olderlist = Context.GradeValue.Where(x => x.GradeId == ent.Id).ToList();

                                //for (int i = 0; i < olderlist.Count; i++)
                                //{
                                //    Context.GradeValue.Remove(olderlist[i]);
                                //}
                                //Context.SaveChanges();

                                if (gradeValuesList != null)
                                {
                                    foreach (var gv in gradeValuesList)
                                    {
                                        var gvDb = Context.GradeValue.Find(gv.Id);
                                        if (gvDb == null)
                                        {
                                            gv.GradeId = ent.Id;
                                            Context.GradeValue.Add(gv);
                                            Context.SaveChanges();
                                        }
                                        else
                                        {
                                            gvDb.Void  = gv.Void;
                                            gvDb.Value = gv.Value;
                                            gvDb.EquivalentPercentOrPostition = gv.EquivalentPercentOrPostition;
                                            gvDb.IsFailGrade = gv.IsFailGrade;
                                            Context.SaveChanges();
                                        }
                                    }
                                }
                            }
                            Context.SaveChanges();
                        }
                        scope.Complete();
                        return(ent);
                    }
                }
                catch
                {
                    return(null);
                }
            }
예제 #4
0
 public int ConvertPercentToPosition(DbEntities.Grades.Grade grade, float percent)
 {
     return(0);
 }