// GET api/MFUser // // Return list of all users // public HttpResponseMessage Get() { Repository repository = new Repository(); List <MFUser> users = repository.GetAllUsers(GroupId); return(Request.CreateResponse(HttpStatusCode.OK, JsonUser.FromDatabase(users))); }
public HttpResponseMessage Get(string id) { // Make sure the request is valid // if (string.IsNullOrEmpty(UserId)) { return(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Not Authorized")); } Repository repository = new Repository(); var mfUser = repository.GetUserByEmail(id); if (mfUser == null) { mfUser = repository.GetUserById(id); } if (mfUser == null) { return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "User not found")); } return(Request.CreateResponse(HttpStatusCode.OK, JsonUser.FromDatabase(mfUser))); }
// 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")); }
// GET api/<controller>/5 // // Return detailed event information along with all users attending the event // public HttpResponseMessage Get(int id) { if (string.IsNullOrEmpty(UserId)) { return(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Not Authorized")); } Repository repository = new Repository(); var eventInfo = repository.GetEventViewById(id, UserId); if (eventInfo != null) { var eventAttendees = repository.GetUsersForEvent(eventInfo.EventId); return(Request.CreateResponse(HttpStatusCode.OK, new { eventinfo = eventInfo, attendees = JsonUser.FromDatabase(eventAttendees) })); } else { return(Request.CreateErrorResponse(HttpStatusCode.NotFound, string.Format("Event {0} not found", id))); } }