public virtual async Task <ActionResult> Participants(string EventId) { // Event Id must be an integer and found // Int32 eventId = 0; if (!Int32.TryParse(EventId, out eventId)) { eventId = 0; } if (eventId == 0) { return(new HttpStatusCodeResult(400, "Invalid event Id")); } // Retrieve participants and format into appropriate view model // var attendings = await RaceDayClient.GetEventDetail(eventId); List <EventParticipant> participants = new List <EventParticipant>(); foreach (var user in attendings.attendees) { participants.Add(EventParticipant.FromJson(user)); } // return the rendered view with participants in it // AttendanceResult result = new AttendanceResult(); result.Attendees = RenderPartialViewToString(MVC.Shared.Views.Partials._ParticipantList, participants); return(Json(result)); }
public virtual async Task <ActionResult> Event(IndexViewModel model) { if (ModelState.IsValid) { var newEvent = await RaceDayClient.AddEvent( model.EventForm.EventName.Trim(), model.EventForm.EventDate, (model.EventForm.EventUrl != null ? model.EventForm.EventUrl.Trim() : null), (model.EventForm.EventLocation != null ? model.EventForm.EventLocation.Trim() : null), (model.EventForm.EventDescription != null ? model.EventForm.EventDescription.Trim() : null), RaceDayUser.CurrentUser.UserId ); if (newEvent != null) { await RaceDayClient.AddUserToEvent(newEvent.eventinfo.EventId); // redisplay new list positioning on the added event // return(Redirect(VirtualPathUtility.ToAppRelative("~/") + "#e" + newEvent.eventinfo.EventId.ToString())); } else { model.PageMessage = new PageMessageModel(MessageDismissEnum.close, CssMessageClassEnum.error, "Unable to create event"); } } return(View(MVC.Home.Views.Index, model)); }
public virtual async Task <ActionResult> ForgotPassword(ForgotPasswordViewModel model) { if (ModelState.IsValid) { string recapatchaResponse = Request.Form["g-recaptcha-response"]; var result = await RecaptchaClient.Verify(RecaptchaConfiguration.Instance.SecretKey, recapatchaResponse); if (result.success) { var statusCode = await RaceDayClient.ForgotPassword(model.RegisterEmail); if (statusCode == HttpStatusCode.OK) { model.PageMessage = new PageMessageModel(MessageDismissEnum.none, CssMessageClassEnum.success, "Check your email for your account password.<br />You may change your password after you have <a href=\"/raceday\">logged on</a>."); } else { model.PageMessage = new PageMessageModel(MessageDismissEnum.none, CssMessageClassEnum.error, "Could not identify your account.<br />Use the <a href=\"/Logon/Register\">Register Account</a> link to create an account if you have not yet registered."); } } else { model.PageMessage = new PageMessageModel(MessageDismissEnum.none, CssMessageClassEnum.error, "Invalid captcha response."); } } return(View(model)); }
public virtual async Task <ActionResult> Attending(String EventId, String ClassName) { // Event Id must be an integer and found // Int32 eventId = 0; if (!Int32.TryParse(EventId, out eventId)) { eventId = 0; } if (eventId == 0) { return(new HttpStatusCodeResult(400, "Invalid event Id")); } // ClassName must be recognized // if ((ClassName != "glyphicon-check") && (ClassName != "glyphicon-unchecked")) { return(new HttpStatusCodeResult(400, "Unrecognized class name")); } EventDetail eventDetail; // Switch the attendance // AttendanceResult result = new AttendanceResult(); if (ClassName == "glyphicon-check") { await RaceDayClient.RemoveUserFromEvent(eventId); eventDetail = await RaceDayClient.GetEventDetail(eventId); result.Button = RenderPartialViewToString(MVC.Shared.Views.Partials._NotAttendingButton, EventInfo.CopyFromEventService(false, eventDetail)); } else { await RaceDayClient.AddUserToEvent(eventId); eventDetail = await RaceDayClient.GetEventDetail(eventId); result.Button = RenderPartialViewToString(MVC.Shared.Views.Partials._AttendingButton, EventInfo.CopyFromEventService(true, eventDetail)); } // Rebind the participant list with the change // List <EventParticipant> participants = new List <EventParticipant>(); foreach (var user in eventDetail.attendees) { participants.Add(EventParticipant.FromJson(user)); } result.Attendees = RenderPartialViewToString(MVC.Shared.Views.Partials._ParticipantList, participants); return(Json(result)); }
public virtual async Task <ActionResult> Create([Bind(Include = "Name,FirstName,LastName,Email,Password")] MFUserViewModel mFUser) { if (ModelState.IsValid) { await RaceDayClient.UserCreate(mFUser.Name, mFUser.FirstName, mFUser.LastName, mFUser.Email, mFUser.Password); return(RedirectToAction("Index")); } return(View(mFUser)); }
// GET: MFUsers/Details/5 public virtual async Task <ActionResult> Details(string id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var user = await RaceDayClient.GetUserDetail(id); if (user == null) { return(HttpNotFound()); } return(View(user)); }
public virtual async Task <ActionResult> MyProfile(ProfileViewModel model) { if (ModelState.IsValid) { var user = new RaceDay.Services.Models.JsonUser { UserId = model.UserId, Name = model.Name.Trim(), FirstName = model.FirstName.Trim(), LastName = model.LastName.Trim(), Email = model.Email.Trim() }; var status = await RaceDayClient.EditUser(model.UserId, user); if (status == HttpStatusCode.OK) { if (model.Password != null && !string.IsNullOrEmpty(model.Password.Trim())) { status = await RaceDayClient.UpdatePassword(model.Email, model.Password); if (status == HttpStatusCode.OK) { model.PageMessage = new PageMessageModel(MessageDismissEnum.close, CssMessageClassEnum.success, "Profile with password updated"); } else { model.PageMessage = new PageMessageModel(MessageDismissEnum.close, CssMessageClassEnum.error, "Unable to update password"); } } else { model.PageMessage = new PageMessageModel(MessageDismissEnum.close, CssMessageClassEnum.success, "Profile updated"); } RaceDayUser.CurrentUser.Name = model.Name; RaceDayUser.CurrentUser.FirstName = model.FirstName; RaceDayUser.CurrentUser.LastName = model.LastName; RaceDayUser.CurrentUser.Email = model.Email; } else { model.PageMessage = new PageMessageModel(MessageDismissEnum.close, CssMessageClassEnum.error, "Unable to update profile"); } } return(View(model)); }
// GET: /Home/Index // // Main page of the application. Displays the list of events along with participation and also initializes the // event form for adding events. // public virtual async Task <ActionResult> Index() { IndexViewModel model = new IndexViewModel(); model.EventForm.GroupCode = RaceDayConfiguration.Instance.APIGroup; // Get all events for the current user // List <EventAttending> events = await RaceDayClient.GetAllEventsForCurrentUser(); model.Events = EventInfo.CopyFromService(events, RaceDayUser.CurrentUser.UserId); // Return the view // model.PageMessage = GetTempDataPageMessage(); return(View(model)); }
public virtual async Task <ActionResult> Index(LogonViewModel model) { if (ModelState.IsValid) { // Attempt a login // var login = await RaceDayClient.Login(model.LoginEmail.Trim(), model.LoginPassword.Trim()); if (login == null) { model.PageMessage = new PageMessageModel(MessageDismissEnum.none, CssMessageClassEnum.error, "Invalid Email/Password."); } else { RaceDayUser.LoginUser(login, model.RememberMe); return(RedirectToAction(MVC.Home.Index())); } } return(View(model)); }
public virtual async Task <ActionResult> Edit(string id, [Bind(Include = "UserId,Name,FirstName,LastName,Email,Password")] MFUserViewModel mFUser) { if (ModelState.IsValid) { var user = await RaceDayClient.GetUserDetail(id); if (user != null) { user.Name = mFUser.Name; user.FirstName = mFUser.FirstName; user.LastName = mFUser.LastName; user.Email = mFUser.Email; user.Password = mFUser.Password; await RaceDayClient.EditUser(id, user); return(RedirectToAction("Index")); } } return(View(mFUser)); }
public virtual async Task <ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { string recapatchaResponse = Request.Form["g-recaptcha-response"]; var result = await RecaptchaClient.Verify(RecaptchaConfiguration.Instance.SecretKey, recapatchaResponse); if (result.success) { var resultCode = await RaceDayClient.UserRegister(model.GroupCode, model.FirstName, model.LastName, model.RegisterEmail, model.RegisterPassword); if (resultCode == HttpStatusCode.Created) { var login = await RaceDayClient.Login(model.RegisterEmail.Trim(), model.RegisterPassword.Trim()); RaceDayUser.LoginUser(login, false); return(RedirectToAction(MVC.Home.Index())); } else if (resultCode == HttpStatusCode.BadRequest) { model.PageMessage = new PageMessageModel(MessageDismissEnum.none, CssMessageClassEnum.error, "Invalid registration request."); } else if (resultCode == HttpStatusCode.Conflict) { model.PageMessage = new PageMessageModel(MessageDismissEnum.none, CssMessageClassEnum.error, "Account already exists."); } else { model.PageMessage = new PageMessageModel(MessageDismissEnum.none, CssMessageClassEnum.error, "API Server error."); } } else { model.PageMessage = new PageMessageModel(MessageDismissEnum.none, CssMessageClassEnum.error, "Invalid captcha response."); } } return(View(model)); }
// GET: MFUsers/Edit/5 public virtual async Task <ActionResult> Edit(string id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var user = await RaceDayClient.GetUserDetail(id); if (user == null) { return(HttpNotFound()); } return(View(new MFUserViewModel { UserId = user.UserId, Name = user.Name, FirstName = user.FirstName, LastName = user.LastName, Email = user.Email, Password = user.Password, })); }
// GET: MFUsers public virtual async Task <ActionResult> Index() { var users = await RaceDayClient.GetAllUsers(); return(View(users)); }
public virtual async Task <ActionResult> DeleteConfirmed(string id) { await RaceDayClient.DeleteUser(id); return(RedirectToAction("Index")); }