コード例 #1
0
        private Task OnDocumentsChanging(object sender, DocumentsChangeEventArgs <User> args)
        {
            if (args.ChangeType == ChangeType.Removed)
            {
                return(Task.CompletedTask);
            }

            foreach (var doc in args.Documents)
            {
                doc.Value.EmailAddress = doc.Value.EmailAddress.ToLower();

                // automatically verify email if its in the oauth accounts
                if (!doc.Value.IsEmailAddressVerified)
                {
                    doc.Value.IsEmailAddressVerified = doc.Value.OAuthAccounts.Count(oa => String.Equals(oa.EmailAddress(), doc.Value.EmailAddress, StringComparison.OrdinalIgnoreCase)) > 0;
                }

                if (!doc.Value.IsEmailAddressVerified && String.IsNullOrEmpty(doc.Value.VerifyEmailAddressToken))
                {
                    doc.Value.CreateVerifyEmailAddressToken();
                }
            }

            return(Task.CompletedTask);
        }
コード例 #2
0
        protected Task OnDocumentsChanging(object sender, DocumentsChangeEventArgs <Parent> args)
        {
            foreach (var doc in args.Documents.Select(d => d.Value).Cast <IParentChildDocument>())
            {
                doc.Discriminator = JoinField.Root <Parent>();
            }

            return(Task.CompletedTask);
        }
コード例 #3
0
        private async Task OnDocumentChangingAsync(object sender, DocumentsChangeEventArgs <Stack> args)
        {
            if (args.ChangeType != ChangeType.Removed)
            {
                return;
            }

            foreach (var document in args.Documents)
            {
                if (await _eventRepository.GetCountByStackIdAsync(document.Value.Id).AnyContext() > 0)
                {
                    throw new ApplicationException($"Stack \"{document.Value.Id}\" can't be deleted because it has events associated to it.");
                }
            }
        }