public void Update_Description() { var updated = new TagContract(tag); updated.Description = "mikumikudance.wikia.com/wiki/Miku_Hatsune_Appearance_(Mamama)"; queries.Update(updated, null); Assert.AreEqual(updated.Description, tag.Description, "Description was updated"); var archivedVersion = repository.List <ArchivedTagVersion>().FirstOrDefault(a => a.Tag.Id == tag.Id); Assert.IsNotNull(archivedVersion, "Archived version was created"); Assert.AreEqual(TagEditableFields.Description, archivedVersion.Diff.ChangedFields, "Changed fields"); }
public void Update_Parent_IgnoreSelf() { var updated = new TagContract(tag); updated.Parent = tag.Name; queries.Update(updated, null); Assert.IsNull(tag.Parent, "Parent"); var archivedVersion = GetArchivedVersion(tag); Assert.IsNotNull(archivedVersion, "Archived version was created"); Assert.AreEqual(TagEditableFields.Nothing, archivedVersion.Diff.ChangedFields, "Changed fields"); }
public void Update_Parent() { var updated = new TagContract(tag); updated.Parent = tag2.Name; queries.Update(updated, null); Assert.AreEqual(tag2, tag.Parent, "Parent"); Assert.IsTrue(tag2.Children.Contains(tag), "Parent contains child tag"); var archivedVersion = GetArchivedVersion(tag); Assert.IsNotNull(archivedVersion, "Archived version was created"); Assert.AreEqual(TagEditableFields.Parent, archivedVersion.Diff.ChangedFields, "Changed fields"); }
public void Update_Image() { var updated = new TagContract(tag); using (var stream = TestImage()) { queries.Update(updated, new UploadedFileContract { Mime = MediaTypeNames.Image.Jpeg, Stream = stream }); } var thumb = new EntryThumb(tag, MediaTypeNames.Image.Jpeg); Assert.IsTrue(imagePersister.HasImage(thumb, ImageSize.Original), "Original image was saved"); Assert.IsTrue(imagePersister.HasImage(thumb, ImageSize.SmallThumb), "Small thumbnail was saved"); var archivedVersion = GetArchivedVersion(tag); Assert.IsNotNull(archivedVersion, "Archived version was created"); Assert.AreEqual(TagEditableFields.Picture, archivedVersion.Diff.ChangedFields, "Changed fields"); }
public void UpdateTag(TagContract contract) { ParamIs.NotNull(() => contract); PermissionContext.VerifyPermission(PermissionToken.ManageDatabase); HandleTransaction(session => { var tag = session.Load <Tag>(contract.Name); var diff = new TagDiff(); var oldAliasedTo = tag.AliasedTo != null ? tag.AliasedTo.Name : string.Empty; var newAliasedTo = contract.AliasedTo ?? string.Empty; if (oldAliasedTo != newAliasedTo) { diff.AliasedTo = true; tag.AliasedTo = session.Query <Tag>().FirstOrDefault(t => t.AliasedTo == null && t.Name == newAliasedTo); } if (tag.CategoryName != contract.CategoryName) { diff.CategoryName = true; } if (tag.Description != contract.Description) { diff.Description = true; } tag.CategoryName = contract.CategoryName; tag.Description = contract.Description; var logStr = string.Format("updated properties for {0} ({1})", tag, diff.ChangedFieldsString); AuditLog(logStr, session); Archive(session, tag, diff, EntryEditEvent.Updated); session.Update(tag); }); }
public void Update(TagContract contract, UploadedFileContract uploadedImage) { ParamIs.NotNull(() => contract); PermissionContext.VerifyPermission(PermissionToken.ManageDatabase); repository.HandleTransaction(ctx => { var tag = ctx.Load(contract.Name); permissionContext.VerifyEntryEdit(tag); var diff = new TagDiff(); var newAliasedTo = contract.AliasedTo ?? string.Empty; if (!Tag.Equals(tag.AliasedTo, contract.AliasedTo)) { diff.AliasedTo = true; tag.AliasedTo = GetRealTag(ctx, newAliasedTo, tag); } if (tag.CategoryName != contract.CategoryName) { diff.CategoryName = true; } if (tag.Description != contract.Description) { diff.Description = true; } if (!Tag.Equals(tag.Parent, contract.Parent)) { var newParent = GetRealTag(ctx, contract.Parent, tag); if (!Equals(newParent, tag.Parent)) { diff.Parent = true; tag.SetParent(newParent); } } if (tag.Status != contract.Status) { diff.Status = true; } tag.CategoryName = contract.CategoryName; tag.Description = contract.Description; tag.Status = contract.Status; if (uploadedImage != null) { diff.Picture = true; var thumb = new EntryThumb(tag, uploadedImage.Mime); tag.Thumb = thumb; var thumbGenerator = new ImageThumbGenerator(imagePersister); thumbGenerator.GenerateThumbsAndMoveImage(uploadedImage.Stream, thumb, ImageSizes.Original | ImageSizes.SmallThumb, originalSize: 500); } var logStr = string.Format("updated properties for tag {0} ({1})", entryLinkFactory.CreateEntryLink(tag), diff.ChangedFieldsString); ctx.AuditLogger.AuditLog(logStr); Archive(ctx, tag, diff, EntryEditEvent.Updated); ctx.Update(tag); }); }