Ejemplo n.º 1
0
 private void SetConfigs(Repository repository, RepositoryDescriptor repositoryDescriptor)
 {
     foreach (var config in repositoryDescriptor.Config)
     {
         repository.Config.Set(config.Key, config.Value);
     }
 }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        private FetchOptions MakeFetchOptions(RepositoryDescriptor repositoryDescriptor)
        {
            var fetchOptions = new FetchOptions
            {
                TagFetchMode        = TagFetchMode.All,
                Prune               = true,
                CredentialsProvider = MakeCredentialsProvider(repositoryDescriptor),
            };

            return(fetchOptions);
        }
Ejemplo n.º 6
0
        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));
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        /// <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);
        }
Ejemplo n.º 14
0
        /// <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);
        }