Exemplo n.º 1
0
        public async Task <object> Add(AssignmentInputModel assignmentInputModel)
        {
            var lab = await _context.Lab.FindAsync(assignmentInputModel.LabId);

            if (lab == null)
            {
                return("bad request");
            }
            var model = new AssignmentModel
            {
                LabId       = assignmentInputModel.LabId,
                Name        = assignmentInputModel.Name,
                Deadline    = assignmentInputModel.Deadline,
                Description = assignmentInputModel.Description
            };

            _context.Assignment.Add(model);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (Exception)
            {
                return("bad request");
            }
            return(model);
        }
Exemplo n.º 2
0
        public async Task <object> Update(AssignmentInputModel assignmentInputModel)
        {
            var model = await _context.Assignment.FindAsync(assignmentInputModel.AssignmentId);

            if (model == null)
            {
                return("bad request");
            }

            //USER CANNOT MODIFY LAB ID FOR ASSIGNMENT
            model.Name        = assignmentInputModel.Name;
            model.Deadline    = assignmentInputModel.Deadline;
            model.Description = assignmentInputModel.Description;

            _context.Entry(model).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!AssignmentModelExists(model.AssignmentId))
                {
                    return("not found");
                }
                else
                {
                    throw;
                }
            }

            return("no content");
        }
Exemplo n.º 3
0
        public async Task <object> PostAssignmentModel(AssignmentInputModel assignmentInputModel)
        {
            var result = await _assignmentRepository.Add(assignmentInputModel);

            if (result.Equals("bad request"))
            {
                return(BadRequest());
            }
            else
            {
                return(result);
            }
        }
Exemplo n.º 4
0
        public async Task <IActionResult> PutAssignmentModel(AssignmentInputModel assignmentInputModel)
        {
            var result = await _assignmentRepository.Update(assignmentInputModel);

            if (result.Equals("no content"))
            {
                return(NoContent());
            }
            else if (result.Equals("not found"))
            {
                return(NotFound());
            }
            else
            {
                return(BadRequest());
            }
        }
        public Task <ActionResult <AssignmentViewModel> > PostAsync([FromBody] AssignmentInputModel inputModel)
        => ExecuteAsync <AssignmentViewModel>(async() =>
        {
            if (inputModel == null)
            {
                return(BadRequest());
            }

            var @class = await _classesRepository.GetByIdAsync(inputModel.ClassId);

            if (@class == null)
            {
                return(BadRequest());
            }

            var assignment = new Assignment(@class, inputModel.DueAt, inputModel.Title, inputModel.Description, inputModel.MaxGrade);
            await _assignmentsRepository.AddAsync(assignment);

            var jobId = BackgroundJob.Schedule <NotificationService>(s => s.HandleEventNotification(assignment.Id), assignment.DueAt - TimeSpan.FromDays(1));
            assignment.SetNotificationEventId(jobId);
            await _assignmentsRepository.UpdateAsync(assignment);

            return(Ok((AssignmentViewModel)assignment));
        });