示例#1
0
        public IActionResult SubmitForm()
        {
            var model = new SubmissionForm();


            return(View(model));
        }
示例#2
0
        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"));
        }
示例#4
0
        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));
        }
示例#9
0
        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());
        }
示例#15
0
        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"));
            }
        }