public async Task <ActionResult> ContentSources(RegistrationIndexViewModel model) { if (!ModelState.IsValid) { return(View()); } var registration = await _repo.ContentSourceRegistrationRequests.AddOrUpdateAndSaveAsync(new ContentSourceRegistrationRequest() { Email = model.Email }); var recipient = new EmailRecipient(model.Email); var content = new EmailContent() .Title("Fanword Content Sources") .Paragraph("Thank you for your interest in being a content source on Fanword. Click the link below to complete your registration.") .Button(Url.Action("ContentSourceRegistration", "Registration", new { id = registration.Id }, Request.Url.Scheme), "#32c5d2", "#FFF", "Register"); var email = new Email(recipient, "Fanword Content Source Sign-Up", content.ToHtml()); email.Send(); return(RedirectToAction("InitialContentSourcesRegistrationComplete")); }
public async Task <IActionResult> Index(string sortOrder, string SelectedStatus, int SelectedEventId = 0, int SelectedUserId = 0, int page = 1) { IEnumerable <Registration> registrations = await _registrationService.Registrations.GetRegistrationsWithUserAndEventAsync(SelectedStatus, SelectedUserId, SelectedEventId, page, PageSize); int totalItems = 0; if (SelectedEventId == 0 && SelectedUserId == 0 && string.IsNullOrEmpty(SelectedStatus)) { totalItems = _registrationService.Registrations.Count(); } else { Expression <Func <Registration, bool> > predicate = (x => (string.IsNullOrEmpty(SelectedStatus) || x.Status.ToString() == SelectedStatus) && (SelectedEventId == 0 || x.EventId == SelectedEventId) && (SelectedUserId == 0 || x.UserId == SelectedUserId)); totalItems = _registrationService.Registrations.CountByExpression(predicate); } SelectList usersSelect = _registrationService.Users.GetUserSelectList(); SelectList eventSelectList = await _registrationService.Events.GetEventSelectListAsync(); SelectList regStatuses = _registrationService.Registrations.GetRegistrationStatuses(); RegistrationIndexViewModel vm = new RegistrationIndexViewModel( registrations, usersSelect, eventSelectList, regStatuses, SelectedUserId, SelectedEventId, SelectedStatus, sortOrder, totalItems, page, PageSize ); ViewData["ActiveMenu"] = "Admin"; ViewData["ActiveLink"] = "RegistrationIndex"; ViewData["Title"] = "Registration Index"; return(View(vm)); }