public IActionResult SubmitForm() { var model = new SubmissionForm(); return(View(model)); }
public async Task <IActionResult> Create( [FromBody] SubmissionForm submissionForm, [FromServices] Channel <EditVideoMessage> channel, [FromServices] TemporaryFileStorage temporaryFileStorage) { if (!temporaryFileStorage.TemporaryFileExists(submissionForm.Video)) { return(BadRequest()); } var submission = new Submission { TrickId = submissionForm.TrickId, Description = submissionForm.Description, VideoProcessed = false, UserId = UserId }; _ctx.Add(submission); await _ctx.SaveChangesAsync(); await channel.Writer.WriteAsync(new EditVideoMessage { SubmissionId = submission.Id, Input = submissionForm.Video, }); return(Ok(submission)); }
public ActionResult DeleteConfirmed(int id) { SubmissionForm submissionForm = db.SubmissionForms.Find(id); db.SubmissionForms.Remove(submissionForm); db.SaveChanges(); return(RedirectToAction("Index")); }
public async Task <IActionResult> Create(SubmissionForm submissionForm) { if (!ModelState.IsValid) { return(RedirectToAction("Index", submissionForm)); } DateTime minimum = DateTime.Now.AddYears(-18); //Check age if (minimum < submissionForm.Age) { return(BadRequest(new { message = "bad request age under 18" })); } var serialNumber = await _mvcDrawContext.SerialNumbers.Where(s => s.SerialNumberValue == submissionForm.SerialNumber).FirstOrDefaultAsync(); //Valid serial number? A part of buisness Logic if (serialNumber == null || serialNumber.IsActive == false) { return(BadRequest(new { message = "bad request INVALID serial number" })); } //Does User Exist? var user = await _mvcDrawContext.Users.Where(u => u.EmailAddress == submissionForm.EmailAddress).FirstOrDefaultAsync(); if (user == null) { user = new UserDraw() { FirstName = submissionForm.FirstName, LastName = submissionForm.LastName, EmailAddress = submissionForm.EmailAddress }; var result = await _mvcDrawContext.Users.AddAsync(user); await _mvcDrawContext.SaveChangesAsync(); } Draw draw = new Draw() { SerialNumberId = serialNumber.Id, UserDrawId = user.Id }; var resultForDraw = await _mvcDrawContext.Draws.AddAsync(draw); serialNumber.AmountUsed += 1; if (serialNumber.AmountUsed >= 2) { serialNumber.IsActive = false; } await _mvcDrawContext.SaveChangesAsync(); submissionForm.Entered = true; return(View("Index", submissionForm)); //return RedirectToAction("Index", submissionForm); }
public ActionResult Edit([Bind(Include = "Id,Message")] SubmissionForm submissionForm) { if (ModelState.IsValid) { db.Entry(submissionForm).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(submissionForm)); }
public ActionResult Create([Bind(Include = "Id,Message,MinistryName")] SubmissionForm submissionForm) { if (ModelState.IsValid) { submissionForm.User = db.Users.Find(User.Identity.GetUserId()); db.SubmissionForms.Add(submissionForm); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(submissionForm)); }
// GET: SubmissionForms/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } SubmissionForm submissionForm = db.SubmissionForms.Find(id); if (submissionForm == null) { return(HttpNotFound()); } return(View(submissionForm)); }
public async Task <IActionResult> CreateSubmission( [FromBody] SubmissionForm submissionForm, [FromServices] Channel <EditVideoMessage> channel, [FromServices] IFileManager fileManagerLocal) { // Validate video path // If temporary video does NOT exist based on provided video name if (!fileManagerLocal.TemporaryFileExists(submissionForm.Video)) { // Return bad request, we cant convert -> we dont have video -> hasn't been uploaded/stored successfully return(BadRequest()); } // Created new Submission var submission = new Submission { // Grab the input fields from submission form / content creation TechniqueId = submissionForm.TechniqueId, Description = submissionForm.Description, // Marking video as NOT processed when we create new Submission VideoProcessed = false, // Grab the UserId from ApiController and assign it to UserId from Submission model UserId = UserId }; // Add created submission to DB _context.Add(submission); // Save changes to DB await _context.SaveChangesAsync(); // * Channel producer // * We dont write to a channel if form wasn't successful submitted // Grab the channel writer, and write an modItem/msg(EditVideoMessage) to a channel with SubmissionId & Input props await channel.Writer.WriteAsync(new EditVideoMessage { // Save submissionId for particular upload SubmissionId = submission.Id, // Input is original video -> string that comes from input when selecting video from submission form Input = submissionForm.Video }); // Return newly created submission return(Ok(submission)); }
public async Task <IActionResult> OnGetAsync(int id) { var username = HttpContext.Session.GetString("_username"); var usertype = HttpContext.Session.GetString("_usertype"); var access = new Access(username, "Student"); if (access.IsLogin()) { if (access.IsAuthorize(usertype)) { SubmissionType = await _context.SubmissionType .Where(s => s.DateDeleted == null) .Include(s => s.Batch) .FirstOrDefaultAsync(s => s.SubmissionTypeId == id); if (SubmissionType.GraceDate < DateTime.Now) { ErrorMessage = "Submission had ended."; return(RedirectToPage("/Student/Submission/Index")); } Submission = await _context.Submission .FirstOrDefaultAsync(s => s.SubmissionTypeId == SubmissionType.SubmissionTypeId); Sf = new SubmissionForm { Type = SubmissionType.Name, Batch = SubmissionType.Batch.BatchName }; return(Page()); } else { ErrorMessage = "Access Denied"; return(RedirectToPage($"/{usertype}/Index")); } } else { ErrorMessage = "Login Required"; return(RedirectToPage("/Account/Login")); } }
public async Task ReturnBadRequestIfAgeUnder18() { //arrange string FirstName = "MuslimTest"; string LastName = "MuslimTest"; string email = "Email@Test"; DateTime age = DateTime.Now.AddYears(-16); var serialNumber = await _context.SerialNumbers.FirstOrDefaultAsync(); SubmissionForm submissionForm = new SubmissionForm(FirstName, LastName, email, serialNumber.SerialNumberValue, age); //Act var result = await _controller.Create(submissionForm); //Assert var objectResult = Assert.IsType <BadRequestObjectResult>(result); Assert.Equal("{ message = bad request age under 18 }", objectResult.Value.ToString()); }
public async Task BadRequestIfInvalidSerialNumber() { //arrange string FirstName = "MuslimTest"; string LastName = "MuslimTest"; string email = "Email@Test"; DateTime age = DateTime.Now.AddYears(-18); string SerialNumber = "ThisIsAnInvalidSerialNumber"; SubmissionForm submissionForm = new SubmissionForm(FirstName, LastName, email, SerialNumber, age); //Act var result = await _controller.Create(submissionForm); //Assert var objectResult = Assert.IsType <BadRequestObjectResult>(result); Assert.Equal("{ message = bad request INVALID serial number }", objectResult.Value.ToString()); }
public async Task ControllerActionMethodCanCreateSubmissionForm() { //Arrange string FirstName = "MuslimTest"; string LastName = "MuslimTest"; string email = "*****@*****.**"; DateTime age = DateTime.Now.AddYears(-18); var serialNumber = await _context.SerialNumbers.FirstOrDefaultAsync(); SubmissionForm submissionForm = new SubmissionForm(FirstName, LastName, email, serialNumber.SerialNumberValue, age); //Act var result = await _controller.Create(submissionForm); //Assert var objectResult = Assert.IsType <ViewResult>(result); Assert.NotNull(objectResult.Model); var model = Assert.IsType <SubmissionForm>(objectResult.Model); Assert.True(model.Entered); }
public async Task FirstNameModelValidationMustBeCharactersNotNumbers() { //Arrange string FirstName = "123456"; string LastName = "MuslimTest"; string email = "Email@Test"; DateTime age = DateTime.Now.AddYears(-18); var serialNumber = await _context.SerialNumbers.FirstOrDefaultAsync(); SubmissionForm submissionForm = new SubmissionForm(FirstName, LastName, email, serialNumber.SerialNumberValue, age); ValidationContext _vContext = new ValidationContext(submissionForm); _vContext.MemberName = "FirstName"; var results = new List <ValidationResult>(); //Act var actual = Validator.TryValidateProperty(submissionForm.FirstName, _vContext, results); //Assert Assert.Single(results); Assert.Equal("Use letters only please", results[0].ErrorMessage); }
public async Task BadRequestIfSerialNumberIsInActiveAfterUsed2Times() { //arrange string FirstName = "MuslimTest"; string LastName = "MuslimTest"; string email = "Email@Test"; DateTime age = DateTime.Now.AddYears(-18); var serialNumber = await _context.SerialNumbers.FirstOrDefaultAsync(); SubmissionForm submissionForm = new SubmissionForm(FirstName, LastName, email, serialNumber.SerialNumberValue, age); //Act await _controller.Create(submissionForm); await _controller.Create(submissionForm); var result = await _controller.Create(submissionForm); //Assert var objectResult = Assert.IsType <BadRequestObjectResult>(result); Assert.Equal("{ message = bad request INVALID serial number }", objectResult.Value.ToString()); }
public async Task <IActionResult> OnGetAsync(int id) { var username = HttpContext.Session.GetString("_username"); var usertype = HttpContext.Session.GetString("_usertype"); var access = new Access(username, "Student"); if (access.IsLogin()) { if (access.IsAuthorize(usertype)) { var student = await _context.Student .Where(s => s.DateDeleted == null) .Include(s => s.Project) .FirstOrDefaultAsync(s => s.AssignedId == username); SubmissionType = await _context.SubmissionType .Where(s => s.DateDeleted == null) .Include(s => s.Batch) .FirstOrDefaultAsync(s => s.SubmissionTypeId == id); var stage = ""; if (SubmissionType.Name == "Interim Report") { stage = "FYP1"; } if (SubmissionType.Name == "Final Report" || SubmissionType.Name == "Final Report (Hard Cover)") { stage = "FYP2"; } var weeklyLogs = await _context.WeeklyLog .Where(w => w.DateDeleted == null) .Where(w => w.StudentId == username) .Where(w => w.WeeklyLogStage == stage) .Where(w => w.WeeklyLogStatus == "Approved") .ToListAsync(); if (weeklyLogs.Count() < 6) { ErrorMessage = "You need to submit at least 6 approved weekly logs. Submission denied"; return(RedirectToPage("/Student/Submission/Index")); } Sf = new SubmissionForm { Type = SubmissionType.Name, Batch = SubmissionType.Batch.BatchName }; return(Page()); } else { ErrorMessage = "Access Denied"; return(RedirectToPage($"/{usertype}/Index")); } } else { ErrorMessage = "Login Required"; return(RedirectToPage("/Account/Login")); } }