public IHttpActionResult Post(AudienceBindingModel audienceModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //JB. Check if the audience already exists. if (audienceModel.Name.Equals(_audiences.ReturnAudienceByName(audienceModel.Name)) || audienceModel.URL.Equals(_audiences.ReturnAudienceByUrl(audienceModel.URL))) { return(BadRequest("Application Name and/or Url already exists")); } Audience newAudience = _audiences.AddAudience(audienceModel); return(Ok <Audience>(newAudience)); }
/// <summary> /// Adds a new entry in the database /// </summary> /// <param name="model">AudienceBindingModel</param> /// <returns>Newly created entry upon successful operation.</returns> public Audience AddAudience(AudienceBindingModel model) { var clientId = Guid.NewGuid().ToString("N"); var key = new byte[32]; RandomNumberGenerator.Create().GetBytes(key); var base64Secret = TextEncodings.Base64Url.Encode(key); Audience newAudience = new Audience { ClientId = clientId, Base64Secret = base64Secret, Name = model.Name, URL = model.URL }; Ctx.Audience.Add(newAudience); Ctx.SaveChanges(); return(newAudience); }
public async Task <IActionResult> Post([FromBody] AudienceBindingModel model) { try { if (ModelState.IsValid) { var audienceExist = await _audienceService.GetAudienceByName(model.AppName); if (audienceExist) { return(Ok(GenerateResponse(null, false, "Application name exist"))); } var audience = await _audienceService.SetupAudience(model.AppName, model.DisplayName); if (audience != null) { audience.ClientSecret = Convert.ToBase64String(Encoding.UTF8.GetBytes(audience.ClientSecret)); return(Ok(GenerateResponse(new { audience.ClientId, audience.ClientSecret, audience.AppName }, true, "Application created successfully, the details is used to access the api resources."))); } } return(Ok(GenerateResponse(ModelState, false, "All parameters is required"))); } catch (Exception ex) { _logger.LogError(ex, ex.Message); if (_env.IsDevelopment()) { return(BadRequest(ex.Message)); } else { return(BadRequest("An error occured.")); } } }