public void Post([FromBody] JSONPostRequest userseminar) { string name = userseminar.name; string email = userseminar.email; int seminarId = userseminar.seminarId; var context = new ApplicationDbContext(); var user = new User { Name = name, Email = email }; var matchingUser = context.Users.ToList().Find(x => x.Name == name && x.Email == email); if (matchingUser == null) { context.Users.Add(user); context.SaveChanges(); var addedUser = context.Users.ToList().Find(x => x.Name == name && x.Email == email); var userSeminar = new UserSeminar { seminarId = seminarId, userId = addedUser.id }; context.userSeminars.Add(userSeminar); context.SaveChanges(); } else { var userSeminar = new UserSeminar { seminarId = seminarId, userId = matchingUser.id}; context.userSeminars.Add(userSeminar); context.SaveChanges(); } }
public ActionResult <object> PostUser([FromBody] UserViewModel userVM) { var userSeminar = new UserSeminar(); var seminar = _context.Seminars.Where(s => s.id == userVM.seminarId).FirstOrDefault(); var message = "Successfully signed up for " + seminar.name + "!"; var existingUser = _context.Users.Where(e => e.email == userVM.email).FirstOrDefault(); if (existingUser != null) { userSeminar.user = existingUser; userSeminar.seminar = seminar; _context.UserSeminars.Add(userSeminar); } else { var user = new User { name = userVM.name, email = userVM.email, }; _context.Users.Add(user); userSeminar.user = user; userSeminar.seminar = seminar; _context.UserSeminars.Add(userSeminar); } try { _context.SaveChanges(); } catch (Exception e) { return(BadRequest(e.Message)); } return(Ok(new { message })); }
public async Task <IActionResult> CreateUser(UserVM request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var userFromDb = _context.Users.SingleOrDefault(u => u.Email == request.Email); var seminar = await _context.Seminars.FindAsync(request.seminarId); if (seminar == null || seminar.AvailableSeats <= 0) { return(BadRequest()); } if (userFromDb == null) { var user = new User { Firstname = request.Firstname, Lastname = request.Lastname, Email = request.Email, PhoneNumber = request.PhoneNumber, City = request.City, Address = request.Address }; await _context.Users.AddAsync(user); var newAttendee = new UserSeminar { Seminar = seminar, User = user, DateSignUp = DateTime.Now }; await _context.UserSeminars.AddAsync(newAttendee); seminar.AvailableSeats = seminar.AvailableSeats - 1; await _context.SaveChangesAsync(); return(Ok()); } var attendee = new UserSeminar { Seminar = seminar, User = userFromDb, DateSignUp = DateTime.Now }; var userSeminar = _context.UserSeminars.FirstOrDefault(x => x.Seminar == attendee.Seminar && x.User == attendee.User); if (userSeminar == null) { _context.UserSeminars.Add(attendee); seminar.AvailableSeats = seminar.AvailableSeats - 1; await _context.SaveChangesAsync(); return(Ok()); } return(BadRequest("You have already signed up for this seminar")); }