// POST api/<controller> // // Create a new event. Json eventInfo is passed in through the body of the POST // public HttpResponseMessage Post([FromBody] JsonEvent eventInfo) { // Make sure the request is valid // if (string.IsNullOrEmpty(UserId)) { return(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Not Authorized")); } if (eventInfo == null) { return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, "Invalid Event Information")); } // Create new Model Event // RaceDayAPI.Models.Event iEvent = eventInfo.ToDatabase(); iEvent.GroupId = GroupId; iEvent.CreatorId = UserId; // Add to the database and then add this user as a participant // Repository repository = new Repository(); Event newEvent = repository.AddEvent(iEvent); repository.SaveChanges(); if ((newEvent != null) && (newEvent.EventId > 0)) { var user = repository.GetUserById(UserId); repository.AddUserToEvent(user, newEvent, AttendingEnum.Attending); repository.SaveChanges(); var addedEvent = repository.GetEventViewById(newEvent.EventId, UserId); var eventAttendees = repository.GetUsersForEvent(newEvent.EventId); // Send an email notification // var smtp = new SmtpClient(); // Settings in config file var message = new MailMessage("*****@*****.**", ConfigurationManager.AppSettings["AdminEmail"]); message.Subject = "JYMF RaceDay New Event"; message.IsBodyHtml = true; message.Body = File.ReadAllText(HttpContext.Current.Server.MapPath("~/App_Data/NewEvent.txt")); message.Body = message.Body.Replace("@NAME@", newEvent.Name) .Replace("@DATE@", newEvent.Date.ToShortDateString()) .Replace("@URL@", newEvent.Url) .Replace("@LOCATION@", newEvent.Location) .Replace("@DESCRIPTION@", newEvent.Description) .Replace("@MFUSER@", this.UserId); smtp.Send(message); return(Request.CreateResponse(HttpStatusCode.Created, new { eventinfo = addedEvent, attendees = JsonUser.FromDatabase(eventAttendees) })); } return(Request.CreateResponse(HttpStatusCode.NotAcceptable, "Unable to create event")); }
public static JsonEvent FromDatabase(RaceDayAPI.Models.Event iEvent) { return(new JsonEvent { EventId = iEvent.EventId, Name = iEvent.Name, Date = iEvent.Date, Url = iEvent.Url, Location = iEvent.Location, Description = iEvent.Description, CreatorId = iEvent.CreatorId, }); }
public RaceDayAPI.Models.Event ToDatabase() { RaceDayAPI.Models.Event iEvent = new RaceDayAPI.Models.Event { EventId = EventId, Name = Name, Date = Date, Url = Url, Location = Location, Description = Description, CreatorId = CreatorId }; return(iEvent); }