Esempio n. 1
0
 public FoodMarkerService(RepositoryPayload repoPayload,
                            IMapper mapper)
 {
     _repo = repoPayload.GetFoodMarkerRepository();
     _completeFoodDataRepo = repoPayload.GetCompleteFoodDataRepository();
     _mapper = mapper;
 }
 public PhotoService(RepositoryPayload repoPayload,
                     IMapper mapper)
 {
     _repoImageMeta = repoPayload.GetFoodMarkerImageRepository();
     _repoImageFile = repoPayload.GetFileRepository();
     _mapper        = mapper;
 }
Esempio n. 3
0
 public ManualUploadController(RepositoryPayload repoPayload)
 {
     _repoImageMeta    = repoPayload.GetFoodMarkerImageRepository();
     _repoImageFile    = repoPayload.GetFileRepository();
     _repoFoodMarker   = repoPayload.GetFoodMarkerRepository();
     _repoFoodCategory = repoPayload.GetFoodCategoryRepository();
     _repoRestaurant   = repoPayload.GetRestaurantRepository();
 }
        public async Task Repository(DateTimeOffset eventDate, RepositoryPayload payload)
        {
            var updater = new DataUpdater(_contextFactory, _mapper);

            switch (payload.Action)
            {
            case "created":
            case "publicized":
            case "privatized":
            case "archived":
            case "unarchived":
                await updater.UpdateRepositories(eventDate, new[] { payload.Repository });

                break;

            case "deleted": {
                // Sync contributors on deletion
                try {
                    // Use the account links before we delete them
                    var repoActor = _grainFactory.GetGrain <IRepositoryActor>(payload.Repository.Id);
                    await repoActor.ForceSyncAllLinkedAccountRepositories();
                } catch (InvalidOperationException) {
                    // If the repo has already been deleted it can't be activated.
                } catch (OrleansException) {
                    // If the repo has already been deleted it can't be activated.
                }

                // Now delete
                await updater.DeleteRepository(payload.Repository.Id);
            }
            break;

            default:
                throw new NotImplementedException($"Action '{payload.Action}' is not valid for event {nameof(Repository)}.");
            }

            // Sync org members on both creation and deletion
            if (payload.Action == "created" || payload.Action == "deleted")
            {
                if (payload.Repository.Owner.Type == GitHubAccountType.Organization)
                {
                    var orgActor = _grainFactory.GetGrain <IOrganizationActor>(payload.Repository.Owner.Id);
                    orgActor.ForceSyncAllMemberRepositories().LogFailure(); // Best effort only
                }
            }

            await updater.Changes.Submit(_queueClient);
        }
        public async Task <IActionResult> Payload([FromBody] RepositoryPayload payload)
        {
            var repository =
                await _dbContext.DockerRepositories.FirstOrDefaultAsync(
                    x => x.Repository == payload.Repository.Repo_Full_Name);

            if (repository != null)
            {
                if (payload.Push_Data.Tag == "latest")
                {
                    _logger.LogWarning($"忽略仓库 {payload.Repository.Repo_Full_Name} 的 latest 版本镜像");
                    return(Ok());
                }

                var image = $"{repository.Registry}/{payload.Repository.Repo_Full_Name}:{payload.Push_Data.Tag}";
                if (!await _dbContext.DockerImages.AnyAsync(x =>
                                                            x.Image == image))
                {
                    _dbContext.DockerImages.Add(new DockerImage
                    {
                        Image        = image,
                        CreationTime = DateTime.Now,
                        RepositoryId = repository.Id
                    });

                    await _dbContext.SaveChangesAsync();

                    _logger.LogInformation($"镜像 {image} 添加成功");
                }
                else
                {
                    _logger.LogInformation($"镜像 {image} 已经存在");
                }
            }
            else
            {
                _logger.LogWarning($"仓库 {payload.Repository.Repo_Full_Name} 未配置");
            }

            return(Ok());
        }
Esempio n. 6
0
 public UserService(RepositoryPayload repo,
                    IMapper mapper)
 {
     _mapper = mapper;
     _repo   = repo.GetUserDataRepository();
 }
 public FoodCategoryService(RepositoryPayload repoPayload,
                            IMapper mapper)
 {
     _repo   = repoPayload.GetFoodCategoryRepository();
     _mapper = mapper;
 }
Esempio n. 8
0
 public RestaurantService(RepositoryPayload repoPayload,
                          IMapper mapper)
 {
     _repo   = repoPayload.GetRestaurantRepository();
     _mapper = mapper;
 }