public override async Task <AddtionalLoginDetail> GetAddtionalLoginDetailsAsync(Task <ClaimsIdentity> claimsIdentityTask)
            {
                return(await Task.Run(() =>
                {
                    var claims = claimsIdentityTask.Result.Claims;

                    var ald = new AddtionalLoginDetail
                    {
                        EmailAddress = GetClaimValue(claims, "urn:twitter:name")
                    };

                    return ald;
                }
                                      ));
            }
            public override async Task <AddtionalLoginDetail> GetAddtionalLoginDetailsAsync(Task <ClaimsIdentity> claimsIdentityTask)
            {
                return(await Task.Run(() =>
                {
                    var claims = claimsIdentityTask.Result.Claims;

                    var ald = new AddtionalLoginDetail
                    {
                        FirstName = GetClaimValue(claims, "first_name"), // firstName,
                        LastName = GetClaimValue(claims, "last_name"),   //lastName,
                        EmailAddress = GetClaimValue(claims, "emailaddress")
                    };

                    return ald;
                }
                                      ));
            }
            public override async Task <AddtionalLoginDetail> GetAddtionalLoginDetailsAsync(Task <ClaimsIdentity> claimsIdentityTask)
            {
                return(await Task.Run(() =>
                {
                    var claims = claimsIdentityTask.Result.Claims;

                    var ald = new AddtionalLoginDetail
                    {
                        EmailAddress = GetClaimValue(claims, ClaimTypes.Email),
                        FirstName = GetClaimValue(claims, ClaimTypes.GivenName),
                        LastName = GetClaimValue(claims, ClaimTypes.Surname)
                    };

                    return ald;
                }
                                      ));
            }
            public override async Task <AddtionalLoginDetail> GetAddtionalLoginDetailsAsync(Task <ClaimsIdentity> claimsIdentityTask)
            {
                return(await Task.Run(() =>
                {
                    var claims = claimsIdentityTask.Result.Claims;

                    var firstName = String.Empty;
                    var lastName = String.Empty;
                    var name = GetClaimValue(claims, "urn:microsoft:name");

                    if (!String.IsNullOrEmpty(name))
                    {
                        var names = name.Split(' ');

                        firstName = names[0];
                        lastName = String.Join(" ", names.Skip(1));
                    }

                    var ald = new AddtionalLoginDetail
                    {
                        EmailAddress = GetClaimValue(claims, "emailaddress"),
                        FirstName = firstName,
                        LastName = lastName
                    };

                    var birthdayString = GetClaimValue(claims, "birthday");
                    if (!String.IsNullOrEmpty(birthdayString))
                    {
                        var birthday = DateTime.ParseExact(((string)birthdayString.ToString()), "mm/dd/yyyy", null);
                        //ald.DobDay = birthday.Day;
                        //ald.DobMonth = birthday.Month;
                    }

                    return ald;
                }
                                      ));
            }