nopCommerce创建实体服务接口与实体服务类

来源:互联网 发布:蜘蛛侠淘宝客 编辑:程序博客网 时间:2024/05/17 23:21

在Nop.Services中添加OnlineStore文件夹,分别新建IOnlineStoreService和OnlineStoreService类。


IOnlineStoreService类

using System;using System.Collections.Generic;using Nop.Core;using Nop.Core.Domain.Cms;namespace Nop.Services.OnlineStores{    /// <summary>    /// OnlineStore service interface    /// </summary>    public partial interface IOnlineStoreService    {        void InsertOnlineStore(OnlineStore onlineStore);        void DeleteOnlineStore(OnlineStore onlineStore);        void UpdateOnlineStore(OnlineStore onlineStore);        OnlineStore GetOnlineStoreById(int onlineStoreId);        IList<OnlineStore> GetAllOnlineStores();    }}

OnlineStoreService类

using System;using System.Collections.Generic;using System.Linq;using Nop.Core;using Nop.Core.Data;using Nop.Core.Domain.Catalog;using Nop.Core.Domain.Cms;using Nop.Core.Domain.Stores;using Nop.Services.Events;using Nop.Core.Caching;namespace Nop.Services.OnlineStores{    /// <summary>    /// Blog service    /// </summary>    public partial class OnlineStoreService : IOnlineStoreService    {        #region Constants常量        /// <summary>        /// Key for caching        /// </summary>        /// <remarks>        /// {0} : store ID        /// {1} : ignore ACL?        /// {2} : show hidden?        /// </remarks>        private const string OnlineStore_ALL_KEY = "Nop.OnlineStore.all-{0}-{1}-{2}";        /// <summary>        /// Key for caching        /// </summary>        /// <remarks>        /// {0} : topic ID        /// </remarks>        private const string OnlineStore_BY_ID_KEY = "Nop.OnlineStore.id-{0}";        /// <summary>        /// Key pattern to clear cache        /// </summary>        private const string OnlineStore_PATTERN_KEY = "Nop.OnlineStore.";        #endregion        #region filed        private readonly IEventPublisher _eventPublisher;        private readonly ICacheManager _cacheManager;        private readonly IRepository<OnlineStore> _onlineStoreRepository;        #endregion        #region ctor        public OnlineStoreService(IEventPublisher eventPublisher, ICacheManager cacheManager, IRepository<OnlineStore> onlineStoreRepository)        {            this._eventPublisher = eventPublisher;            this._cacheManager = cacheManager;            this._onlineStoreRepository = onlineStoreRepository;        }        #endregion        #region Methods        public void DeleteOnlineStore(OnlineStore onlineStore)        {            if (onlineStore ==null)            {                throw new NotImplementedException();            }            _onlineStoreRepository.Delete(onlineStore);            _eventPublisher.EntityDeleted(onlineStore);            _cacheManager.RemoveByPattern(OnlineStore_PATTERN_KEY);        }        public IList<OnlineStore> GetAllOnlineStores()        {            var key = string.Format(OnlineStore_ALL_KEY);            return _cacheManager.Get(key, () =>            {                var query = _onlineStoreRepository.Table;                return query.ToList();            });        }        public OnlineStore GetOnlineStoreById(int onlineStoreId)        {            if (onlineStoreId == 0)            {                return null;            }            var key = string.Format(OnlineStore_BY_ID_KEY);            return _cacheManager.Get(key, () =>_onlineStoreRepository.GetById(onlineStoreId));        }        public void InsertOnlineStore(OnlineStore onlineStore)        {            if (onlineStore ==null)            {                throw new NotImplementedException();            }            _onlineStoreRepository.Insert(onlineStore);            _eventPublisher.EntityInserted(onlineStore);            _cacheManager.RemoveByPattern(OnlineStore_PATTERN_KEY);        }        public void UpdateOnlineStore(OnlineStore onlineStore)        {            if (onlineStore == null)            {                throw new NotImplementedException();            }            _onlineStoreRepository.Update(onlineStore);            _eventPublisher.EntityUpdated(onlineStore);            _cacheManager.RemoveByPattern(OnlineStore_PATTERN_KEY);        }        #endregion    }}

在Nop.Web.Framework中找到DependencyRegistrar.cs,添加

            builder.RegisterType<OnlineStoreService>().As<IOnlineStoreService>().InstancePerLifetimeScope();
原创粉丝点击