Browse Source

Close #76: Improve ProductType usage

pull/87/head v0.4.3
gdlcf88 6 years ago
parent
commit
d9149ea0f4
  1. 2
      common.props
  2. 2
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application.Contracts/EasyAbp/EShop/Orders/Orders/Dtos/OrderLineDto.cs
  3. 1
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp/EShop/Orders/Orders/NewOrderGenerator.cs
  4. 2
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain.Shared/EasyAbp/EShop/Orders/Orders/IOrderLine.cs
  5. 2
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain.Shared/EasyAbp/EShop/Orders/Orders/OrderLineEto.cs
  6. 5
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/OrderLine.cs
  7. 3
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Permissions/ProductsPermissionDefinitionProvider.cs
  8. 3
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Permissions/ProductsPermissions.cs
  9. 24
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductTypes/Dtos/CreateUpdateProductTypeDto.cs
  10. 6
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductTypes/IProductTypeAppService.cs
  11. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/ProductDto.cs
  12. 5
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/ProductTypes/ProductTypeAppService.cs
  13. 22
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/Products/ProductAppService.cs
  14. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/ProductsApplicationAutoMapperProfile.cs
  15. 7
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/ProductsConsts.cs
  16. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/ProductTypes/ProductTypeDataSeeder.cs
  17. 18
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/ProductTypes/ProductType/CreateModal.cshtml
  18. 26
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/ProductTypes/ProductType/CreateModal.cshtml.cs
  19. 19
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/ProductTypes/ProductType/EditModal.cshtml
  20. 37
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/ProductTypes/ProductType/EditModal.cshtml.cs
  21. 7
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/ProductTypes/ProductType/Index.cshtml
  22. 41
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/ProductTypes/ProductType/index.js
  23. 3
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/ProductsWebAutoMapperProfile.cs
  24. 3840
      samples/EShopSample/aspnet-core/src/EShopSample.EntityFrameworkCore.DbMigrations/Migrations/20200708064137_AddedProductTypeNameToOrderLine.Designer.cs
  25. 22
      samples/EShopSample/aspnet-core/src/EShopSample.EntityFrameworkCore.DbMigrations/Migrations/20200708064137_AddedProductTypeNameToOrderLine.cs
  26. 3
      samples/EShopSample/aspnet-core/src/EShopSample.EntityFrameworkCore.DbMigrations/Migrations/EShopSampleMigrationsDbContextModelSnapshot.cs

2
common.props

@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<LangVersion>latest</LangVersion>
<Version>0.4.2</Version>
<Version>0.4.3</Version>
<NoWarn>$(NoWarn);CS1591</NoWarn>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>EasyAbp Team</Authors>

2
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application.Contracts/EasyAbp/EShop/Orders/Orders/Dtos/OrderLineDto.cs

@ -13,6 +13,8 @@ namespace EasyAbp.EShop.Orders.Orders.Dtos
public DateTime ProductDetailModificationTime { get; set; }
public string ProductTypeName { get; set; }
public string ProductName { get; set; }
public string SkuDescription { get; set; }

1
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp/EShop/Orders/Orders/NewOrderGenerator.cs

@ -89,6 +89,7 @@ namespace EasyAbp.EShop.Orders.Orders
productSkuId: productSku.Id,
productModificationTime: product.LastModificationTime ?? product.CreationTime,
productDetailModificationTime: productSku.LastModificationTime ?? productSku.CreationTime,
productTypeName: product.ProductTypeName,
productName: product.DisplayName,
skuDescription: await _productSkuDescriptionProvider.GenerateAsync(product, productSku),
mediaResources: product.MediaResources,

2
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain.Shared/EasyAbp/EShop/Orders/Orders/IOrderLine.cs

@ -12,6 +12,8 @@ namespace EasyAbp.EShop.Orders.Orders
DateTime ProductDetailModificationTime { get; }
string ProductTypeName { get; }
string ProductName { get; }
string SkuDescription { get; }

2
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain.Shared/EasyAbp/EShop/Orders/Orders/OrderLineEto.cs

@ -15,6 +15,8 @@ namespace EasyAbp.EShop.Orders.Orders
public DateTime ProductDetailModificationTime { get; set; }
public string ProductTypeName { get; set; }
public string ProductName { get; set; }
public string SkuDescription { get; set; }

5
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/OrderLine.cs

@ -14,6 +14,9 @@ namespace EasyAbp.EShop.Orders.Orders
public virtual DateTime ProductDetailModificationTime { get; protected set; }
[NotNull]
public virtual string ProductTypeName { get; protected set; }
[NotNull]
public virtual string ProductName { get; protected set; }
@ -42,6 +45,7 @@ namespace EasyAbp.EShop.Orders.Orders
Guid productSkuId,
DateTime productModificationTime,
DateTime productDetailModificationTime,
[NotNull] string productTypeName,
[NotNull] string productName,
[CanBeNull] string skuDescription,
[CanBeNull] string mediaResources,
@ -55,6 +59,7 @@ namespace EasyAbp.EShop.Orders.Orders
ProductSkuId = productSkuId;
ProductModificationTime = productModificationTime;
ProductDetailModificationTime = productDetailModificationTime;
ProductTypeName = productTypeName;
ProductName = productName;
SkuDescription = skuDescription;
MediaResources = mediaResources;

3
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Permissions/ProductsPermissionDefinitionProvider.cs

@ -12,9 +12,6 @@ namespace EasyAbp.EShop.Products.Permissions
var moduleGroup = context.AddGroup(ProductsPermissions.GroupName, L("Permission:Products"));
var productTypes = moduleGroup.AddPermission(ProductsPermissions.ProductTypes.Default, L("Permission:ProductType"));
productTypes.AddChild(ProductsPermissions.ProductTypes.Create, L("Permission:Create"), MultiTenancySides.Host);
productTypes.AddChild(ProductsPermissions.ProductTypes.Update, L("Permission:Update"), MultiTenancySides.Host);
productTypes.AddChild(ProductsPermissions.ProductTypes.Delete, L("Permission:Delete"), MultiTenancySides.Host);
var categories = moduleGroup.AddPermission(ProductsPermissions.Categories.Default, L("Permission:Category"));
categories.AddChild(ProductsPermissions.Categories.CrossStore, L("Permission:CrossStore"));

3
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Permissions/ProductsPermissions.cs

@ -9,9 +9,6 @@ namespace EasyAbp.EShop.Products.Permissions
public class ProductTypes
{
public const string Default = GroupName + ".ProductType";
public const string Delete = Default + ".Delete";
public const string Update = Default + ".Update";
public const string Create = Default + ".Create";
}
public class Categories

24
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductTypes/Dtos/CreateUpdateProductTypeDto.cs

@ -1,24 +0,0 @@
using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using Volo.Abp.MultiTenancy;
namespace EasyAbp.EShop.Products.ProductTypes.Dtos
{
public class CreateUpdateProductTypeDto
{
[Required]
[DisplayName("ProductTypeName")]
public string Name { get; set; }
[Required]
[DisplayName("ProductTypeDisplayName")]
public string DisplayName { get; set; }
[DisplayName("ProductTypeDescription")]
public string Description { get; set; }
[DisplayName("ProductTypeMultiTenancySide")]
public MultiTenancySides MultiTenancySide { get; set; }
}
}

6
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductTypes/IProductTypeAppService.cs

@ -6,12 +6,10 @@ using Volo.Abp.Application.Services;
namespace EasyAbp.EShop.Products.ProductTypes
{
public interface IProductTypeAppService :
ICrudAppService<
IReadOnlyAppService<
ProductTypeDto,
Guid,
PagedAndSortedResultRequestDto,
CreateUpdateProductTypeDto,
CreateUpdateProductTypeDto>
PagedAndSortedResultRequestDto>
{
}

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/ProductDto.cs

@ -9,6 +9,8 @@ namespace EasyAbp.EShop.Products.Products.Dtos
public class ProductDto : FullAuditedEntityDto<Guid>
{
public Guid ProductTypeId { get; set; }
public string ProductTypeName { get; set; }
public Guid ProductDetailId { get; set; }

5
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/ProductTypes/ProductTypeAppService.cs

@ -6,12 +6,9 @@ using Volo.Abp.Application.Services;
namespace EasyAbp.EShop.Products.ProductTypes
{
public class ProductTypeAppService : CrudAppService<ProductType, ProductTypeDto, Guid, PagedAndSortedResultRequestDto, CreateUpdateProductTypeDto, CreateUpdateProductTypeDto>,
public class ProductTypeAppService : ReadOnlyAppService<ProductType, ProductTypeDto, Guid, PagedAndSortedResultRequestDto>,
IProductTypeAppService
{
protected override string CreatePolicyName { get; set; } = ProductsPermissions.ProductTypes.Create;
protected override string DeletePolicyName { get; set; } = ProductsPermissions.ProductTypes.Delete;
protected override string UpdatePolicyName { get; set; } = ProductsPermissions.ProductTypes.Update;
protected override string GetPolicyName { get; set; } = ProductsPermissions.ProductTypes.Default;
protected override string GetListPolicyName { get; set; } = ProductsPermissions.ProductTypes.Default;

22
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/Products/ProductAppService.cs

@ -5,6 +5,7 @@ using System.Threading.Tasks;
using EasyAbp.EShop.Products.Permissions;
using EasyAbp.EShop.Products.Products.Dtos;
using EasyAbp.EShop.Products.ProductStores;
using EasyAbp.EShop.Products.ProductTypes;
using Microsoft.AspNetCore.Authorization;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
@ -26,6 +27,7 @@ namespace EasyAbp.EShop.Products.Products
private readonly IProductInventoryProvider _productInventoryProvider;
private readonly IAttributeOptionIdsSerializer _attributeOptionIdsSerializer;
private readonly IProductStoreRepository _productStoreRepository;
private readonly IProductTypeRepository _productTypeRepository;
private readonly IProductRepository _repository;
public ProductAppService(
@ -33,12 +35,14 @@ namespace EasyAbp.EShop.Products.Products
IProductInventoryProvider productInventoryProvider,
IAttributeOptionIdsSerializer attributeOptionIdsSerializer,
IProductStoreRepository productStoreRepository,
IProductTypeRepository productTypeRepository,
IProductRepository repository) : base(repository)
{
_productManager = productManager;
_productInventoryProvider = productInventoryProvider;
_attributeOptionIdsSerializer = attributeOptionIdsSerializer;
_productStoreRepository = productStoreRepository;
_productTypeRepository = productTypeRepository;
_repository = repository;
}
@ -201,10 +205,22 @@ namespace EasyAbp.EShop.Products.Products
await LoadDtoInventoryDataAsync(product, dto, storeId);
await LoadDtoPriceAsync(product, dto, storeId);
await LoadDtosProductTypeNameAsync(new[] {dto});
return dto;
}
protected virtual async Task LoadDtosProductTypeNameAsync(IEnumerable<ProductDto> dtos)
{
var dict = (await _productTypeRepository.GetListAsync()).ToDictionary(x => x.Id, x => x.Name);
foreach (var dto in dtos)
{
dto.ProductTypeName = dict[dto.ProductTypeId];
}
}
public virtual async Task<ProductDto> GetByCodeAsync(string code, Guid storeId)
{
await CheckGetPolicyAsync();
@ -262,6 +278,8 @@ namespace EasyAbp.EShop.Products.Products
items.Add(productDto);
}
await LoadDtosProductTypeNameAsync(items);
return new PagedResultDto<ProductDto>(totalCount, items);
}

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/ProductsApplicationAutoMapperProfile.cs

@ -29,6 +29,7 @@ namespace EasyAbp.EShop.Products
* Alternatively, you can split your mapping configurations
* into multiple profile classes for a better organization. */
CreateMap<Product, ProductDto>()
.Ignore(dto => dto.ProductTypeName)
.Ignore(dto => dto.Sold)
.Ignore(dto => dto.MinimumPrice)
.Ignore(dto => dto.MaximumPrice);
@ -63,7 +64,6 @@ namespace EasyAbp.EShop.Products
CreateMap<Category, CategoryDto>();
CreateMap<CreateUpdateCategoryDto, Category>(MemberList.Source);
CreateMap<ProductType, ProductTypeDto>();
CreateMap<CreateUpdateProductTypeDto, ProductType>(MemberList.Source);
CreateMap<ProductCategory, ProductCategoryDto>();
CreateMap<ProductHistory, ProductHistoryDto>();
CreateMap<ProductDetailHistory, ProductDetailHistoryDto>();

7
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/ProductsConsts.cs

@ -0,0 +1,7 @@
namespace EasyAbp.EShop.Products
{
public static class ProductsConsts
{
public const string DefaultProductType = "Default";
}
}

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/ProductTypes/ProductTypeDataSeeder.cs

@ -23,7 +23,7 @@ namespace EasyAbp.EShop.Products.ProductTypes
{
if (await _productTypeRepository.GetCountAsync() == 0)
{
await _productTypeRepository.InsertAsync(new ProductType(_guidGenerator.Create(), "Default", "Default",
await _productTypeRepository.InsertAsync(new ProductType(_guidGenerator.Create(), ProductsConsts.DefaultProductType, "Default",
null, MultiTenancySides.Both), true);
}
}

18
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/ProductTypes/ProductType/CreateModal.cshtml

@ -1,18 +0,0 @@
@page
@using EasyAbp.EShop.Products.Localization
@using Microsoft.AspNetCore.Mvc.Localization
@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal
@inject IHtmlLocalizer<ProductsResource> L
@model EasyAbp.EShop.Products.Web.Pages.EShop.Products.ProductTypes.ProductType.CreateModalModel
@{
Layout = null;
}
<abp-dynamic-form abp-model="ProductType" data-ajaxForm="true" asp-page="CreateModal">
<abp-modal>
<abp-modal-header title="@L["CreateProductType"].Value"></abp-modal-header>
<abp-modal-body>
<abp-form-content />
</abp-modal-body>
<abp-modal-footer buttons="@(AbpModalButtons.Cancel|AbpModalButtons.Save)"></abp-modal-footer>
</abp-modal>
</abp-dynamic-form>

26
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/ProductTypes/ProductType/CreateModal.cshtml.cs

@ -1,26 +0,0 @@
using System.Threading.Tasks;
using EasyAbp.EShop.Products.ProductTypes;
using EasyAbp.EShop.Products.ProductTypes.Dtos;
using Microsoft.AspNetCore.Mvc;
namespace EasyAbp.EShop.Products.Web.Pages.EShop.Products.ProductTypes.ProductType
{
public class CreateModalModel : ProductsPageModel
{
[BindProperty]
public CreateUpdateProductTypeDto ProductType { get; set; }
private readonly IProductTypeAppService _service;
public CreateModalModel(IProductTypeAppService service)
{
_service = service;
}
public async Task<IActionResult> OnPostAsync()
{
await _service.CreateAsync(ProductType);
return NoContent();
}
}
}

19
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/ProductTypes/ProductType/EditModal.cshtml

@ -1,19 +0,0 @@
@page
@using EasyAbp.EShop.Products.Localization
@using Microsoft.AspNetCore.Mvc.Localization
@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal
@inject IHtmlLocalizer<ProductsResource> L
@model EasyAbp.EShop.Products.Web.Pages.EShop.Products.ProductTypes.ProductType.EditModalModel
@{
Layout = null;
}
<abp-dynamic-form abp-model="ProductType" data-ajaxForm="true" asp-page="EditModal">
<abp-modal>
<abp-modal-header title="@L["EditProductType"].Value"></abp-modal-header>
<abp-modal-body>
<abp-input asp-for="Id" />
<abp-form-content />
</abp-modal-body>
<abp-modal-footer buttons="@(AbpModalButtons.Cancel|AbpModalButtons.Save)"></abp-modal-footer>
</abp-modal>
</abp-dynamic-form>

37
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/ProductTypes/ProductType/EditModal.cshtml.cs

@ -1,37 +0,0 @@
using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using EasyAbp.EShop.Products.ProductTypes;
using EasyAbp.EShop.Products.ProductTypes.Dtos;
namespace EasyAbp.EShop.Products.Web.Pages.EShop.Products.ProductTypes.ProductType
{
public class EditModalModel : ProductsPageModel
{
[HiddenInput]
[BindProperty(SupportsGet = true)]
public Guid Id { get; set; }
[BindProperty]
public CreateUpdateProductTypeDto ProductType { get; set; }
private readonly IProductTypeAppService _service;
public EditModalModel(IProductTypeAppService service)
{
_service = service;
}
public async Task OnGetAsync()
{
var dto = await _service.GetAsync(Id);
ProductType = ObjectMapper.Map<ProductTypeDto, CreateUpdateProductTypeDto>(dto);
}
public async Task<IActionResult> OnPostAsync()
{
await _service.UpdateAsync(Id, ProductType);
return NoContent();
}
}
}

7
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/ProductTypes/ProductType/Index.cshtml

@ -28,19 +28,12 @@
<abp-column size-md="_6">
<abp-card-title>@L["ProductType"]</abp-card-title>
</abp-column>
<abp-column size-md="_6" class="text-right">
<abp-button id="NewProductTypeButton"
text="@L["CreateProductType"].Value"
icon="plus"
button-type="Primary" />
</abp-column>
</abp-row>
</abp-card-header>
<abp-card-body>
<abp-table striped-rows="true" id="ProductTypeTable" class="nowrap">
<thead>
<tr>
<th>@L["Actions"]</th>
<th>@L["ProductTypeName"]</th>
<th>@L["ProductTypeDisplayName"]</th>
<th>@L["ProductTypeDescription"]</th>

41
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/ProductTypes/ProductType/index.js

@ -3,8 +3,6 @@ $(function () {
var l = abp.localization.getResource('EasyAbpEShopProducts');
var service = easyAbp.eShop.products.productTypes.productType;
var createModal = new abp.ModalManager(abp.appPath + 'EShop/Products/ProductTypes/ProductType/CreateModal');
var editModal = new abp.ModalManager(abp.appPath + 'EShop/Products/ProductTypes/ProductType/EditModal');
var dataTable = $('#ProductTypeTable').DataTable(abp.libs.datatables.normalizeConfiguration({
processing: true,
@ -16,49 +14,10 @@ $(function () {
order: [[1, "asc"]],
ajax: abp.libs.datatables.createAjax(service.getList),
columnDefs: [
{
rowAction: {
items:
[
{
text: l('Edit'),
action: function (data) {
editModal.open({ id: data.record.id });
}
},
{
text: l('Delete'),
confirmMessage: function (data) {
return l('ProductTypeDeletionConfirmationMessage', data.record.id);
},
action: function (data) {
service.delete(data.record.id)
.then(function () {
abp.notify.info(l('SuccessfullyDeleted'));
dataTable.ajax.reload();
});
}
}
]
}
},
{ data: "name" },
{ data: "displayName" },
{ data: "description" },
{ data: "multiTenancySide" },
]
}));
createModal.onResult(function () {
dataTable.ajax.reload();
});
editModal.onResult(function () {
dataTable.ajax.reload();
});
$('#NewProductTypeButton').click(function (e) {
e.preventDefault();
createModal.open();
});
});

3
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/ProductsWebAutoMapperProfile.cs

@ -3,12 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using EasyAbp.EShop.Products.Products.Dtos;
using EasyAbp.EShop.Products.Categories.Dtos;
using EasyAbp.EShop.Products.ProductTypes.Dtos;
using AutoMapper;
using EasyAbp.EShop.Products.ProductDetails.Dtos;
using EasyAbp.EShop.Products.Web.Pages.EShop.Products.Products.Product.ViewModels;
using EasyAbp.EShop.Products.Web.Pages.EShop.Products.Products.ProductSku.ViewModels;
using EasyAbp.EShop.Products.ProductInventories.Dtos;
using Volo.Abp.AutoMapper;
namespace EasyAbp.EShop.Products.Web
@ -65,7 +63,6 @@ namespace EasyAbp.EShop.Products.Web
CreateMap<ProductAttributeOptionDto, CreateEditProductAttributeOptionViewModel>();
CreateMap<CreateEditProductAttributeOptionViewModel, CreateUpdateProductAttributeOptionDto>();
CreateMap<CategoryDto, CreateUpdateCategoryDto>();
CreateMap<ProductTypeDto, CreateUpdateProductTypeDto>();
}
}
}

3840
samples/EShopSample/aspnet-core/src/EShopSample.EntityFrameworkCore.DbMigrations/Migrations/20200708064137_AddedProductTypeNameToOrderLine.Designer.cs

File diff suppressed because it is too large

22
samples/EShopSample/aspnet-core/src/EShopSample.EntityFrameworkCore.DbMigrations/Migrations/20200708064137_AddedProductTypeNameToOrderLine.cs

@ -0,0 +1,22 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace EShopSample.Migrations
{
public partial class AddedProductTypeNameToOrderLine : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "ProductTypeName",
table: "EShopOrdersOrderLines",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "ProductTypeName",
table: "EShopOrdersOrderLines");
}
}
}

3
samples/EShopSample/aspnet-core/src/EShopSample.EntityFrameworkCore.DbMigrations/Migrations/EShopSampleMigrationsDbContextModelSnapshot.cs

@ -191,6 +191,9 @@ namespace EShopSample.Migrations
b.Property<Guid>("ProductSkuId")
.HasColumnType("uniqueidentifier");
b.Property<string>("ProductTypeName")
.HasColumnType("nvarchar(max)");
b.Property<int>("Quantity")
.HasColumnType("int");

Loading…
Cancel
Save