예제 #1
0
        private async Task _OnBeforeSaving()
        {
            var entries = ChangeTracker.Entries().ToList();

            using var sha512 = SHA512.Create();
            foreach (var template in _filter <TemplateRevisionEntity>(entries))
            {
                template.CWeightTsvHelper =
                    Fields.fromString.Invoke(template.Fields).Select(x => x.Name)
                    .Append(MappingTools.stripHtmlTags(template.CardTemplates))
                    .Apply(x => string.Join(' ', x));
            }
            foreach (var revision in _filter <RevisionEntity>(entries))
            {
                if (revision.TemplateRevision == null)
                {
                    revision.TemplateRevision = await TemplateRevision.FindAsync(revision.TemplateRevisionId);
                }
                var templateHash = revision.TemplateRevision?.Hash ?? TemplateRevision.Find(revision.TemplateRevisionId).Hash;
                revision.TsvHelper = MappingTools.stripHtmlTags(revision.FieldValues);
            }
            foreach (var card in _filter <CardEntity>(entries))
            {
                card.TsvHelper = MappingTools.stripHtmlTags(card.FrontPersonalField) + " " + MappingTools.stripHtmlTags(card.BackPersonalField);
            }
        }