示例#1
0
        public IHttpActionResult AddSubjectMarksforStudents([FromBody] SubjectMarkDto dto)
        {
            var result = _subjectMarkService.Add(dto);

            if (result == false)
            {
                return(BadRequest());
            }

            return(Ok());
        }
示例#2
0
        public bool Add(SubjectMarkDto dto)
        {
            if (dto == null)
            {
                return(false);
            }

            if (dto.Marks == null)
            {
                return(false);
            }

            if (CheckEndMarkFromDto(dto) == false)
            {
                return(false);
            }

            try
            {
                var subjectMarks = new List <SubjectMark>();

                foreach (MarkDto mark in dto.Marks)
                {
                    if (mark.TypeMarkId == 4)
                    {
                        if (CheckEndMarkFromDb(mark.StudentId, dto.SubjectId) == true)
                        {
                            return(false);
                        }
                    }
                    var subjectMark = new SubjectMark()
                    {
                        SubjectId  = dto.SubjectId,
                        SemesterId = dto.SemesterId,
                        StudentId  = mark.StudentId,
                        TypeMarkId = mark.TypeMarkId,
                        Mark       = mark.Mark
                    };

                    subjectMarks.Add(subjectMark);
                }

                db.SubjectMarks.AddRange(subjectMarks);
                db.SaveChanges();
            }
            catch
            {
                return(false);
            }

            return(true);
        }
示例#3
0
        private bool CheckEndMarkFromDto(SubjectMarkDto dto)
        {
            var EndMarks = dto.Marks.Where(x => x.TypeMarkId == 4);

            var dupes = EndMarks.GroupBy(x => new { x.TypeMarkId, x.StudentId })
                        .Where(x => x.Skip(1).Any()).ToArray();

            if (dupes.Length == 0)
            {
                return(true);
            }

            return(false);
        }