private void SetConfigs(Repository repository, RepositoryDescriptor repositoryDescriptor) { foreach (var config in repositoryDescriptor.Config) { repository.Config.Set(config.Key, config.Value); } }
/// <summary> /// Clones and initializes a repository. /// </summary> /// <param name="repositoryDescriptor">The repository to clone and initialize.</param> public void InitializeRepository(RepositoryDescriptor repositoryDescriptor) { string clonePath = Path.Combine(ApplicationOptions.RepositoryClonesPath ?? string.Empty, repositoryDescriptor.Name); if (Repository.IsValid(clonePath)) { var repository = new Repository(clonePath); SetConfigs(repository, repositoryDescriptor); repository.Network.Remotes.Update("origin", r => r.Url = repositoryDescriptor.Url.ToString()); } else { CloneOptions cloneOptions = new CloneOptions { IsBare = true, FetchOptions = MakeFetchOptions(repositoryDescriptor), CredentialsProvider = MakeCredentialsProvider(repositoryDescriptor), }; var repository = new Repository( Repository.Clone( repositoryDescriptor.Url.ToString(), clonePath, cloneOptions)); SetConfigs(repository, repositoryDescriptor); Update(repository, repositoryDescriptor); } }
public void SetUp(IList <WorkPlan> workPlans) { var repositoryDescriptor = new RepositoryDescriptor() { WorkPlans = workPlans }; _mockResult = ServiceTestHelper.MockRepository(repositoryDescriptor); _adminService = new AdminService.Services.AdminService(_mockResult.UnitOfWorkMock.Object); }
public void Setup(IList <BookingInfo> bookingInfos, IList <Room> rooms = null) { var repositoryDescriptor = new RepositoryDescriptor() { Rooms = rooms, BookingInfo = bookingInfos, }; _mockResult = ServiceTestHelper.MockRepository(repositoryDescriptor); _adminService = new AdminService.Services.AdminService(_mockResult.UnitOfWorkMock.Object); }
private FetchOptions MakeFetchOptions(RepositoryDescriptor repositoryDescriptor) { var fetchOptions = new FetchOptions { TagFetchMode = TagFetchMode.All, Prune = true, CredentialsProvider = MakeCredentialsProvider(repositoryDescriptor), }; return(fetchOptions); }
private void Update(Repository repository, RepositoryDescriptor repositoryDescriptor) { foreach (var tag in repository.Tags) { repository.Tags.Remove(tag); } repository.Network.Fetch( "origin", new[] { "+refs/heads/*:refs/remotes/origin/*" }, MakeFetchOptions(repositoryDescriptor)); }
public void Setup(IList <User> users = null, IList <WorkingDaysCalendar> workingDays = null, IList <Desk> desks = null) { var repositoryDescriptor = new RepositoryDescriptor() { Users = users, WorkingDaysCalendar = workingDays }; _mockResult = ServiceTestHelper.MockRepository(repositoryDescriptor); _adminService = new AdminService.Services.AdminService(_mockResult.UnitOfWorkMock.Object); }
public void Setup(IList <Desk> desks, IList <DeskStatusLookup> deskStatusLookups = null, IList <User> users = null) { RepositoryDescriptor repositoryDescriptor = new RepositoryDescriptor() { Desks = desks, DeskStatusLookup = deskStatusLookups, Users = users, }; _mockResult = ServiceTestHelper.MockRepository(repositoryDescriptor); _adminService = new AdminService.Services.AdminService(_mockResult.UnitOfWorkMock.Object); }
private CredentialsHandler?MakeCredentialsProvider(RepositoryDescriptor repositoryDescriptor) { if (repositoryDescriptor.Credentials != null) { return((url, user, cred) => new UsernamePasswordCredentials { Username = repositoryDescriptor.Credentials.Username, Password = repositoryDescriptor.Credentials.Password, }); } return(null); }
public void Setup(IList <User> users, IList <UserPosition> userPositions = null, IList <WorkPlan> workPlans = null, IList <Desk> desks = null, IList <Room> rooms = null) { RepositoryDescriptor repositoryDescriptor = new RepositoryDescriptor() { Users = users, UsersPosition = userPositions, WorkPlans = workPlans, Desks = desks, Rooms = rooms, }; _mockResult = ServiceTestHelper.MockRepository(repositoryDescriptor); _adminService = new AdminService.Services.AdminService(_mockResult.UnitOfWorkMock.Object); }
public void Setup(IList <Order> orders = null, IList <User> users = null, IList <Desk> desks = null, IList <Room> rooms = null) { var repositoryDescriptor = new RepositoryDescriptor() { Users = users, Rooms = rooms, Desks = desks, Orders = orders }; _mockResult = ServiceTestHelper.MockRepository(repositoryDescriptor); _myBookingsService = new MyBookingsService(_mockResult.UnitOfWorkMock.Object); }
/// <summary> /// Fetches from the remote repository and find the changes. /// </summary> /// <param name="repositoryDescriptor">The repository to fetch.</param> /// <returns>A list of changes on the repository.</returns> public List <Change> FetchChanges(RepositoryDescriptor repositoryDescriptor) { string path = Path.Combine(ApplicationOptions.RepositoryClonesPath ?? string.Empty, repositoryDescriptor.Name); var repository = new Repository(path); var changes = new List <Change>(); using (new CommitsTracker(repository, changes)) using (new BranchesTracker(repository, changes)) using (new TagsTracker(repository, changes)) { Update(repository, repositoryDescriptor); } return(changes); }
public void Setup(IList <User> users = null, IList <Desk> desks = null, IList <Room> rooms = null, IList <Order> orders = null, IList <BookingInfo> bookingInfos = null) { var repositoryDescriptor = new RepositoryDescriptor() { Users = users, Rooms = rooms, Desks = desks, Orders = orders, BookingInfo = bookingInfos, }; _mockResult = ServiceTestHelper.MockRepository(repositoryDescriptor); var orderNotificationMock = new Mock <IOrderNotification>(); orderNotificationMock.Setup(o => o.BookingConfirmed(It.IsAny <Order>())); _bookingManagementService = new BookingManagementService(_mockResult.UnitOfWorkMock.Object, orderNotificationMock.Object); }
/// <summary> /// Gets the diff of the commit in the repository. /// </summary> /// <param name="repositoryDescriptor">The descriptor of the repository containing the commit.</param> /// <param name="commitHash">The hash of the commit.</param> /// <returns>The raw diff string, provided by git, or null if the commit didn't exist.</returns> public string?GetDiff(RepositoryDescriptor repositoryDescriptor, string commitHash) { string path = Path.Combine(ApplicationOptions.RepositoryClonesPath ?? string.Empty, repositoryDescriptor.Name); var repository = new Repository(path); var commit = repository.Lookup <Commit>(commitHash); var parent = commit?.Parents.FirstOrDefault(); if (commit == null || parent == null) { return(null); } var patch = repository.Diff.Compare <Patch>(parent.Tree, commit.Tree); return(patch.Content); }