public Transmission CreateTransmission(TransmissionType type, string path, string cachePath = null) {
var transmission = new Transmission(type, path, cachePath);
lock (this.collectionLock) {
var entry = this.pathToRepoNameMapping.FirstOrDefault(t => path.StartsWith(t.Key));
transmission.Repository = entry.Value ?? string.Empty;
if (entry.Key != null) {
transmission.RelativePath = path.Substring(entry.Key.Length).TrimStart(System.IO.Path.DirectorySeparatorChar);
}
transmission.PropertyChanged += this.TransmissionFinished;
this.activeTransmissions.Add(transmission);
}
return transmission;
}