Example #1
0
        public async Task <IActionResult> DeleteMarksForGivenSubject(int id, int studentId, int markId)
        {
            return(await ExecuteOperationOnMarks(id, studentId, async (marks, subject) =>
            {
                if (markId > 0)
                {
                    var mark = marks.First(m => m.Id == markId);

                    if (mark == null)
                    {
                        return HttpNotFound("Student doesn't have mark of given id");
                    }

                    subject.Marks.Remove(mark);
                    await _subjectsRepository.UpdateMarksForSubject(subject.Id, subject.Marks).ConfigureAwait(false);

                    return Ok();
                }

                foreach (var studentMark in marks)
                {
                    subject.Marks.Remove(studentMark);
                }

                return Ok();
            }).ConfigureAwait(false));
        }