public ReleaseEventFindResultContract(ReleaseEventSeries series, ContentLanguagePreference languagePreference, int seriesNumber, string seriesSuffix, string eventName) { Series = new ReleaseEventSeriesContract(series, languagePreference); SeriesNumber = seriesNumber; SeriesSuffix = seriesSuffix; EventName = eventName; }
public ReleaseEventSeriesDetailsContract(ReleaseEventSeries series, ContentLanguagePreference languagePreference) : base(series, languagePreference) { Tags = series.Tags.ActiveUsages.Select(u => new TagUsageForApiContract(u, languagePreference)).OrderByDescending(t => t.Count).ToArray(); TranslatedName = new TranslatedStringContract(series.TranslatedName); WebLinks = series.WebLinks.Select(w => new WebLinkContract(w)).OrderBy(w => w.DescriptionOrUrl).ToArray(); }
public ReleaseEventFindResultContract(ReleaseEventSeries series, int seriesNumber, string seriesSuffix, string eventName) { Series = new ReleaseEventSeriesContract(series); SeriesNumber = seriesNumber; SeriesSuffix = seriesSuffix; EventName = eventName; }
public ReleaseEventSeriesWithEventsContract(ReleaseEventSeries series, IEnumerable<ReleaseEvent> events, ContentLanguagePreference languagePreference) : base(series) { ParamIs.NotNull(() => events); Events = events.OrderBy(e => e.SeriesNumber).Select(e => new ReleaseEventContract(e)).ToArray(); }
public int UpdateSeries(ReleaseEventSeriesForEditContract contract) { ParamIs.NotNull(() => contract); PermissionContext.VerifyPermission(PermissionToken.ManageEventSeries); return(HandleTransaction(session => { ReleaseEventSeries series; if (contract.Id == 0) { series = new ReleaseEventSeries(contract.Name, contract.Description, contract.Aliases); session.Save(series); AuditLog("created " + series, session); } else { series = session.Load <ReleaseEventSeries>(contract.Id); series.Name = contract.Name; series.Description = contract.Description; series.UpdateAliases(contract.Aliases); AuditLog("updated " + series, session); } return series.Id; })); }
public ReleaseEventSeriesWithEventsContract(ReleaseEventSeries series, IEnumerable <ReleaseEvent> events, ContentLanguagePreference languagePreference) : base(series) { ParamIs.NotNull(() => events); Events = events.OrderBy(e => e.SeriesNumber).Select(e => new ReleaseEventContract(e)).ToArray(); }
private ReleaseEventSeries CreateSeries(params string[] aliases) { var s = new ReleaseEventSeries(ContentLanguageSelection.English, aliases.Select(a => new LocalizedString(a, ContentLanguageSelection.English)).ToArray(), string.Empty); _querySource.Add(s); return(s); }
public ReleaseEventFindResultContract(ReleaseEventSeries series, int seriesNumber, string seriesSuffix, string eventName) { Series = new ReleaseEventSeriesContract(series); SeriesNumber = seriesNumber; SeriesSuffix = seriesSuffix; EventName = eventName; }
private ReleaseEventSeries CreateSeries(string name, params string[] aliases) { var s = new ReleaseEventSeries(name, string.Empty, aliases); querySource.Add(s); return(s); }
private void CreateTrashedEntry(IDatabaseContext ctx, ReleaseEventSeries eventSeries, string notes) { var archived = new ArchivedEventSeriesContract(eventSeries, new ReleaseEventSeriesDiff(true)); var data = XmlHelper.SerializeToXml(archived); var trashed = new TrashedEntry(eventSeries, data, GetLoggedUser(ctx), notes); ctx.Save(trashed); }
private ReleaseEventSeries CreateSeries(string name, params string[] aliases) { var s = new ReleaseEventSeries(name, string.Empty, aliases); querySource.Add(s); return s; }
private ReleaseEvent CreateEvent(ReleaseEventSeries series, int number, string suffix = "") { var e = CreateEntry.SeriesEvent(series, number, suffix, id: _eventId++); _querySource.Add(e); series.AllEvents.Add(e); return(e); }
public ReleaseEventSeriesContract(ReleaseEventSeries series) : this() { ParamIs.NotNull(() => series); Description = series.Description; Id = series.Id; Name = series.Name; }
public ArchivedEventSeriesContract(ReleaseEventSeries series) { ParamIs.NotNull(() => series); Aliases = series.Aliases.Select(a => a.Name).ToArray(); Description = series.Description; Id = series.Id; Name = series.Name; }
public ArchivedEventSeriesContract(ReleaseEventSeries series) { ParamIs.NotNull(() => series); Aliases = series.Aliases.Select(a => a.Name).ToArray(); Description = series.Description; Id = series.Id; Name = series.Name; }
public ReleaseEventSeriesContract(ReleaseEventSeries series) : this() { ParamIs.NotNull(() => series); Description = series.Description; Id = series.Id; Name = series.Name; }
public ArchivedEventSeriesContract(ReleaseEventSeries series, ReleaseEventSeriesDiff diff) { ParamIs.NotNull(() => series); Aliases = series.Aliases.Select(a => a.Name).ToArray(); Description = series.Description; Id = series.Id; Name = series.Name; WebLinks = diff.IsIncluded(ReleaseEventSeriesEditableFields.WebLinks) ? series.WebLinks.Select(l => new ArchivedWebLinkContract(l)).ToArray() : null; }
public void FindSeriesWithNumberAndSuffix_Exact() { _series = CreateSeries("M3"); CreateEvent(_series, 2013, "Fall"); var result = Find("M3 2013 Fall"); result.Should().NotBeNull("Result"); result.IsKnownEvent.Should().BeTrue("IsKnownEvent"); result.EventName.Should().Be("M3 2013 Fall", "EventName"); }
public void FindSeriesWithNumberAndSuffix_Exact() { series = CreateSeries("M3"); CreateEvent(series, 2013, "Fall"); var result = Find("M3 2013 Fall"); Assert.IsNotNull(result, "Result"); Assert.IsTrue(result.IsKnownEvent, "IsKnownEvent"); Assert.AreEqual("M3 2013 Fall", result.EventName, "EventName"); }
public ReleaseEvent(string description, DateTime? date, ReleaseEventSeries series, int seriesNumber) : this() { ParamIs.NotNull(() => series); Description = description; Date = date; Series = series; SeriesNumber = seriesNumber; Name = series.GetEventName(seriesNumber); }
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"); }
private ReleaseEvent CreateEvent(ReleaseEventSeries series, int number, string suffix = "") { var e = new ReleaseEvent(string.Empty, null, series, number, suffix) { Id = eventId++ }; querySource.Add(e); series.Events.Add(e); return e; }
public ArchivedEventSeriesContract(ReleaseEventSeries series, ReleaseEventSeriesDiff diff) { ParamIs.NotNull(() => series); Category = series.Category; Description = series.Description; Id = series.Id; MainPictureMime = series.PictureMime; Names = diff.IncludeNames ? series.Names.Names.Select(n => new LocalizedStringContract(n)).ToArray() : null; TranslatedName = new ArchivedTranslatedStringContract(series.TranslatedName); WebLinks = diff.IncludeWebLinks ? series.WebLinks.Select(l => new ArchivedWebLinkContract(l)).ToArray() : null; }
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"); }
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); }
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); }
private void SaveImage(ReleaseEventSeries series, EntryPictureFileContract pictureData) { if (pictureData != null) { var parsed = ImageHelper.GetOriginal(pictureData.UploadedFile, pictureData.ContentLength, pictureData.Mime); series.PictureMime = parsed.Mime; pictureData.Id = series.Id; pictureData.EntryType = EntryType.ReleaseEventSeries; var thumbGenerator = new ImageThumbGenerator(imagePersister); thumbGenerator.GenerateThumbsAndMoveImage(pictureData.UploadedFile, pictureData, ReleaseEventSeries.ImageSizes, originalSize: Constants.RestrictedImageOriginalSize); } }
public ReleaseEvent(string description, DateTime? date, ReleaseEventSeries series, int seriesNumber, string seriesSuffix) : this() { ParamIs.NotNull(() => series); Description = description; Date = date; Series = series; SeriesNumber = seriesNumber; SeriesSuffix = seriesSuffix; UpdateNameFromSeries(); }
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)); }
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 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)); }
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); }
public ReleaseEventSeriesContract(ReleaseEventSeries series, ContentLanguagePreference languagePreference, bool includeLinks = false) : this() { ParamIs.NotNull(() => series); AdditionalNames = series.Names.GetAdditionalNamesStringForLanguage(languagePreference); Category = series.Category; Deleted = series.Deleted; Description = series.Description; Id = series.Id; Name = series.TranslatedName[languagePreference]; PictureMime = series.PictureMime; Status = series.Status; UrlSlug = series.UrlSlug; Version = series.Version; if (includeLinks) { WebLinks = series.WebLinks.Select(w => new WebLinkContract(w)).OrderBy(w => w.DescriptionOrUrl).ToArray(); } }
public ReleaseEventSeriesForApiContract(ReleaseEventSeries series, ContentLanguagePreference languagePreference, ReleaseEventSeriesOptionalFields fields, IAggregatedEntryImageUrlFactory thumbPersister) { Category = series.Category; Id = series.Id; Name = series.TranslatedName[languagePreference]; Status = series.Status; UrlSlug = series.UrlSlug; Version = series.Version; if (fields.HasFlag(ReleaseEventSeriesOptionalFields.AdditionalNames)) { AdditionalNames = series.Names.GetAdditionalNamesStringForLanguage(languagePreference); } if (fields.HasFlag(ReleaseEventSeriesOptionalFields.Description)) { Description = series.Description; } if (fields.HasFlag(ReleaseEventSeriesOptionalFields.Events)) { Events = series.Events.Select(e => new ReleaseEventForApiContract(e, languagePreference, ReleaseEventOptionalFields.None, thumbPersister)).ToArray(); } if (thumbPersister != null && fields.HasFlag(ReleaseEventSeriesOptionalFields.MainPicture)) { MainPicture = EntryThumbForApiContract.Create(EntryThumb.Create(series), thumbPersister); } if (fields.HasFlag(ReleaseEventSeriesOptionalFields.Names)) { Names = series.Names.Select(n => new LocalizedStringContract(n)).ToArray(); } if (fields.HasFlag(ReleaseEventSeriesOptionalFields.WebLinks)) { WebLinks = series.WebLinks.Select(w => new WebLinkForApiContract(w)).ToArray(); } }
private ReleaseEventFindResultContract AttemptSeriesMatch(string seriesName, ReleaseEventSeries series, string query, ContentLanguagePreference languagePreference) { var queryWithoutSeries = query.Remove(0, seriesName.Length).TrimStart(); var match = eventNumberRegex.Match(queryWithoutSeries); if (!match.Success) { return(null); } var seriesNumber = Convert.ToInt32(match.Groups[1].Value); var seriesSuffix = (match.Groups.Count >= 3 ? match.Groups[2].Value : string.Empty); var ev = Query <ReleaseEvent>().FirstOrDefault(e => e.Series != null && e.Series.Id == series.Id && e.SeriesNumber == seriesNumber && e.SeriesSuffix == seriesSuffix); if (ev != null) { return(new ReleaseEventFindResultContract(ev, languagePreference)); } else { return(new ReleaseEventFindResultContract(series, languagePreference, seriesNumber, seriesSuffix, query)); } }
public int UpdateSeries(ReleaseEventSeriesForEditContract contract) { ParamIs.NotNull(() => contract); PermissionContext.VerifyPermission(PermissionToken.ManageEventSeries); return HandleTransaction(session => { ReleaseEventSeries series; if (contract.Id == 0) { series = new ReleaseEventSeries(contract.Name, contract.Description, contract.Aliases); session.Save(series); AuditLog("created " + series, session); } else { series = session.Load<ReleaseEventSeries>(contract.Id); series.Name = contract.Name; series.Description = contract.Description; series.UpdateAliases(contract.Aliases); AuditLog("updated " + series, session); } return series.Id; }); }
public ReleaseEventSeriesWithEventsContract(ReleaseEventSeries series, ContentLanguagePreference languagePreference) : base(series) { Events = series.Events.Select(e => new ReleaseEventContract(e)).ToArray(); }
public void FindSeriesWithNumberAndSuffix_Exact() { series = CreateSeries("M3"); CreateEvent(series, 2013, "Fall"); var result = Find("M3 2013 Fall"); Assert.IsNotNull(result, "Result"); Assert.IsTrue(result.IsKnownEvent, "IsKnownEvent"); Assert.AreEqual("M3 2013 Fall", result.EventName, "EventName"); }
public int UpdateSeries(ReleaseEventSeriesForEditContract contract, EntryPictureFileContract pictureData) { ParamIs.NotNull(() => contract); PermissionContext.VerifyManageDatabase(); return(HandleTransaction(session => { ReleaseEventSeries series; if (contract.Id == 0) { series = new ReleaseEventSeries(contract.DefaultNameLanguage, contract.Names, contract.Description) { Category = contract.Category, Status = contract.Status }; session.Save(series); var diff = new ReleaseEventSeriesDiff(ReleaseEventSeriesEditableFields.OriginalName | ReleaseEventSeriesEditableFields.Names); diff.Description.Set(!string.IsNullOrEmpty(contract.Description)); var weblinksDiff = WebLink.Sync(series.WebLinks, contract.WebLinks, series); if (weblinksDiff.Changed) { diff.WebLinks.Set(); session.OfType <ReleaseEventWebLink>().Sync(weblinksDiff); } if (pictureData != null) { diff.Picture.Set(); SaveImage(series, pictureData); session.Update(series); } session.Update(series); Archive(session, series, diff, EntryEditEvent.Created, string.Empty); AuditLog(string.Format("created {0}", entryLinkFactory.CreateEntryLink(series)), session); } else { series = session.Load <ReleaseEventSeries>(contract.Id); permissionContext.VerifyEntryEdit(series); var diff = new ReleaseEventSeriesDiff(ReleaseEventSeriesEditableFields.Nothing); if (series.TranslatedName.DefaultLanguage != contract.DefaultNameLanguage) { series.TranslatedName.DefaultLanguage = contract.DefaultNameLanguage; diff.OriginalName.Set(); } var nameDiff = series.Names.Sync(contract.Names, series); session.Sync(nameDiff); if (nameDiff.Changed) { diff.Names.Set(); } if (series.Category != contract.Category) { diff.Category.Set(); series.Category = contract.Category; } if (series.Description != contract.Description) { diff.Description.Set(); series.Description = contract.Description; } if (series.Status != contract.Status) { diff.Status.Set(); series.Status = contract.Status; } if (pictureData != null) { diff.Picture.Set(); SaveImage(series, pictureData); } var weblinksDiff = WebLink.Sync(series.WebLinks, contract.WebLinks, series); if (weblinksDiff.Changed) { diff.WebLinks.Set(); session.OfType <ReleaseEventWebLink>().Sync(weblinksDiff); } session.Update(series); if (diff.Names.IsChanged || diff.OriginalName.IsChanged) { var eventNamesQuery = new UpdateEventNamesQuery(); foreach (var ev in series.Events.Where(e => !e.CustomName)) { eventNamesQuery.UpdateNames(session, ev, series, ev.CustomName, ev.SeriesNumber, ev.SeriesSuffix, ev.Names); session.Update(ev); } } Archive(session, series, diff, EntryEditEvent.Updated, string.Empty); AuditLog(string.Format("updated {0}", entryLinkFactory.CreateEntryLink(series)), session); } return series.Id; })); }
private void SaveImage(ReleaseEventSeries series, EntryPictureFileContract pictureData) { var parsed = SaveImage((IEntryImageInformation)series, pictureData); series.PictureMime = parsed.Mime; }
public ReleaseEventSeriesAlias(ReleaseEventSeries series, string name) { Series = series; Name = name; }
public ReleaseEventSeriesDetailsContract(ReleaseEventSeries series, ContentLanguagePreference languagePreference) : base(series, languagePreference) { Aliases = series.Aliases.Select(a => a.Name).ToArray(); }
public ReleaseEventSeriesForEditContract(ReleaseEventSeries series) : base(series) { Aliases = series.Aliases.Select(a => a.Name).ToArray(); }
public ReleaseEventSeriesWithEventsContract(ReleaseEventSeries series, ContentLanguagePreference languagePreference) : base(series) { Events = series.Events.Select(e => new ReleaseEventContract(e)).ToArray(); }
private ArchivedReleaseEventSeriesVersion Archive(IDatabaseContext <ReleaseEvent> ctx, ReleaseEventSeries releaseEvent, ReleaseEventSeriesDiff diff, EntryEditEvent reason, string notes) { var agentLoginData = ctx.OfType <User>().CreateAgentLoginData(permissionContext); var archived = ArchivedReleaseEventSeriesVersion.Create(releaseEvent, diff, agentLoginData, reason, notes); ctx.Save(archived); return(archived); }
public ReleaseEventSeriesForEditContract(ReleaseEventSeries series, ContentLanguagePreference languagePreference) : base(series, languagePreference) { DefaultNameLanguage = series.TranslatedName.DefaultLanguage; Names = series.Names.Select(n => new LocalizedStringWithIdContract(n)).ToArray(); WebLinks = series.WebLinks.Select(w => new WebLinkContract(w)).OrderBy(w => w.DescriptionOrUrl).ToArray(); }