Esempio n. 1
0
        internal static object Parse(string originalUrl)
        {
            if (String.IsNullOrEmpty(originalUrl))
            {
                return(null);
            }

            string url = trimPrefix(originalUrl);

            List <Exception> exceptions = new List <Exception>();

            try
            {
                UrlParser.ParsedMergeRequestUrl originalParsed  = UrlParser.ParseMergeRequestUrl(url);
                UrlParser.ParsedMergeRequestUrl mergeRequestUrl = new UrlParser.ParsedMergeRequestUrl(
                    StringUtils.GetHostWithPrefix(originalParsed.Host), originalParsed.Project, originalParsed.IId);
                return(mergeRequestUrl);
            }
            catch (Exception ex)
            {
                // ok, let's try another parser
                exceptions.Add(ex);
            }

            try
            {
                return(NewMergeRequestUrlParser.Parse(url));
            }
            catch (Exception ex)
            {
                // ok, input string cannot be parsed
                exceptions.Add(ex);
            }

            exceptions.ForEach(ex => ExceptionHandlers.Handle("Input URL cannot be parsed", ex));
            return(null);
        }