Ejemplo n.º 1
0
        public async Task <RepositoriesServiceModel> GetPaginatedRepositories(string search = "", int?page = 1)
        {
            try
            {
                var repositoriesData = await _repositoriesRepository.GetAllAsync();

                var repositoryNames = repositoriesData.Select(x => x.Name).Distinct().ToList();

                if (!string.IsNullOrEmpty(search))
                {
                    search           = search.ToLower();
                    repositoriesData = repositoriesData.Where(r => r.Name.ToLower().Contains(search));
                }

                var pageItems = repositoriesData
                                .OrderByDescending(x => x.LastModified)
                                .Skip((page.Value - 1) * PAGE_SIZE)
                                .Take(PAGE_SIZE)
                                .Select(r =>
                                        new Repository
                {
                    RepositoryId      = r.RepositoryId,
                    Name              = r.Name,
                    GitUrl            = r.GitUrl,
                    Branch            = r.Branch,
                    FileName          = r.FileName,
                    UserName          = r.UserName,
                    ConnectionUrl     = r.ConnectionUrl,
                    UseManualSettings = r.UseManualSettings,
                    Tag          = r.Tag,
                    OriginalName = r.OriginalName,
                    LastModified = r.LastModified
                })
                                .ToList <IRepository>();

                var repositoryModel = new RepositoriesServiceModel
                {
                    Result         = UpdateSettingsStatus.Ok,
                    Data           = new PaginatedList <IRepository>(pageItems, repositoriesData.Count(), page ?? 1, PAGE_SIZE),
                    CollectionData = repositoryNames
                };

                return(repositoryModel);
            }
            catch (Exception ex)
            {
                _log.Error(ex);
                return(new RepositoriesServiceModel {
                    Result = UpdateSettingsStatus.InternalError, Message = ex.Message
                });
            }
        }
        public async Task <RepositoriesServiceModel> GetPaginatedRepositories(string search = "", int?page = 1)
        {
            try
            {
                var repositoriesData = await GetAllRepos();

                var repositoryNames = repositoriesData.Select(x => x.Name).Distinct().ToList();

                if (!string.IsNullOrEmpty(search))
                {
                    search           = search.ToLower();
                    repositoriesData = repositoriesData.Where(r => r.Name.ToLower().Contains(search));
                }

                var repositories = (from r in repositoriesData
                                    orderby r.RowKey
                                    select new RepositoryEntity
                {
                    RowKey = r.RowKey,
                    Name = r.Name,
                    GitUrl = r.GitUrl,
                    Branch = r.Branch,
                    FileName = r.FileName,
                    UserName = r.UserName,
                    ConnectionUrl = r.ConnectionUrl,
                    UseManualSettings = r.UseManualSettings,
                    Tag = r.Tag,
                    OriginalName = r.OriginalName,
                    Timestamp = r.Timestamp,
                    LastModified = r.Timestamp.ToString("MM/dd/yy")
                }).OrderByDescending(x => x.Timestamp)
                                   .ToList <IRepository>();

                var repositoryModel = new RepositoriesServiceModel
                {
                    Result         = UpdateSettingsStatus.Ok,
                    Data           = PaginatedList <IRepository> .CreateAsync(repositories, page ?? 1, PAGE_SIZE),
                    CollectionData = repositoryNames
                };

                return(repositoryModel);
            }
            catch (Exception ex)
            {
                _log.Error(ex);
                return(new RepositoriesServiceModel {
                    Result = UpdateSettingsStatus.InternalError, Message = ex.Message
                });
            }
        }