public void CreateEvent(CreateEventBindingModel model)
        {
            var newEvent = this.mapper.Map <EventuresEvent>(model);

            this.db.Events.Add(newEvent);
            this.db.SaveChanges();
        }
Exemple #2
0
        public async Task CreateAsync(CreateEventBindingModel eventBindingModel, string teacherName)
        {
            EdumanUser Student = this.context.Users.FirstOrDefault(u =>
                                                                   u.FirstName == eventBindingModel.StudentFirstName && u.LastName == eventBindingModel.StudentLastName && u.IsConfirmed);

            EdumanUser Teacher =
                this.context.Users.FirstOrDefault(u => u.UserName == teacherName);

            if (Student == null || !(await userManager.IsInRoleAsync(Student, "Student")))
            {
                throw new Exception("The User is either non-existent or is not a student");
            }

            Event eventModel = new Event
            {
                Description = eventBindingModel.Description,
                EventDate   = eventBindingModel.EventDate,
                StudentId   = Student.Id,
                TeacherId   = Teacher.Id,
                Type        = eventBindingModel.Type
            };

            this.context.Events.Add(eventModel);
            this.context.SaveChanges();
        }
Exemple #3
0
        public async Task <IActionResult> Create(CreateEventBindingModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(model));
            }

            if (!this.UserIsManager())
            {
                return(LocalRedirect("/main/home/index"));
            }

            string userId = await this.GetCurrentUserId();

            var isCreated = this.service.CreateEvent(model, userId);

            if (isCreated)
            {
                return(LocalRedirect("/manager/activities/index"));
            }

            ViewData["Msg"] = "Event Code is occupied";

            return(this.View(model));
        }
Exemple #4
0
        public async Task Details_DifferentUser_ShouldReturnNoData()
        {
            await roleManager.CreateAsync(new IdentityRole("Student"));

            await roleManager.CreateAsync(new IdentityRole("Teacher"));

            await roleManager.CreateAsync(new IdentityRole("Principal"));

            EdumanUser student = new EdumanUser
            {
                UserName    = "******",
                FirstName   = "Student",
                LastName    = "TestName",
                IsConfirmed = true,
                Id          = "TestStudentId",
                School      = "TestSchool"
            };

            EdumanUser teacher = new EdumanUser
            {
                UserName    = "******",
                IsConfirmed = true,
                Id          = "TestTeacherId",
                FirstName   = "TeacherFirstName",
                LastName    = "TeacherLastName"
            };

            this.userManager.CreateAsync(student).GetAwaiter();
            this.userManager.CreateAsync(teacher).GetAwaiter();

            userManager.AddToRoleAsync(student, "Student").GetAwaiter();
            userManager.AddToRoleAsync(teacher, "Teacher").GetAwaiter();

            this.Context.SaveChanges();

            CreateEventBindingModel model = new CreateEventBindingModel()
            {
                StudentFirstName = "Student",
                StudentLastName  = "TestName",
                Description      = "TestEventDescription",
                EventDate        = DateTime.Now,
                Type             = "TestType"
            };

            await eventService.CreateAsync(model, "teacherName");

            var id = (eventService.GetAllAsync("TestStudentId").GetAwaiter().GetResult().FirstOrDefault()).Id;

            var eventDetails = await eventService.GetEventDetails(id);

            // Assert
            Assert.AreEqual("Student", eventDetails.StudentFirstName);
            Assert.AreEqual("TestName", eventDetails.StudentLastName);
            Assert.AreEqual("TestEventDescription", eventDetails.Description);
            Assert.AreEqual("TestSchool", eventDetails.School);
            Assert.AreEqual("TeacherFirstName", eventDetails.TeacherFirstName);
            Assert.AreEqual("TeacherLastName", eventDetails.TeacherLastName);
            Assert.AreEqual("TestType", eventDetails.Type);
        }
        public IActionResult Create()
        {
            var model = new CreateEventBindingModel();

            model.Code = "#1234";

            return(View(model));
        }
Exemple #6
0
        public async Task All_DifferentUser_ShouldReturnNoData()
        {
            await roleManager.CreateAsync(new IdentityRole("Student"));

            await roleManager.CreateAsync(new IdentityRole("Teacher"));

            await roleManager.CreateAsync(new IdentityRole("Principal"));

            EdumanUser student = new EdumanUser
            {
                UserName    = "******",
                FirstName   = "Student",
                LastName    = "TestName",
                IsConfirmed = true,
                Id          = "TestStudentId"
            };
            EdumanUser anotherStudent = new EdumanUser
            {
                UserName    = "******",
                FirstName   = "Student1",
                LastName    = "TestName1",
                IsConfirmed = true,
                Id          = "TestStudentId1"
            };

            EdumanUser teacher = new EdumanUser
            {
                UserName    = "******",
                IsConfirmed = true,
                Id          = "TestTeacherId"
            };

            this.userManager.CreateAsync(student).GetAwaiter();
            this.userManager.CreateAsync(anotherStudent).GetAwaiter();
            this.userManager.CreateAsync(teacher).GetAwaiter();

            userManager.AddToRoleAsync(student, "Student").GetAwaiter();
            userManager.AddToRoleAsync(anotherStudent, "Student").GetAwaiter();
            userManager.AddToRoleAsync(teacher, "Teacher").GetAwaiter();

            this.Context.SaveChanges();

            CreateEventBindingModel model = new CreateEventBindingModel()
            {
                StudentFirstName = "Student1",
                StudentLastName  = "TestName1",
                Description      = "TestEventDescription",
                EventDate        = DateTime.Now,
                Type             = "TestType"
            };

            await eventService.CreateAsync(model, "teacherName");

            var count = (eventService.GetAllAsync("TestStudentId").GetAwaiter().GetResult()).Count;

            // Assert
            Assert.AreEqual(0, count);
        }
Exemple #7
0
        public CreateEventBindingModel GetEventModel()
        {
            var eventModel = new CreateEventBindingModel()
            {
                Code      = this.GetEventCode(),
                StartDate = DateTime.Now,
                EndDate   = DateTime.Now.AddDays(7)
            };

            return(eventModel);
        }
        public IActionResult Create(CreateEventBindingModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(model));
            }

            this.eventService.CreateEvent(model);

            return(this.RedirectToAction("All", "Events"));
        }
        public async Task <IActionResult> Create(CreateEventBindingModel input)
        {
            if (!ModelState.IsValid)
            {
                return(this.View(input));
            }

            var serviceModel = AutoMapper.Mapper.Map <CreateEventServiceModel>(input);

            await this.eventService.CreateEvent(serviceModel);

            return(this.Redirect("All"));
        }
Exemple #10
0
 public async Task <IActionResult> Create(CreateEventBindingModel createEventBindingModel)
 {
     try
     {
         await eventService.CreateAsync(createEventBindingModel, this.User.Identity.Name);
     }
     catch (Exception e)
     {
         if (e.Message == "The User is either non-existent or is not a student")
         {
             return(this.View("~/Views/Shared/NonExistentStudentPage.cshtml"));
         }
     }
     return(this.RedirectToAction("Index", "Home"));
 }
Exemple #11
0
        public IActionResult Create(CreateEventBindingModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View());
            }

            Event @event = this.mapper.Map <Event>(model);

            this.eventsService.CreateEvent(@event);

            this.logger.LogInformation($"Event created: {@event.Name}", @event);

            return(this.RedirectToAction(nameof(All)));
        }
Exemple #12
0
        public async Task Create_WithNonStudentUser_ShouldNotIncludeIntoDatabase()
        {
            await roleManager.CreateAsync(new IdentityRole("Student"));

            await roleManager.CreateAsync(new IdentityRole("Teacher"));

            await roleManager.CreateAsync(new IdentityRole("Principal"));

            EdumanUser student = new EdumanUser
            {
                UserName    = "******",
                FirstName   = "Student",
                LastName    = "TestName",
                IsConfirmed = true,
                Id          = "TestStudentId"
            };

            EdumanUser teacher = new EdumanUser
            {
                UserName    = "******",
                IsConfirmed = true,
                Id          = "TestTeacherId"
            };

            this.userManager.CreateAsync(student).GetAwaiter();
            this.userManager.CreateAsync(teacher).GetAwaiter();

            userManager.AddToRoleAsync(student, "Principal").GetAwaiter();
            userManager.AddToRoleAsync(teacher, "Teacher").GetAwaiter();

            this.Context.SaveChanges();

            CreateEventBindingModel model = new CreateEventBindingModel()
            {
                StudentFirstName = "Student",
                StudentLastName  = "TestName",
                Description      = "TestEventDescription",
                EventDate        = DateTime.Now,
                Type             = "TestType"
            };

            // Assert
            var ex = Assert.ThrowsAsync <Exception>(() => eventService.CreateAsync(model, "teacherName"));

            Assert.AreEqual(ex.Message, "The User is either non-existent or is not a student");
        }
        public IActionResult Create(CreateEventBindingModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(View(model));
            }

            var newEvent = this.mapper.Map <Event>(model);

            var userId = this.userManager.GetUserId(User);

            newEvent.CreatorId = userId;

            this.db.Events.Add(newEvent);

            this.db.SaveChanges();

            return(LocalRedirect("/manager/activities/index"));
        }
Exemple #14
0
        public bool CreateEvent(CreateEventBindingModel model, string userId)
        {
            var newEvent = this.mapper.Map <Event>(model);

            var codeIsOccupied = this.db.Events.Any(e => e.Code == model.Code && e.IsDeleted == false);

            if (codeIsOccupied)
            {
                return(false);
            }

            newEvent.CreatorId = userId;

            this.db.Events.Add(newEvent);

            this.db.SaveChanges();

            return(true);
        }
Exemple #15
0
        public void WithEmptyDb_ReturnsOneEvent()
        {
            var model = new CreateEventBindingModel()
            {
                Code      = "1111",
                Title     = "Test",
                StartDate = DateTime.Now,
                EndDate   = DateTime.Now,
            };

            string userId = "ABC";

            this.service.CreateEvent(model, userId);

            var db = this.emptyDb;

            var dbEvents = this.emptyDb.Events.ToList();

            Assert.AreEqual(1, dbEvents.Count);
        }
        public IActionResult Create(CreateEventBindingModel model)
        {
            if (this.ModelState.IsValid)
            {
                var @event = new Event
                {
                    Name         = model.Name,
                    Start        = model.Start,
                    End          = model.End,
                    Place        = model.Place,
                    TotalTickets = model.TotalTickets,
                    TicketPrice  = model.PricePerTicket
                };

                this.eventsService.CreateEvent(@event);

                this.logger.LogInformation($"Event created: {@event.Name}", @event);

                return(this.RedirectToAction(nameof(All)));
            }

            return(this.View());
        }
Exemple #17
0
 public override void OnActionExecuting(ActionExecutingContext context)
 {
     this.model = context.ActionArguments.Values.OfType <CreateEventBindingModel>().Single();
 }