public async Task <IActionResult> Details(int id) { var duty = await _dutyManager.GetDutyAsync(id); if (duty == null) { return(NotFound()); } var user = await GetCurrentUser(); if (duty.ClassRoomId != user.ClassRoomId) { return(Unauthorized()); } ViewBag.ReadOnly = duty.UserId != user.Id && !User.IsSuperUser(); if (duty.ForDate < DateTime.Today) { ViewBag.ReadOnly = true; } ViewBag.Subject = duty.Subject; return(View(duty)); }
public async Task <IActionResult> MoveEvents(int id, DateTime start) { var user = await GetCurrentUser(); var duty = await _dutyManager.GetDutyAsync(id); if (duty == null) { return(NotFound(Resources.DutyNotFound)); } if (duty.UserId != user.Id && !await IsSuperUserAsync(user)) { return(Unauthorized(Resources.DutyUnauthorized)); } if (duty.ForDate < DateTime.Today) { return(BadRequest(Resources.DutyLocked)); } if (start < DateTime.Today) { return(BadRequest(Resources.DutyInvalid)); } var fields = new List <EmbedFieldBuilder>(); fields.Add(new EmbedFieldBuilder() { Name = "Avant", IsInline = true, Value = duty.ForDate }); fields.Add(new EmbedFieldBuilder() { Name = "Après", IsInline = true, Value = start }); duty.ForDate = start; if (await _dutyManager.UpdateAsync(duty)) { await Push(user, duty, "Le devoir suivant a été reporté sur l'agenda.", fields); } return(Ok()); }