public SignalRUserConfiguration convertStirngToJson(string Data)
        {
            //string str = "clientId=cleanarchitecture&grant_type=password&[email protected]&password=P@ssw0rd!&scope=openid profile email offline_access client_id roles phone";
            Data = Data.Replace("=", "\":\"");
            Data = Data.Replace("&", "\",\"");
            Data = "{\"" + Data + "\"}";
            SignalRUserConfiguration obj = JsonConvert.DeserializeObject <SignalRUserConfiguration>(Data);

            return(obj);
            //var jsonData = JsonConvert.SerializeObject(obj);
        }
        public async Task Invoke(HttpContext context)
        {
            Stream originalBody           = context.Response.Body;
            SignalRUserConfiguration User = new SignalRUserConfiguration();

            try
            {
                using (var memStream = new MemoryStream())
                {
                    var newBody    = new MemoryStream();
                    var newContent = string.Empty;

                    context.Response.Body = memStream;

                    await next(context);

                    var responseLog = $"RESPONSE Host:{context.Request.Host}, HttpMethod: {context.Request.Method}, Path: {context.Request.Path}";

                    //string ResponsePath = context.Request.Path.ToString();
                    //string[] ResonseDetails = ResponsePath.Split("/");
                    if (context.Request.Path == "/connect/token")
                    {
                        memStream.Seek(0, SeekOrigin.Begin);
                        var content = new StreamReader(memStream).ReadToEnd();
                        memStream.Seek(0, SeekOrigin.Begin);
                        tokanreponsmodel TokenData = JsonConvert.DeserializeObject <tokanreponsmodel>(content);
                        if (TokenData != null && !string.IsNullOrEmpty(TokenData.access_token))
                        {
                            using (var bodyReader = new StreamReader(context.Request.Body))
                            {
                                var bodyAsText = bodyReader.ReadToEnd();
                                if (string.IsNullOrWhiteSpace(bodyAsText) == false)
                                {
                                    User = convertStirngToJson(HttpUtility.UrlDecode(bodyAsText));
                                    // User.username = "******";
                                }
                                if (User != null && !string.IsNullOrEmpty(User.username))
                                {
                                    var Redis    = new RadisServices <ConnetedClientToken>(this._fact);
                                    var Userdata = _userManager.FindByNameAsync(User.username).GetAwaiter().GetResult();
                                    if (Userdata != null && Userdata.Id != 0)
                                    {
                                        Redis.SaveWithOrigionalKey("Tokens:" + Userdata.Id, new ConnetedClientToken {
                                            Token = TokenData.access_token
                                        });
                                        //string AccessToken = Redis.GetHashData("Tokens:" + Userdata.Id, "Token");
                                    }
                                }
                            }
                        }
                    }

                    memStream.Position = 0;
                    string responseBody = new StreamReader(memStream).ReadToEnd();
                    var    erParams     = (dynamic)null;
                    if (responseBody.Contains("ReturnCode"))
                    {
                        erParams = JsonConvert.DeserializeObject <ErrorParams>(responseBody);
                    }

                    responseLog += $", Response : {responseBody}";
                    //if (ResponseDetails?[1] == "api")
                    //{
                    //Uday 05-11-2018 don't write log for graph method
                    if (context.Request.Path.Value.Split("/")[1] != "swagger" && !context.Request.Path.Value.Contains("GetGraphDetail"))
                    {
                        if (erParams?.ReturnCode != 9)
                        {
                            HelperForLog.WriteLogIntoFile(2, _basePage.UTC_To_IST(), context.Request.Path.ToString(), context.Request.Path.ToString(), responseLog);
                            //HelperForLog.WriteLogIntoFile(2, _basePage.UTC_To_IST(), context.Request.Path.ToString(), context.Request.Path.ToString(), responseLog);
                            //HelperForLog.WriteErrorLog(_basePage.UTC_To_IST(), context.Request.Path.ToString(), context.Request.Path.ToString(), erParams.ReturnMsg);
                        }
                    }
                    //else
                    //{
                    //    HelperForLog.WriteLogIntoFile(2, _basePage.UTC_To_IST(), context.Request.Path.ToString(), context.Request.Path.ToString(), responseLog);

                    //}

                    //}
                    //else if (ResponseDetails?[1] != "swagger")
                    //    HelperForLog.WriteLogIntoFile(2, _basePage.UTC_To_IST(), "", "", responseLog);
                    memStream.Position = 0;
                    await memStream.CopyToAsync(originalBody);
                }
            }
            catch (Exception ex)
            {
                HelperForLog.WriteErrorLog(_basePage.UTC_To_IST(), "", "", ex.ToString());
            }
            finally
            {
                context.Response.Body = originalBody;
            }
        }