mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-06-22 10:55:00 +00:00
Linq
This commit is contained in:
parent
ffc3ded283
commit
c9cdd4149b
1 changed files with 24 additions and 24 deletions
|
@ -1,5 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace SourceGit.Models
|
namespace SourceGit.Models
|
||||||
{
|
{
|
||||||
|
@ -75,32 +76,31 @@ namespace SourceGit.Models
|
||||||
baseUrl => $"{baseUrl}/commit/"
|
baseUrl => $"{baseUrl}/commit/"
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
/// <summary>
|
|
||||||
/// translate remotes to CommitLink-s . TODO: rename
|
/// <summary>
|
||||||
/// </summary>
|
/// Attempts to create a CommitLink for a given remote by matching a provider.
|
||||||
/// <param name="remotes"></param>
|
/// </summary>
|
||||||
/// <returns></returns>
|
private static CommitLink? TryCreateCommitLink(Remote remote)
|
||||||
|
{
|
||||||
|
if (!remote.TryGetVisitURL(out var url))
|
||||||
|
return null;
|
||||||
|
var provider = Providers.FirstOrDefault(p => p.IsMatch(url));
|
||||||
|
if (provider.Name == null)
|
||||||
|
return null;
|
||||||
|
string repoName = provider.ExtractRepo(url);
|
||||||
|
return new CommitLink($"{provider.Name} ({repoName})", provider.BuildCommitUrlPrefix(url));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Translates remotes to CommitLinks. TODO: rename
|
||||||
|
/// </summary>
|
||||||
public static List<CommitLink> Get(List<Remote> remotes)
|
public static List<CommitLink> Get(List<Remote> remotes)
|
||||||
{
|
{
|
||||||
var outs = new List<CommitLink>();
|
return remotes
|
||||||
|
.Select(TryCreateCommitLink)
|
||||||
foreach (var remote in remotes)
|
.Where(cl => cl != null)
|
||||||
{
|
.Cast<CommitLink>()
|
||||||
if (remote.TryGetVisitURL(out var url))
|
.ToList();
|
||||||
{
|
|
||||||
foreach (var provider in Providers)
|
|
||||||
{
|
|
||||||
if (provider.IsMatch(url))
|
|
||||||
{
|
|
||||||
string repoName = provider.ExtractRepo(url);
|
|
||||||
outs.Add(new CommitLink($"{provider.Name} ({repoName})", provider.BuildCommitUrlPrefix(url)));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return outs;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue