Пример #1
0
        private Task <CompareExchangeResult <string> > DeleteUserEmailReservation(string email)
        {
            var key   = GetCompareExchangeKeyFromEmail(email);
            var store = DbSession.Advanced.DocumentStore;

            var readResult = store.Operations.Send(new GetCompareExchangeValueOperation <string>(key));

            if (readResult == null)
            {
                return(Task.FromResult(new CompareExchangeResult <string>()
                {
                    Successful = false
                }));
            }

            var deleteEmailOperation = new DeleteCompareExchangeValueOperation <string>(key, readResult.Index);

            return(DbSession.Advanced.DocumentStore.Operations.SendAsync(deleteEmailOperation));
        }
Пример #2
0
        /// <summary>
        /// Removes email reservation.
        /// </summary>
        /// <param name="email"></param>
        /// <returns></returns>
        protected virtual async Task <CompareExchangeResult <string> > DeleteEmailReservation(string email)
        {
            var key   = Conventions.CompareExchangeKeyFor(email);
            var store = DbSession.Advanced.DocumentStore;

            var readResult = await store.Operations.SendAsync(new GetCompareExchangeValueOperation <string>(key));

            if (readResult == null)
            {
                logger.LogError("Failed to get current index for {EmailReservation} to delete it", key);
                return(new CompareExchangeResult <string>()
                {
                    Successful = false
                });
            }

            var deleteEmailOperation = new DeleteCompareExchangeValueOperation <string>(key, readResult.Index);

            return(await DbSession.Advanced.DocumentStore.Operations.SendAsync(deleteEmailOperation));
        }