Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        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."));
                }
            }
        }