[HttpPost("token")]
    public async Task<IActionResult> GetAccessToken()
    {
        Config.DefaultResponse response = new Config.DefaultResponse();
       

        try
        {
            
            var grantType = "client_credentials";
            var clientId = "";
            var clientSecret = "";
            var resource = "";
            var tenantId = "";
           var url = $"https://accounts.accesscontrol.windows.net/{tenantId}/tokens/OAuth/2";

            using (var httpClient = new HttpClient())
            {
                var requestContent = $"grant_type={grantType}&client_id={clientId}&client_secret={clientSecret}&resource={resource}";

                using (var httpContent = new StringContent(requestContent))
                {
                    httpContent.Headers.Clear();
                    httpContent.Headers.Add("Content-Type", "application/x-www-form-urlencoded");

                    using (var httpResponse = await httpClient.PostAsync(url, httpContent))
                    {
                        var responseText = await httpResponse.Content.ReadAsStringAsync();
                        //get as Json
                        string decodedString = System.Text.RegularExpressions.Regex.Unescape(responseText);
                        AccessTokenResponse responseObject = JsonConvert.DeserializeObject<AccessTokenResponse>(decodedString);
                        



                        if (httpResponse.IsSuccessStatusCode)
                        {
                           


                            return Ok(responseObject?.AccessToken);
                        }
                        else
                        {
                            response = new Config.DefaultResponse(500,"Failed to fetch token", responseObject);

                            return BadRequest(response);
                        }
                    }
                }
            }
        }
        catch (Exception ex)
        {
            var exceptionResponse = new AccessTokenResponse
            {
               
            };

            return StatusCode(500, exceptionResponse);
        }
    }