public async Task <IActionResult> Insert(string moniker, [FromBody] EventInfoViewModel vm) { try { if (moniker != vm.Moniker) { return(BadRequest("Wrong Event with Moniker")); } var info = _repo.GetEventInfo(vm.Moniker); if (info != null) { return(BadRequest("Cannot add duplicate moniker")); } else { info = _mapper.Map <EventInfo>(vm); info.Name = $"Event Name for {vm.Moniker}"; info.Location = new EventLocation(); } _repo.AddOrUpdate(info); await _repo.SaveChangesAsync(); return(Created($"/api/events/{info.Moniker}", _mapper.Map <EventInfoViewModel>(info))); } catch (Exception ex) { _logger.LogError("Failed to upsert EventInfo. {0}", ex); } return(BadRequest("Failed to save new event.")); }
public override void OnActionExecuting(ActionExecutingContext context) { base.OnActionExecuting(context); if (context.RouteData.Values.ContainsKey("moniker")) { var moniker = context.RouteData.Values["moniker"] as string; if (!context.HttpContext.Items.ContainsKey(Consts.EVENT_INFO_ITEM)) { _theEvent = _repo.GetEventInfo(moniker); } else { _theEvent = (EventInfo)context.HttpContext.Items[Consts.EVENT_INFO_ITEM]; if (_theEvent.Moniker != moniker) { _theEvent = _repo.GetEventInfo(moniker); } } } else { _theEvent = _repo.GetCurrentEvent(); } if (_theEvent == null) { context.HttpContext.Response.Redirect("/"); } else { context.HttpContext.Items[Consts.EVENT_INFO_ITEM] = _theEvent; } }
public async Task <IActionResult> Create(string moniker, [FromBody] TimeSlot model) { if (ModelState.IsValid) { try { var eventInfo = _repo.GetEventInfo(moniker); if (eventInfo != null) { model.Event = eventInfo; _repo.AddOrUpdate(model); await _repo.SaveChangesAsync(); return(Created($"{moniker}/api/timeslot/{model.Id}", model)); } } catch (Exception ex) { _logger.LogError("Failed to create a timeslot: {0}", ex); } } return(BadRequest("Failed to save TimeSlot")); }
public async Task <IActionResult> Upsert([FromBody] EventInfoViewModel vm) { try { var info = _repo.GetEventInfo(vm.Moniker); if (info == null) { info = Mapper.Map <EventInfo>(vm); } else { Mapper.Map(vm, info); } _repo.AddOrUpdate(info); await _repo.SaveChangesAsync(); return(Ok(Mapper.Map <EventInfoViewModel>(info))); } catch (Exception ex) { _logger.LogError("Failed to upsert EventInfo. {0}", ex); } return(BadRequest("Failed to save new event.")); }
async Task <IActionResult> UpsertSpeaker(SpeakerViewModel model, Speaker speaker, string moniker, string userName) { if (ModelState.IsValid) { try { if (speaker == null) { speaker = _mapper.Map <Speaker>(model); speaker.UserName = userName; speaker.Event = _repo.GetEventInfo(moniker); // Send confirmation email on new speaker var user = await _userMgr.FindByNameAsync(userName); var speakerUrl = this.Url.Link("MySpeakerPage", new { moniker = moniker }); await _mailService.SendTemplateMailAsync( "SpeakerSignUp", new SpeakerModel() { Name = user.Name, Email = user.Email, Subject = $"Speaking at the {speaker.Event.Name}", Speaker = speaker, SpeakerUrl = speakerUrl, Event = speaker.Event }); } else { _mapper.Map <SpeakerViewModel, Speaker>(model, speaker); } _repo.AddOrUpdate(speaker); await _repo.SaveChangesAsync(); return(Ok(_mapper.Map <SpeakerViewModel>(speaker))); } catch (Exception ex) { _logger.LogError("Failed to get update speaker: {0}", ex); ModelState.AddModelError("", $"Failed to Save: {ex.Message}"); } } _logger.LogError("Failed to get update speaker because of bad Model State: {0}", ModelState); return(BadRequest($"Failed to save Speaker: ModelState has Errors: #{ModelState.ErrorCount}")); }
async Task <IActionResult> UpsertSpeaker(SpeakerViewModel model, Speaker speaker, string moniker, string userName) { if (ModelState.IsValid) { try { if (speaker == null) { speaker = Mapper.Map <Speaker>(model); speaker.UserName = userName; speaker.Event = _repo.GetEventInfo(moniker); // Send confirmation email on new speaker var user = await _userMgr.FindByNameAsync(userName); var speakerUrl = this.Url.Link("MySpeakerPage", new { moniker = moniker }); await _mailService.SendTemplateMailAsync(user.Name, user.Email, $"Speaking at the {speaker.Event.Name}", "SpeakerSignUp", speaker.Event.Name, speaker.Event.CallForSpeakersClosed.ToShortDateString(), speakerUrl); } else { Mapper.Map <SpeakerViewModel, Speaker>(model, speaker); } _repo.AddOrUpdate(speaker); await _repo.SaveChangesAsync(); return(Ok(Mapper.Map <SpeakerViewModel>(speaker))); } catch (Exception ex) { _logger.LogError("Failed to get update speaker: {0}", ex); ModelState.AddModelError("", $"Failed to Save: {ex.Message}"); } } return(BadRequest("Failed to save Speaker")); }
public async Task <IActionResult> UpsertSponsors(string moniker, [FromBody] SponsorViewModel vm) { if (ModelState.IsValid) { try { var sponsor = _repo.GetSponsor(vm.Id); if (sponsor == null) // new { sponsor = _mapper.Map <Sponsor>(vm); var eventInfo = _repo.GetEventInfo(moniker); sponsor.Event = eventInfo; _repo.AddOrUpdate(sponsor); await _repo.SaveChangesAsync(); return(Created($"/{moniker}/api/sponsors/{vm.Id}", _mapper.Map <SponsorViewModel>(sponsor))); } else { _mapper.Map <SponsorViewModel, Sponsor>(vm, sponsor); _repo.AddOrUpdate(sponsor); await _repo.SaveChangesAsync(); return(Ok(vm)); } } catch (Exception ex) { _logger.LogError("Failed to update sponsor: {0}", ex); ModelState.AddModelError("", $"Failed to Save: {ex.Message}"); } } return(BadRequest("Failed to save Sponsor")); }