private void DeleteThemeVariablesInternal(string themeName, int storeId, bool publishEvents)
        {
            Guard.NotEmpty(themeName, nameof(themeName));

            var query = from v in _rsVariables.Table
                        where v.StoreId == storeId && v.Theme == themeName
                        select v;

            if (query.Any())
            {
                using (var scope = new DbContextScope(ctx: _rsVariables.Context, autoCommit: false))
                {
                    query.Each(v =>
                    {
                        _rsVariables.Delete(v);
                        if (publishEvents)
                        {
                            _eventPublisher.EntityDeleted(v);
                        }
                    });

                    _requestCache.Remove(THEMEVARS_BY_THEME_KEY.FormatInvariant(themeName, storeId));

                    _rsVariables.Context.SaveChanges();
                }
            }
        }
示例#2
0
        public void Delete(int userId)
        {
            var buildCacheKey = UserService.BuildCacheKey(userId);

            _userRepository.Delete(userId);
            _cache.Remove(BuildCacheKey(userId));
        }
示例#3
0
        public void Should_add_item_to_cache_when_context_exists()
        {
            SetupContext();

            sut.Add("Key", 1);

            var found = sut.TryGetValue("Key", out var value);

            Assert.True(found);
            Assert.Equal(1, value);

            sut.Remove("Key");

            var foundAfterRemove = sut.TryGetValue("Key", out value);

            Assert.False(foundAfterRemove);
            Assert.Null(value);
        }
示例#4
0
 public Task DeleteAsync(Guid id) => DataSvcInvoker.Current.InvokeAsync(this, async() =>
 {
     await _data.DeleteAsync(id).ConfigureAwait(false);
     await(_deleteOnAfterAsync?.Invoke(id) ?? Task.CompletedTask).ConfigureAwait(false);
     await _evtPub.PublishValue(new Person {
         Id = id
     }, new Uri($"/person/{_evtPub.FormatKey(id)}", UriKind.Relative), $"Demo.Person.{_evtPub.FormatKey(id)}", "Delete", id).SendAsync().ConfigureAwait(false);
     _cache.Remove <Person>(new UniqueKey(id));
 }, new BusinessInvokerArgs {
     IncludeTransactionScope = true
 });
示例#5
0
 public Task DeleteAsync(Guid id)
 {
     return(DataSvcInvoker.Current.InvokeAsync(this, async() =>
     {
         await _data.DeleteAsync(id).ConfigureAwait(false);
         await _evtPub.PublishAsync($"Demo.Person.{id}", "Delete", id).ConfigureAwait(false);
         _cache.Remove <Person>(new UniqueKey(id));
         if (_deleteOnAfterAsync != null)
         {
             await _deleteOnAfterAsync(id).ConfigureAwait(false);
         }
     }));
 }
示例#6
0
        private async Task DeleteThemeVariablesInternal(string themeName, int storeId, bool save = true)
        {
            Guard.NotEmpty(themeName, nameof(themeName));

            var dbVars = await _db.ThemeVariables
                         .Where(v => v.StoreId == storeId && v.Theme == themeName)
                         .ToListAsync();

            if (dbVars.Any())
            {
                dbVars.Each(v =>
                {
                    _db.ThemeVariables.Remove(v);
                });

                _requestCache.Remove(THEMEVARS_BY_THEME_KEY.FormatInvariant(themeName, storeId));

                if (save)
                {
                    await _db.SaveChangesAsync();
                }
            }
        }
        public virtual void DeleteThemeVariables(string themeName, int storeId)
        {
            Guard.NotEmpty(themeName, nameof(themeName));

            var query = from v in _rsVariables.Table
                        where v.StoreId == storeId && v.Theme.Equals(themeName, StringComparison.OrdinalIgnoreCase)
                        select v;

            if (query.Any())
            {
                using (var scope = new DbContextScope(ctx:  _rsVariables.Context, autoCommit: false))
                {
                    query.Each(v =>
                    {
                        _rsVariables.Delete(v);
                        _eventPublisher.EntityDeleted(v);
                    });

                    _requestCache.Remove(THEMEVARS_BY_THEME_KEY.FormatInvariant(themeName, storeId));

                    _rsVariables.Context.SaveChanges();
                }
            }
        }