public void SetUp()
        {
            querySource = new QuerySourceList();

            target = new ReleaseEventSearch(querySource);

            series = CreateSeries("Comiket", "C", "c", "Comic Market");

            eventInSeries = CreateEvent(series, 84);
            unsortedEvent = CreateEvent("Vocaloid Festa");
        }
Example #2
0
        public ArchivedEventContract(ReleaseEvent ev)
        {
            ParamIs.NotNull(() => ev);

            Date         = ev.Date;
            Description  = ev.Description;
            Id           = ev.Id;
            Name         = ev.Name;
            Series       = (ev.Series != null ? new ObjectRefContract(ev.Series) : null);
            SeriesNumber = ev.SeriesNumber;
        }
        private ReleaseEvent CreateEvent(ReleaseEventSeries series, int number, string suffix = "")
        {
            var e = new ReleaseEvent(string.Empty, null, series, number, suffix, null, false)
            {
                Id = eventId++
            };

            querySource.Add(e);
            series.Events.Add(e);

            return(e);
        }
Example #4
0
        public static ReleaseEvent SeriesEvent(ReleaseEventSeries series, int seriesNumber, string seriesSuffix = "", int id = 0)
        {
            var ev = new ReleaseEvent(string.Empty, null, series, seriesNumber, seriesSuffix, ContentLanguageSelection.English, false)
            {
                Id = id
            };

            foreach (var name in ev.GetNamesFromSeries())
            {
                ev.CreateName(name);
            }
            return(ev);
        }
Example #5
0
        public ArchivedEventContract(ReleaseEvent ev, ReleaseEventDiff diff)
        {
            ParamIs.NotNull(() => ev);
            ParamIs.NotNull(() => diff);

            Date         = ev.Date;
            Description  = ev.Description;
            Id           = ev.Id;
            Name         = ev.Name;
            Series       = ObjectRefContract.Create(ev.Series);
            SeriesNumber = ev.SeriesNumber;
            WebLinks     = diff.IsIncluded(ReleaseEventEditableFields.WebLinks) ? ev.WebLinks.Select(l => new ArchivedWebLinkContract(l)).ToArray() : null;
        }
Example #6
0
        /// <summary>
        /// Returns a release event if it can be uniquely identified (by either name or ID).
        /// Otherwise attempts to create a new event based on given name.
        /// Makes an intelligent guess to create either standalone event or series event.
        /// This also makes sure no event with a duplicate name is created.
        /// </summary>
        /// <param name="ctx">Database context.</param>
        /// <param name="userContext">User context.</param>
        /// <param name="contract">Release event data.</param>
        /// <param name="forEntry">Which entry the release event will be created for. Optional, can be null.</param>
        /// <returns>The release event. Can be null if no name or ID is specified. Returned event can be either a new event or existing event.</returns>
        public ReleaseEvent FindOrCreate(IDatabaseContext ctx, IUserPermissionContext userContext, IReleaseEvent contract, IEntryBase forEntry)
        {
            if (contract == null || (contract.Id == 0 && string.IsNullOrWhiteSpace(contract.Name)))
            {
                return(null);
            }

            var existing = ctx.NullSafeLoad <ReleaseEvent>(contract);

            if (existing != null)
            {
                return(existing);
            }

            var searchResult = new ReleaseEventSearch(ctx).Find(contract.Name, userContext.LanguagePreference);

            if (searchResult.IsKnownEvent)
            {
                return(ctx.Load <ReleaseEvent>(searchResult.EventId));
            }

            var series = ctx.NullSafeLoad <ReleaseEventSeries>(searchResult.Series);

            ReleaseEvent newEvent;

            LocalizedStringContract[] names;

            if (series == null)
            {
                var nameValue = searchResult.EventName.EmptyToNull() ?? contract.Name;
                var name      = new LocalizedStringContract(nameValue, ContentLanguageSelection.English);
                names    = new[] { name };
                newEvent = new ReleaseEvent(string.Empty, null, ContentLanguageSelection.English);
            }
            else
            {
                names    = new LocalizedStringContract[0];
                newEvent = new ReleaseEvent(string.Empty, null, series, searchResult.SeriesNumber, searchResult.SeriesSuffix, ContentLanguageSelection.Unspecified, false);
            }

            ctx.Save(newEvent);
            new UpdateEventNamesQuery().UpdateNames(ctx, newEvent, series, false, searchResult.SeriesNumber, searchResult.SeriesSuffix, names);

            var eventDiff = new ReleaseEventDiff(ReleaseEventEditableFields.OriginalName | ReleaseEventEditableFields.Names);

            var archivedVersion = ArchivedReleaseEventVersion.Create(newEvent, eventDiff, ctx.OfType <User>().CreateAgentLoginData(userContext), EntryEditEvent.Created, "Created for " + forEntry);

            ctx.Save(archivedVersion);

            return(newEvent);
        }
Example #7
0
        public ReleaseEventContract(ReleaseEvent ev, bool includeSeries = false)
            : this()
        {
            ParamIs.NotNull(() => ev);

            Date        = ev.Date;
            Description = ev.Description;
            Id          = ev.Id;
            Name        = ev.Name;

            if (includeSeries && ev.Series != null)
            {
                Series = new ReleaseEventSeriesContract(ev.Series);
            }
        }
Example #8
0
        /// <summary>
        /// Returns a release event if it can be uniquely identified (by either name or ID).
        /// Otherwise attempts to create a new event based on given name.
        /// Makes an intelligent guess to create either standalone event or series event.
        /// This also makes sure no event with a duplicate name is created.
        /// </summary>
        /// <param name="ctx">Database context.</param>
        /// <param name="userContext">User context.</param>
        /// <param name="contract">Release event data.</param>
        /// <param name="forEntry">Which entry the release event will be created for. Optional, can be null.</param>
        /// <returns>The release event. Can be null if no name or ID is specified. Returned event can be either a new event or existing event.</returns>
        public ReleaseEvent FindOrCreate(IDatabaseContext ctx, IUserPermissionContext userContext, IReleaseEvent contract, IEntryBase forEntry)
        {
            if (contract == null || (contract.Id == 0 && string.IsNullOrWhiteSpace(contract.Name)))
            {
                return(null);
            }

            var existing = ctx.NullSafeLoad <ReleaseEvent>(contract);

            if (existing != null)
            {
                return(existing);
            }

            var searchResult = new ReleaseEventSearch(ctx).Find(contract.Name);

            if (searchResult.IsKnownEvent)
            {
                return(ctx.Load <ReleaseEvent>(searchResult.EventId));
            }

            var series = ctx.NullSafeLoad <ReleaseEventSeries>(searchResult.Series);

            ReleaseEvent newEvent;

            if (series == null)
            {
                newEvent = new ReleaseEvent(string.Empty, null, searchResult.EventName.EmptyToNull() ?? contract.Name);
            }
            else
            {
                newEvent = new ReleaseEvent(string.Empty, null, series, searchResult.SeriesNumber, searchResult.SeriesSuffix, null, false);
            }

            ctx.Save(newEvent);

            var eventDiff = new ReleaseEventDiff(ReleaseEventEditableFields.Name);

            eventDiff.Name.Set();

            var archivedVersion = ArchivedReleaseEventVersion.Create(newEvent, eventDiff, ctx.OfType <User>().CreateAgentLoginData(userContext), EntryEditEvent.Created, "Created for " + forEntry);

            ctx.Save(archivedVersion);

            return(newEvent);
        }
Example #9
0
    private IEnumerator ProjectRoutine()
    {
        int   reCacluateCount = 1;
        float lastSpeed       = 0f;

        for (float i = 0f; i < ShootingTime; i += Time.deltaTime * Time.timeScale * _Speed)
        {
            if (i >= reCacluateCount * 0.5f)
            {
                Vector2 nowPosition = _Target.position;
                Vector2 between     = (nowPosition - _LastTargetPoint);
                reCacluateCount++;

                __PointD        += between;
                _LastTargetPoint = nowPosition;
            }
            Vector3 caculatedCurve = CaculateCurve(Mathf.Min(1f, i / ShootingTime));

            lastSpeed = (caculatedCurve - transform.localPosition).magnitude;
            transform.localPosition = caculatedCurve;

            if (_ProjectBreak)
            {
                break;
            }

            yield return(null);
        }
        Vector3 dir = (__PointD - __PointC).normalized;

        while (!_ProjectBreak)
        {
            transform.localPosition += dir * lastSpeed;
            yield return(null);
        }
        ReleaseEvent?.Invoke(this);
        MainCamera.Instance.CameraShake(0.2f, 0.15f);

        _ReleaseEffect.Play();
        _Collider.enabled = false;
        _Renderer.enabled = false;
        SoundManager.Instance.Play(_DestroySoundEffect);

        _PathEffect.Stop();
    }
Example #10
0
        public void SetUp()
        {
            series        = CreateEntry.EventSeries("M3");
            existingEvent = new ReleaseEvent(string.Empty, null, series, 2013, "Spring");

            repository = new FakeEventRepository();
            repository.Save(series);
            repository.Save(existingEvent);

            album = CreateEntry.Album(name: "Day's Footsteps");
            album.OriginalReleaseEventName = "M3 2013 Spring";
            repository.Save(album);

            var user = CreateEntry.User();

            repository.Save(user);
            queries = new EventQueries(repository, new FakeEntryLinkFactory(), new FakePermissionContext(user));
        }
Example #11
0
        public void SetUp()
        {
            series        = CreateEntry.EventSeries("M3");
            existingEvent = new ReleaseEvent(string.Empty, null, series, 2013, "Spring", null, false);

            repository = new FakeEventRepository();
            repository.Save(series);
            repository.Save(existingEvent);

            album = CreateEntry.Album(name: "Day's Footsteps");
            album.OriginalReleaseEvent = existingEvent;
            repository.Save(album);

            user = CreateEntry.User(group: UserGroupId.Trusted);
            repository.Save(user);
            permissionContext = new FakePermissionContext(user);
            queries           = new EventQueries(repository, new FakeEntryLinkFactory(), permissionContext, new InMemoryImagePersister());
        }
        public ReleaseEventDetailsContract(ReleaseEvent releaseEvent, ContentLanguagePreference languagePreference,
                                           IUserPermissionContext userContext, IUserIconFactory userIconFactory, IEntryTypeTagRepository entryTypeTags = null)
            : base(releaseEvent, languagePreference, true, true)
        {
            ParamIs.NotNull(() => releaseEvent);

            CanRemoveTagUsages  = EntryPermissionManager.CanRemoveTagUsages(userContext, releaseEvent);
            DefaultNameLanguage = releaseEvent.TranslatedName.DefaultLanguage;
            PVs            = releaseEvent.PVs.Select(p => new PVContract(p)).ToArray();
            SeriesNumber   = releaseEvent.SeriesNumber;
            SeriesSuffix   = releaseEvent.SeriesSuffix;
            Tags           = releaseEvent.Tags.ActiveUsages.Select(u => new TagUsageForApiContract(u, languagePreference)).OrderByDescending(t => t.Count).ToArray();
            TranslatedName = new TranslatedStringContract(releaseEvent.TranslatedName);
            WebLinks       = releaseEvent.WebLinks.Select(w => new WebLinkContract(w)).OrderBy(w => w.DescriptionOrUrl).ToArray();

            var categoryTag = entryTypeTags?.GetTag(Domain.EntryType.ReleaseEvent, InheritedCategory);

            InheritedCategoryTag = categoryTag != null ? new TagBaseContract(categoryTag, languagePreference) : null;

            Albums = releaseEvent.Albums
                     .Select(a => new AlbumContract(a, languagePreference))
                     .OrderBy(a => a.Name)
                     .ToArray();

            Artists = releaseEvent.AllArtists
                      .Select(a => new ArtistForEventContract(a, languagePreference))
                      .OrderBy(a => a.Artist != null ? a.Artist.Name : a.Name)
                      .ToArray();

            Songs = releaseEvent.Songs
                    .Select(s => new SongForApiContract(s, languagePreference, SongOptionalFields.AdditionalNames | SongOptionalFields.ThumbUrl))
                    .OrderBy(s => s.Name)
                    .ToArray();

            UsersAttending = releaseEvent.Users
                             .Where(u => u.RelationshipType == UserEventRelationshipType.Attending)
                             .Select(u => new UserForApiContract(u.User, userIconFactory, UserOptionalFields.MainPicture))
                             .ToArray();

            if (releaseEvent.SongList != null)
            {
                SongListSongs = releaseEvent.SongList.SongLinks.OrderBy(s => s.Order).Select(s => new SongInListContract(s, languagePreference)).ToArray();
            }
        }
        public ReleaseEventDetailsContract(ReleaseEvent releaseEvent, ContentLanguagePreference languagePreference)
            : base(releaseEvent, true)
        {
            ParamIs.NotNull(() => releaseEvent);

            SeriesNumber = releaseEvent.SeriesNumber;
            SeriesSuffix = releaseEvent.SeriesSuffix;
            WebLinks     = releaseEvent.WebLinks.Select(w => new WebLinkContract(w)).OrderBy(w => w.DescriptionOrUrl).ToArray();

            Albums = releaseEvent.Albums
                     .Select(a => new AlbumContract(a, languagePreference))
                     .OrderBy(a => a.Name)
                     .ToArray();

            Songs = releaseEvent.Songs
                    .Select(s => new SongForApiContract(s, languagePreference, SongOptionalFields.AdditionalNames | SongOptionalFields.ThumbUrl))
                    .OrderBy(s => s.Name)
                    .ToArray();
        }
Example #14
0
        public EntryForApiContract(ReleaseEvent releaseEvent, IEntryThumbPersister thumbPersister, bool ssl, EntryOptionalFields includedFields)
            : this(releaseEvent, ContentLanguagePreference.Default, includedFields)
        {
            ActivityDate           = releaseEvent.Date.DateTime;
            ReleaseEventSeriesName = releaseEvent.Series != null ? releaseEvent.Series.Name : null;
            UrlSlug = releaseEvent.UrlSlug;

            if (includedFields.HasFlag(EntryOptionalFields.MainPicture))
            {
                if (!string.IsNullOrEmpty(releaseEvent.PictureMime))
                {
                    MainPicture = new EntryThumbForApiContract(EntryThumb.Create(releaseEvent), thumbPersister, ssl);
                }
                else if (!string.IsNullOrEmpty(releaseEvent.Series?.PictureMime))
                {
                    MainPicture = new EntryThumbForApiContract(EntryThumb.Create(releaseEvent.Series), thumbPersister, ssl);
                }
            }
        }
Example #15
0
        public EntryForApiContract(ReleaseEvent releaseEvent, ContentLanguagePreference languagePreference, IEntryThumbPersister thumbPersister,
                                   EntryOptionalFields includedFields)
            : this(releaseEvent, languagePreference, includedFields)
        {
            ActivityDate           = releaseEvent.Date.DateTime;
            EventCategory          = releaseEvent.InheritedCategory;
            ReleaseEventSeriesName = releaseEvent.Series?.TranslatedName[languagePreference];
            Status  = releaseEvent.Status;
            UrlSlug = releaseEvent.UrlSlug;

            if (includedFields.HasFlag(EntryOptionalFields.MainPicture))
            {
                MainPicture = EntryThumbForApiContract.Create(EntryThumb.Create(releaseEvent) ?? EntryThumb.Create(releaseEvent.Series), thumbPersister);
            }

            if (includedFields.HasFlag(EntryOptionalFields.WebLinks))
            {
                WebLinks = releaseEvent.WebLinks.Select(w => new ArchivedWebLinkContract(w)).ToArray();
            }
        }
        public ArchivedEventContract(ReleaseEvent ev, ReleaseEventDiff diff)
        {
            ParamIs.NotNull(() => ev);
            ParamIs.NotNull(() => diff);

            Artists         = diff.IncludeArtists ? ev.Artists.Select(l => new ArchivedArtistForEventContract(l)).ToArray() : null;
            Category        = ev.Category;
            Date            = ev.Date;
            Description     = ev.Description;
            Id              = ev.Id;
            MainPictureMime = ev.PictureMime;
            Names           = diff.IncludeNames ? ev.Names.Names.Select(n => new LocalizedStringContract(n)).ToArray() : null;
            PVs             = diff.IncludePVs ? ev.PVs.Select(p => new ArchivedPVContract(p)).ToArray() : null;
            Series          = ObjectRefContract.Create(ev.Series);
            SeriesNumber    = ev.SeriesNumber;
            SongList        = ObjectRefContract.Create(ev.SongList);
            TranslatedName  = new ArchivedTranslatedStringContract(ev.TranslatedName);
            VenueName       = ev.VenueName;
            WebLinks        = diff.IncludeWebLinks ? ev.WebLinks.Select(l => new ArchivedWebLinkContract(l)).ToArray() : null;
        }
Example #17
0
        private bool SaveNames(IDatabaseContext ctx, ReleaseEvent ev, IEnumerable <ILocalizedString> names)
        {
            // Make sure deletions are flushed to database BEFORE new names are added, to make sure there's no duplicates
            var diff = ev.Names.SyncByContent(names, ev,
                                              deleted => {
                foreach (var name in deleted)
                {
                    ctx.Delete(name);
                }
                ctx.Flush();
            }
                                              );

            foreach (var n in diff.Added)
            {
                ctx.Save(n);
            }

            return(diff.Changed);
        }
Example #18
0
        public void SetUp()
        {
            series        = CreateEntry.EventSeries("M3");
            existingEvent = CreateEntry.SeriesEvent(series, 2013, "Spring");
            series.AllEvents.Add(existingEvent);

            repository = new FakeEventRepository();
            repository.Save(series);
            repository.Save(existingEvent);
            repository.SaveNames(series);
            repository.SaveNames(existingEvent);

            album = CreateEntry.Album(name: "Day's Footsteps");
            album.OriginalReleaseEvent = existingEvent;
            repository.Save(album);

            user = CreateEntry.User(group: UserGroupId.Trusted);
            repository.Save(user);
            permissionContext = new FakePermissionContext(user);
            queries           = new EventQueries(repository, new FakeEntryLinkFactory(), permissionContext, new InMemoryImagePersister(), new FakeUserIconFactory(), new EnumTranslations(), mailer);
        }
Example #19
0
        public ReleaseEventContract(ReleaseEvent ev, bool includeSeries = false)
            : this()
        {
            ParamIs.NotNull(() => ev);

            CustomName  = ev.CustomName;
            Date        = ev.Date;
            Description = ev.Description;
            Id          = ev.Id;
            Name        = ev.Name;
            PictureMime = ev.PictureMime;
            SongList    = ObjectHelper.Convert(ev.SongList, s => new SongListBaseContract(s));
            UrlSlug     = ev.UrlSlug;
            Venue       = ev.Venue;
            Version     = ev.Version;

            if (includeSeries && ev.Series != null)
            {
                Series = new ReleaseEventSeriesContract(ev.Series);
            }
        }
Example #20
0
        public ReleaseEventForApiContract(ReleaseEvent rel, ReleaseEventOptionalFields fields)
        {
            Date         = rel.Date;
            Id           = rel.Id;
            Name         = rel.Name;
            SeriesNumber = rel.SeriesNumber;
            SeriesSuffix = rel.SeriesSuffix;

            if (rel.Series != null)
            {
                SeriesId = rel.Series.Id;
            }

            if (fields.HasFlag(ReleaseEventOptionalFields.Description))
            {
                Description = rel.Description;
            }

            if (fields.HasFlag(ReleaseEventOptionalFields.Series) && rel.Series != null)
            {
                Series = new ReleaseEventSeriesContract(rel.Series);
            }
        }
        public ReleaseEventForApiContract(ReleaseEvent rel, ContentLanguagePreference languagePreference, ReleaseEventOptionalFields fields, IAggregatedEntryImageUrlFactory thumbPersister)
        {
            Category     = rel.Category;
            Date         = rel.Date;
            EndDate      = rel.EndDate;
            Id           = rel.Id;
            Name         = rel.TranslatedName[languagePreference];
            SeriesNumber = rel.SeriesNumber;
            SeriesSuffix = rel.SeriesSuffix;
            Status       = rel.Status;
            UrlSlug      = rel.UrlSlug;
            VenueName    = rel.VenueName;
            Version      = rel.Version;

            if (rel.HasSeries)
            {
                SeriesId = rel.Series.Id;
            }

            if (fields.HasFlag(ReleaseEventOptionalFields.AdditionalNames))
            {
                AdditionalNames = rel.Names.GetAdditionalNamesStringForLanguage(languagePreference);
            }

            if (fields.HasFlag(ReleaseEventOptionalFields.Artists))
            {
                Artists = rel.Artists.Select(a => new ArtistForEventContract(a, languagePreference)).ToArray();
            }

            if (fields.HasFlag(ReleaseEventOptionalFields.Description))
            {
                Description = rel.Description;
            }

            if (thumbPersister != null && fields.HasFlag(ReleaseEventOptionalFields.MainPicture))
            {
                MainPicture = EntryThumbForApiContract.Create(EntryThumb.Create(rel) ?? EntryThumb.Create(rel.Series), thumbPersister);
            }

            if (fields.HasFlag(ReleaseEventOptionalFields.Names))
            {
                Names = rel.Names.Select(n => new LocalizedStringContract(n)).ToArray();
            }

            if (fields.HasFlag(ReleaseEventOptionalFields.Series) && rel.HasSeries)
            {
                Series = new ReleaseEventSeriesContract(rel.Series, languagePreference);
            }

            if (fields.HasFlag(ReleaseEventOptionalFields.SongList) && rel.SongList != null)
            {
                SongList = new SongListBaseContract(rel.SongList);
            }

            if (fields.HasFlag(ReleaseEventOptionalFields.Tags))
            {
                Tags = rel.Tags.ActiveUsages.Select(t => new TagUsageForApiContract(t, languagePreference)).ToArray();
            }

            if (fields.HasFlag(ReleaseEventOptionalFields.Venue) && rel.Venue != null)
            {
                Venue = new VenueForApiContract(rel.Venue, languagePreference, VenueOptionalFields.None);
            }

            if (fields.HasFlag(ReleaseEventOptionalFields.WebLinks))
            {
                WebLinks = rel.WebLinks.Select(w => new WebLinkForApiContract(w)).ToArray();
            }
        }
 public ReleaseEventForEditContract(ReleaseEvent releaseEvent, ContentLanguagePreference languagePreference, IUserPermissionContext userContext, IUserIconFactory userIconFactory) :
     base(releaseEvent, languagePreference, userContext, userIconFactory)
 {
     Names = releaseEvent.Names.Select(n => new LocalizedStringWithIdContract(n)).ToArray();
 }
Example #23
0
 public void UnregisterReleaseHook(ReleaseEvent methodObject)
 {
     if (lockReleaseEvents.Contains(methodObject))
     {
         lockReleaseEvents.Remove(methodObject);
     }
 }
Example #24
0
 public void RegisterReleaseHook(ReleaseEvent methodObject)
 {
     lockReleaseEvents.Add(methodObject);
 }
 public ReleaseEventWithArchivedVersionsContract(ReleaseEvent ev, ContentLanguagePreference languagePreference)
     : base(ev, languagePreference)
 {
     ArchivedVersions = ev.ArchivedVersionsManager.Versions.Select(
         a => new ArchivedEventVersionContract(a)).ToArray();
 }
Example #26
0
 public void RegisterReleaseHook(ReleaseEvent methodObject)
 {
     lockReleaseEvents.Add(methodObject);
 }
Example #27
0
 private ReleaseEventForEditContract Contract(ReleaseEvent releaseEvent)
 {
     return(new ReleaseEventForEditContract(releaseEvent, ContentLanguagePreference.Default, permissionContext, null));
 }
Example #28
0
 private void AreEqual(ReleaseEvent expected, ReleaseEventFindResultContract actual)
 {
     actual.Should().NotBeNull("Result");
     actual.EventName.Should().Be(expected.DefaultName, "EventName");
     actual.EventId.Should().Be(expected.Id, "EventId");
 }
 public ReleaseEventWithArchivedVersionsContract(ReleaseEvent ev)
     : base(ev)
 {
     ArchivedVersions = ev.ArchivedVersionsManager.Versions.Select(
         a => new ArchivedEventVersionContract(a)).ToArray();
 }
Example #30
0
 protected void OnReleased()
 {
     ReleaseEvent?.Invoke(this, EventArgs.Empty);
 }
Example #31
0
        private object ConvertPayload()
        {
            switch (Event)
            {
            case PingEvent.EventString:
                return(PingEvent.FromJson(PayloadText));

            case CommitCommentEvent.EventString:
                return(CommitCommentEvent.FromJson(PayloadText));

            case CreateEvent.EventString:
                return(CreateEvent.FromJson(PayloadText));

            case DeleteEvent.EventString:
                return(DeleteEvent.FromJson(PayloadText));

            case DeploymentEvent.EventString:
                return(DeploymentEvent.FromJson(PayloadText));

            case DeploymentStatusEvent.EventString:
                return(DeploymentStatusEvent.FromJson(PayloadText));

            case ForkEvent.EventString:
                return(ForkEvent.FromJson(PayloadText));

            case GollumEvent.EventString:
                return(GollumEvent.FromJson(PayloadText));

            case InstallationEvent.EventString:
                return(InstallationEvent.FromJson(PayloadText));

            case InstallationRepositoriesEvent.EventString:
                return(InstallationRepositoriesEvent.FromJson(PayloadText));

            case IssueCommentEvent.EventString:
                return(IssueCommentEvent.FromJson(PayloadText));

            case IssuesEvent.EventString:
                return(IssuesEvent.FromJson(PayloadText));

            case LabelEvent.EventString:
                return(LabelEvent.FromJson(PayloadText));

            case MemberEvent.EventString:
                return(MemberEvent.FromJson(PayloadText));

            case MembershipEvent.EventString:
                return(MembershipEvent.FromJson(PayloadText));

            case MilestoneEvent.EventString:
                return(MilestoneEvent.FromJson(PayloadText));

            case OrganizationEvent.EventString:
                return(OrganizationEvent.FromJson(PayloadText));

            case OrgBlockEvent.EventString:
                return(OrgBlockEvent.FromJson(PayloadText));

            case PageBuildEvent.EventString:
                return(PageBuildEvent.FromJson(PayloadText));

            case ProjectCardEvent.EventString:
                return(ProjectCardEvent.FromJson(PayloadText));

            case ProjectColumnEvent.EventString:
                return(ProjectColumnEvent.FromJson(PayloadText));

            case ProjectEvent.EventString:
                return(ProjectEvent.FromJson(PayloadText));

            case PublicEvent.EventString:
                return(PublicEvent.FromJson(PayloadText));

            case PullRequestEvent.EventString:
                return(PullRequestEvent.FromJson(PayloadText));

            case PullRequestReviewEvent.EventString:
                return(PullRequestReviewEvent.FromJson(PayloadText));

            case PullRequestReviewCommentEvent.EventString:
                return(PullRequestReviewCommentEvent.FromJson(PayloadText));

            case PushEvent.EventString:
                return(PushEvent.FromJson(PayloadText));

            case ReleaseEvent.EventString:
                return(ReleaseEvent.FromJson(PayloadText));

            case RepositoryEvent.EventString:
                return(RepositoryEvent.FromJson(PayloadText));

            case StatusEvent.EventString:
                return(StatusEvent.FromJson(PayloadText));

            case WatchEvent.EventString:
                return(WatchEvent.FromJson(PayloadText));

            default:
                throw new NotImplementedException(
                          $"Event Type: `{Event}` is not implemented. Want it added? Open an issue at https://github.com/promofaux/GithubWebhooks");
            }
        }
Example #32
0
 protected void Release()
 {
     ReleaseEvent?.Invoke((T)this);
 }