public IRepositoryService RetrieveObject_Old(RepositoryType type, string url)
        {
            IRepositoryService factoryObject;

            //string[] splitUrl = url.Split('/');
            //string Type = splitUrl[0].ToString();
            switch (type)
            {
            case RepositoryType.AzureDevops:
                string[] splitAzureUrl = url.Split('/');
                factoryObject = new AzureDevopsService()
                {
                    organizationName = splitAzureUrl[1].ToString(),
                    projectName      = splitAzureUrl[3].ToString()
                };
                break;

            case RepositoryType.Git:
                string[] splitGitUrl = url.Split('/');
                factoryObject = new GitService()
                {
                    url = url,
                    organizationName = splitGitUrl[1].ToString(),
                    projectName      = splitGitUrl[2].ToString(),
                };
                break;

            default:
                factoryObject = null;
                break;
            }

            return(factoryObject);
        }
        public IRepositoryService RetrieveObject(string url)
        {
            IRepositoryService repositoryObject = null;

            string[] splitUrl = url.Split('/');
            if (splitUrl.Length > 0)
            {
                string Type = splitUrl[0].ToString();

                if (Type.Contains("raw.githubusercontent.com"))
                {
                    string[] splitGitUrl = url.Split('/');
                    if (splitGitUrl.Length > 2)
                    {
                        string        orgName            = splitGitUrl[1].ToString();
                        string        proName            = splitGitUrl[2].ToString();
                        string        PATToken           = string.Empty;
                        var           appSettingsManager = new AppSettingsManager();
                        string        connetionString    = appSettingsManager.Configuration.GetSection("Connectionstring").Value;
                        SqlConnection sqlConnection      = new SqlConnection(connetionString);

                        try
                        {
                            sqlConnection.Open();
                            SqlCommand selectCommand = new SqlCommand("Sp_RetrieveAccessToken", sqlConnection);
                            selectCommand.CommandType = CommandType.StoredProcedure;
                            SqlParameter poTypeParam  = selectCommand.Parameters.AddWithValue("@RepositoryType", RepositoryType.Git);
                            SqlParameter orgNameParam = selectCommand.Parameters.AddWithValue("@OrganizationName", orgName);
                            SqlParameter proNameParam = selectCommand.Parameters.AddWithValue("@ProjectName", proName);
                            PATToken = Convert.ToString(selectCommand.ExecuteScalar());
                            selectCommand.Dispose();
                            sqlConnection.Dispose();

                            if (!string.IsNullOrEmpty(PATToken))
                            {
                                repositoryObject = new GitService()
                                {
                                    url = url,
                                    organizationName = orgName,
                                    projectName      = proName,
                                    PATToken         = PATToken,
                                };
                            }
                            else
                            {
                                // string.Format("Unable to find PATToken for : {0}", url);
                            }
                        }
                        catch (Exception ex)
                        {
                            // string.Format("Exception while getting PATToken for organization {0}: {1}", orgName, ex.ToString());
                        }
                    }
                    else
                    {
                        // "Unable to find organization or repository";
                    }
                }
                else if (Type.Contains("dev.azure.com"))
                {
                    string[] splitAzureUrl = url.Split('/');
                    if (splitAzureUrl.Length > 3)
                    {
                        string        orgName            = splitAzureUrl[1].ToString();
                        string        proName            = splitAzureUrl[3].ToString();
                        string        PATToken           = string.Empty;
                        var           appSettingsManager = new AppSettingsManager();
                        string        connetionString    = appSettingsManager.Configuration.GetSection("Connectionstring").Value;
                        SqlConnection sqlConnection      = new SqlConnection(connetionString);

                        try
                        {
                            sqlConnection.Open();
                            SqlCommand selectCommand = new SqlCommand("Sp_RetrieveAccessToken", sqlConnection);
                            selectCommand.CommandType = CommandType.StoredProcedure;
                            SqlParameter poTypeParam  = selectCommand.Parameters.AddWithValue("@RepositoryType", RepositoryType.AzureDevops);
                            SqlParameter orgNameParam = selectCommand.Parameters.AddWithValue("@OrganizationName", orgName);
                            SqlParameter proNameParam = selectCommand.Parameters.AddWithValue("@ProjectName", proName);
                            PATToken = Convert.ToString(selectCommand.ExecuteScalar());
                            selectCommand.Dispose();
                            sqlConnection.Dispose();

                            if (!string.IsNullOrEmpty(PATToken))
                            {
                                repositoryObject = new AzureDevopsService()
                                {
                                    organizationName = orgName,
                                    projectName      = proName,
                                    PATToken         = PATToken,
                                };
                            }
                            else
                            {
                                // string.Format("Unable to find PATToken for : {0}", url);
                            }
                        }
                        catch (Exception ex)
                        {
                            //Log.ErrorFormat("Exception while getting PATToken for organization {0}: {1}", organizationName, ex.ToString());
                        }
                    }
                    else
                    {
                        // "Unable to find organization or repository";
                    }
                }
                else
                {
                    // "URL must contains any of the repository either azure devops or git";
                }
            }
            else
            {
                // "Invalid URL";
            }

            return(repositoryObject);
        }