/// <summary>
        /// 新增ShopProduct
        /// </summary>

        protected virtual async Task <ShopProductEditDto> CreateShopProductAsync(ShopProductEditDto input)
        {
            //TODO:新增前的逻辑判断,是否允许新增
            var entity = ObjectMapper.Map <ShopProduct>(input);

            entity = await _shopproductRepository.InsertAsync(entity);

            return(entity.MapTo <ShopProductEditDto>());
        }
        /// <summary>
        /// 编辑ShopProduct
        /// </summary>

        protected virtual async Task UpdateShopProductAsync(ShopProductEditDto input)
        {
            //TODO:更新前的逻辑判断,是否允许更新
            var entity = await _shopproductRepository.GetAsync(input.Id.Value);

            input.MapTo(entity);

            // ObjectMapper.Map(input, entity);
            await _shopproductRepository.UpdateAsync(entity);
        }
 /// <summary>
 /// 添加或者修改ShopProduct的方法
 /// </summary>
 /// <param name="input"></param>
 /// <returns></returns>
 public async Task CreateOrUpdateShopProductDto(ShopProductEditDto input)
 {
     if (input.Id.HasValue)
     {
         await UpdateShopProductAsync(input);
     }
     else
     {
         await CreateShopProductAsync(input);
     }
 }
        /// <summary>
        /// 导出ShopProduct为excel表
        /// </summary>
        /// <returns></returns>
        //public async Task<FileDto> GetShopProductsToExcel(){
        //var users = await UserManager.Users.ToListAsync();
        //var userListDtos = ObjectMapper.Map<List<UserListDto>>(users);
        //await FillRoleNames(userListDtos);
        //return _userListExcelExporter.ExportToFile(userListDtos);
        //}
        /// <summary>
        /// MPA版本才会用到的方法
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <GetShopProductForEditOutput> GetShopProductForEdit(NullableIdDto <long> input)
        {
            var output = new GetShopProductForEditOutput();
            ShopProductEditDto shopproductEditDto;

            if (input.Id.HasValue)
            {
                var entity = await _shopproductRepository.GetAsync(input.Id.Value);

                shopproductEditDto = entity.MapTo <ShopProductEditDto>();

                //shopproductEditDto = ObjectMapper.Map<List <shopproductEditDto>>(entity);
            }
            else
            {
                shopproductEditDto = new ShopProductEditDto();
            }

            output.ShopProduct = shopproductEditDto;
            return(output);
        }