public async Task <IActionResult> cancleEventSignUp(int eventId, int userId) { // create object for weatherForecast controller var weatherObj = new ExternalServicesController(); try { // get event details by Id var ev = dbContext.Events.SingleOrDefault(a => a.EventId == eventId); // get details of user by id var usr = dbContext.Users.SingleOrDefault(a => a.UserId == userId); // fetch the participant for given event var userevent = await dbContext.UserEvents.FirstOrDefaultAsync(c => c.EventId == eventId& c.GuestId == userId); // send 404 if not found if (userevent == null) { return(NotFound("Event not Found")); } //delete the userEvent dbContext.UserEvents.Remove(userevent); await dbContext.SaveChangesAsync(); // send email to user weatherObj.SendEmail(usr.EmailAddress, usr.FirstName, ev.EventName, "unsubscribed").Wait(); Response.Headers.Add("status", "event Cancelled Successfully"); return(Ok(new { message = "Event canceled successfully" })); } catch (Exception e) { return(BadRequest(e.Message)); } }
public async Task <IActionResult> postEventsByUser([FromBody] addevent ue) { // create object for weatherForecast controller var weatherObj = new ExternalServicesController(); try { // get event details by Id var ev = dbContext.Events.SingleOrDefault(a => a.EventId == ue.EventId); // get event date from event id DateTime evDate = ev.DateTime; // get details of user by id var usr = dbContext.Users.SingleOrDefault(a => a.UserId == ue.GuestId); //if event is having past date show error if (evDate < DateTime.Today) { return(BadRequest("Event is past and already done")); } // check if user has already signed up var eventExist = await dbContext.UserEvents.SingleOrDefaultAsync(c => c.GuestId == ue.GuestId& c.EventId == ue.EventId); //if event is already signed up by user send error if (eventExist != null) { return(BadRequest("User has already signed up for the event")); } Guid g = Guid.NewGuid(); // post userevent details to table and return RFIDTag var userevent = new UserEvents { GuestId = ue.GuestId, EventId = ue.EventId, RFIDTagId = g.ToString() }; // save details to database dbContext.UserEvents.Add(userevent); await dbContext.SaveChangesAsync(); // send email to user weatherObj.SendEmail(usr.EmailAddress, usr.FirstName, ev.EventName, "registered").Wait(); // add custome header Response.Headers.Add("RFID", userevent.RFIDTagId); return(Ok(new { RFID = userevent.RFIDTagId })); } catch (Exception e) { return(BadRequest(e.Message)); } }