Commit 158538ce by guanzhenshan

页面增加导出权限控制

parent 2775f177
......@@ -2,6 +2,8 @@
using Microsoft.Extensions.Hosting;
using System;
using System.Threading.Tasks;
using System.Collections;
namespace Bailun.DC.HappenAmount
{
......@@ -20,13 +22,13 @@ namespace Bailun.DC.HappenAmount
//static void Main(string[] args)
//{
// var start = DateTime.Parse("2019-12-01");
// while (start.AddDays(3) < DateTime.Now)
// {
// new Services().Init(start, start.AddDays(1));
// //new Bailun.DC.Services.FinanceReportServices().AddLogisticsWaitPay(start, 0);
// start = start.AddDays(1);
// }
// //var start = DateTime.Parse("2019-12-01");
// //while (start.AddDays(3) < DateTime.Now)
// //{
// // new Services().Init(start, start.AddDays(1));
// // //new Bailun.DC.Services.FinanceReportServices().AddLogisticsWaitPay(start, 0);
// // start = start.AddDays(1);
// //}
// //new Bailun.DC.Services.FinanceReportServices().UpdateLogisticsWaitPay(start,0,"admin",null);
......
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.Models
{
/// <summary>
/// 数据中心用户权限管理
/// </summary>
public class dc_base_user_authoritys
{
/// <summary>
///
/// </summary>
public int id { get; set; }
/// <summary>
/// 权限编码(唯一标识)
/// </summary>
public string code { get; set; }
/// <summary>
/// 备注
/// </summary>
public string notes { get; set; }
/// <summary>
/// 用户id
/// </summary>
public int userid { get; set; }
/// <summary>
/// 是否可以导出,1:是,0:否
/// </summary>
public int has_export { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime createtime { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
using MySql.Data.MySqlClient;
using Dapper;
using Bailun.DC.Models;
using Bailun.DC.Common;
namespace Bailun.DC.Services
{
/// <summary>
/// 用户权限
/// </summary>
public class UserAuthorityServices
{
/// <summary>
/// 判断用户是否有导出权限
/// </summary>
/// <param name="code"></param>
/// <param name="userid"></param>
/// <returns></returns>
public static bool checkUserExportAuthority(string code,int userid)
{
var sql = $"select * from dc_base_user_authoritys where has_export = 1 and code='{code}' and userid="+userid;
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
var obj = cn.QueryFirstOrDefault<dc_base_user_authoritys>(sql);
return obj != null;
}
}
public string Add(List<dc_base_user_authoritys> list)
{
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
foreach (var item in list)
{
cn.Insert<dc_base_user_authoritys>(item);
}
}
return "";
}
}
}
......@@ -210,7 +210,8 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
{
success = list.Count > 0,
msg = list.Count == 0 ? "暂无数据" : "",
data = list
data = list,
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportIndex", HttpContextHelper.Current.User.GetUid()),
});
}
......@@ -840,7 +841,8 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
msg = list.Count>0?"":"成本接口返回了空记录。",
col = listCol,
list = listValue,
amount = Math.Round(list.Sum(a=>a.amount_rmb)+ listInterest.Sum(a=>a.RepayInterestRMB), 2)
amount = Math.Round(list.Sum(a=>a.amount_rmb)+ listInterest.Sum(a=>a.RepayInterestRMB), 2),
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportListInterestExpense", HttpContextHelper.Current.User.GetUid()),
});
}
......@@ -1034,7 +1036,9 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
}).ToList();
return JsonConvert.SerializeObject(new { total = list.Count, rows = list });
return JsonConvert.SerializeObject(new { total = list.Count, rows = list ,
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportAdministrativeCost", HttpContextHelper.Current.User.GetUid()),
});
}
public ActionResult ListInterestExpense(DateTime start, DateTime end, int? paycompanyid, string headname, string categoryname, int type, int issub)
......@@ -1113,7 +1117,9 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
RepayInterestRMB = a.RepayInterestRMB.ToString("N2"),
});
return JsonConvert.SerializeObject(new { total = list.Count(), rows = list });
return JsonConvert.SerializeObject(new { total = list.Count(), rows = list,
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportAdministrativeCost", HttpContextHelper.Current.User.GetUid()),
});
}
public ActionResult ExportListInterestExpense(DateTime start, DateTime end, int? paycompanyid, string headname, string categoryname, int type, int issub)
......@@ -6495,7 +6501,8 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
count_diff = objCount.count_diff.ToString("N2"),
amount_diff = (objCount.amount_diff??0).ToString("N2"),
count_usable_stock = objCount.count_usable_stock.ToString("N2")
}
},
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportUnReasonable", HttpContextHelper.Current.User.GetUid()),
});
}
......
......@@ -87,6 +87,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
total = total,
rows = list,
companyid = companyid,
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportPlatformCost", HttpContextHelper.Current.User.GetUid()),
count_row = new {
bailun_order_id = "总计",
amount_sales = countM.amount_sales.ToString("N2"),
......@@ -1252,7 +1253,8 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
gross_amount = countObj.gross_amount.ToString("N2"),
gross_amount_rmb = countObj.gross_amount_rmb.ToString("N2")
},
companyid=companyid
companyid=companyid,
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportEbayAdFee", HttpContextHelper.Current.User.GetUid()),
});
}
......@@ -1437,7 +1439,8 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
profit_rate = (objCount.profit_rate * 100).ToString("N2"),
profit_total = objCount.profit_total.ToString("N2")
},
companyid = companyid
companyid = companyid,
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportEbayInnerCodeProfit", HttpContextHelper.Current.User.GetUid()),
});
}
......@@ -1925,7 +1928,9 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
cost_logistics = p.cost_logistics.ToString("N2"),
});
return JsonConvert.SerializeObject(new { total = total, rows = list, count_row = countM,companyid });
return JsonConvert.SerializeObject(new { total = total, rows = list, count_row = countM, companyid,
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportListOrderDetail", HttpContextHelper.Current.User.GetUid())
});
}
......@@ -2299,7 +2304,9 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
bailun_account = "合计",
amount_refund_rmb = countOjb.amount_refund_rmb.ToString("N2"),
amount_refund_usd = countOjb.amount_refund_usd.ToString("N2"),
},companyid});
}, companyid,
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportListReturn", HttpContextHelper.Current.User.GetUid()),
});
}
/// <summary>
......@@ -2400,7 +2407,8 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
cost = countObj.cost.ToString("N2"),
cost_rmb = countObj.cost_rmb.ToString("N2")
},
companyid
companyid,
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportAmazonAD", HttpContextHelper.Current.User.GetUid()),
});
}
......
......@@ -7,6 +7,8 @@ using Bailun.DC.Models;
using Bailun.DC.Services;
using Newtonsoft.Json;
using Microsoft.AspNetCore.Hosting;
using Bailun.ServiceFabric.Core.Extension;
using Bailun.ServiceFabric.Authorize;
namespace Bailun.DC.Web.Areas.Reports.Controllers
{
......@@ -94,6 +96,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
/// <param name="min">差异开始值</param>
/// <param name="max">差异结束值</param>
/// <returns></returns>
[BailunAuthentication(LoginMode.Enforce)]
public string ListSkuDiffWeighJson(BtTableParameter parameter, string sku, DateTime? shipstart, DateTime? shipend, int? min, int? max)
{
var total = 0;
......@@ -106,7 +109,9 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
a.weight
});
return JsonConvert.SerializeObject(new { total = total, rows = obj });
return JsonConvert.SerializeObject(new { total = total, rows = obj,
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportSkuDiffWeigh", ServiceFabric.Core.Extension.HttpContext.HttpContextHelper.Current.User.GetUid()),
});
}
/// <summary>
......
......@@ -45,8 +45,11 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
/// <param name="warehousetype">仓库类型</param>
/// <param name="warehouse">仓库编码</param>
/// <returns></returns>
[BailunAuthentication(LoginMode.Enforce)]
public string LogicWarehouseJson(BtTableParameter parameter,string warehousetype,string warehousecode)
{
var user = HttpContextHelper.Current?.User;
var service = new Services.WareHouseServices();
var total = 0;
var obj = service.ListLogicWarehouseStock(parameter, warehousetype, warehousecode, ref total);
......@@ -79,25 +82,29 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
quantity_tuneout_30days = (p.quantity_tuneout_30days??0).ToString("N0"),
});
return JsonConvert.SerializeObject(new { total = total, rows = list, count_row = new {
return JsonConvert.SerializeObject(new
{ total = total, rows = list, count_row = new {
countM.warehouse_name,
amount_onedaysale = (countM.amount_onedaysale??0).ToString("N2"),
amount_onedaysale = (countM.amount_onedaysale ?? 0).ToString("N2"),
amount_stock = countM.amount_stock.ToString("N2"),
amount_transit = (countM.amount_transit??0).ToString("N2"),
noshippingcount = (countM.noshippingcount??0).ToString("N0"),
nostockcount = (countM.nostockcount??0).ToString("N0"),
oneday_total_sales = (countM.oneday_total_sales??0).ToString("N0"),
purchase_amount = (countM.purchase_amount??0).ToString("N2"),
quantity_purchase = (countM.quantity_purchase??0).ToString("N0"),
quantity_transfer = (countM.quantity_transfer??0).ToString("N0"),
sevenday_total_sales = (countM.sevenday_total_sales??0).ToString("N0"),
thirtyday_total_sales = (countM.thirtyday_total_sales??0).ToString("N0"),
amount_transit = (countM.amount_transit ?? 0).ToString("N2"),
noshippingcount = (countM.noshippingcount ?? 0).ToString("N0"),
nostockcount = (countM.nostockcount ?? 0).ToString("N0"),
oneday_total_sales = (countM.oneday_total_sales ?? 0).ToString("N0"),
purchase_amount = (countM.purchase_amount ?? 0).ToString("N2"),
quantity_purchase = (countM.quantity_purchase ?? 0).ToString("N0"),
quantity_transfer = (countM.quantity_transfer ?? 0).ToString("N0"),
sevenday_total_sales = (countM.sevenday_total_sales ?? 0).ToString("N0"),
thirtyday_total_sales = (countM.thirtyday_total_sales ?? 0).ToString("N0"),
usable_stock = countM.usable_stock.ToString("N0"),
fourteenday_total_sales = (countM.fourteenday_total_sales??0).ToString("N0"),
fourteenday_total_sales = (countM.fourteenday_total_sales ?? 0).ToString("N0"),
quantity_tuneout_onway = (countM.quantity_tuneout_onway ?? 0).ToString("N0"),
quantity_tuneout_30days = (countM.quantity_tuneout_30days ?? 0).ToString("N0"),
} });
},
isexport = (UserAuthorityServices.checkUserExportAuthority("ExportLogicWarehouse", user.GetUid())?1:0)
});
}
/// <summary>
......
......@@ -36,7 +36,7 @@
<div class="form-group">
<label>&nbsp;</label>
<button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button>
<button type="button" class="btn btn-success" onclick="exportxls();">导出</button>
<button id="btnexport" style="display:none;" type="button" class="btn btn-success" onclick="exportxls();">导出</button>
</div>
</div>
</form>
......@@ -155,6 +155,10 @@
str += '<tr><td>合计:</td><td style="text-align:right;" colspan="' + (arrTotal.length + 1) + '">' + numFormat(result.amount) + '</td>'
$('#tb_body').append(str);
if (result.isexport == 1) {
$('#btnexport').show();
}
}
else {
alert(result.msg);
......
......@@ -31,7 +31,7 @@
<option value="2" selected>香港百伦科技有限公司</option>*@
</select>
<button type="button" class="btn btn-sm btn-primary" onclick="GetData();"><i class="fa fa-search"></i>&nbsp;查询</button>
<button type="button" class="btn btn-sm btn-success" onclick="ExportXsl();">导出</button>
<button id="btnexport" style="display:none;" type="button" class="btn btn-sm btn-success" onclick="ExportXsl();">导出</button>
</div>
</div>
</form>
......@@ -1420,6 +1420,10 @@
}
}
if (result.isexport == 1) {
$('#btnexport').show();
}
}
else {
alert(result.msg);
......
......@@ -17,7 +17,7 @@
<div class="form-group">
<label>&nbsp;</label>
<button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button>
<button type="button" class="btn btn-success" onclick="ExportCSV()">导出</button>
<button id="btnexport" style="display:none;" type="button" class="btn btn-success" onclick="ExportCSV()">导出</button>
</div>
</div>
</form>
......@@ -70,7 +70,13 @@
var url = '@Url.Content("~/Reports/Finance/ListAdministrativeCostJson")' + '?paycompanyid=' + companyid + '&headname=' + headname + '&categoryname=' + categoryname + '&start=' + start + '&end=' + end + '&type=' + type + '&issub=' + issub;
if (tb == undefined) {
tb = OnlyTable("roletable", columns, url, "",);
tb = OnlyTable("roletable", columns, url, "", {
loadsuccess: function (d) {
if (d.isexport == 1) {
$('#btnexport').show();
}
}
});
}
else {
tb.bootstrapTable('refresh', { url: url });
......
......@@ -18,7 +18,7 @@
<div class="form-group">
<label>&nbsp;</label>
<button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button>
<button type="button" class="btn btn-success" onclick="ExportCSV()">导出</button>
<button id="btnexport" style="display:none;" type="button" class="btn btn-success" onclick="ExportCSV()">导出</button>
</div>
</div>
</form>
......@@ -65,7 +65,13 @@
var url = '@Url.Content("~/Reports/Finance/ListInterestExpenseJson")' + '?paycompanyid=' + companyid + '&headname=' + headname + '&categoryname=' + categoryname + '&start=' + start + '&end=' + end + '&type=' + type + '&issub=' + issub;
if (tb == undefined) {
tb = OnlyTable("roletable", columns, url, "",);
tb = OnlyTable("roletable", columns, url, "", {
loadsuccess: function (d) {
if (d.isexport == 1) {
$('#btnexport').show();
}
}
});
}
else {
tb.bootstrapTable('refresh', { url: url });
......
......@@ -66,7 +66,7 @@
<div class="form-group">
<label>&nbsp;</label>
<button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button>
<button type="button" class="btn btn-success" onclick="exportlist();">导出</button>
<button id="btnexport" style="display:none;" type="button" class="btn btn-success" onclick="exportlist();">导出</button>
</div>
</div>
</form>
......@@ -137,7 +137,12 @@
if (tb == undefined) {
tb = OnlyTable("roletable", columns, url, "", {
showfooter: true, showCount: true
showfooter: true, showCount: true,
loadsuccess: function (d) {
if (d.isexport == 1) {
$('#btnexport').show();
}
}
});
}
else {
......
......@@ -25,7 +25,7 @@
<div class="form-group">
<label>&nbsp;</label>
<button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button>
<button type="button" class="btn btn-success" onclick="exportlist();">导出</button>
<button id="btnexport" style="display:none;" type="button" class="btn btn-success" onclick="exportlist();">导出</button>
</div>
</div>
</form>
......@@ -102,6 +102,9 @@
}
companyid = d.companyid;
if (d.isexport == 1) {
$('#btnexport').show();
}
}
}, {
fixedcol: true,
......
......@@ -40,7 +40,7 @@
<div class="form-group">
<label>&nbsp;</label>
<button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button>
<button type="button" class="btn btn-success" onclick="exportxls();">查询</button>
<button id="btnexport" style="display:none;" type="button" class="btn btn-success" onclick="exportxls();">查询</button>
</div>
</div>
</form>
......@@ -133,6 +133,9 @@
};
companyid = d.companyid;
if (d.btnexport == 1) {
$('#btnexport').show();
}
}
}, {
fixedcol: true,
......
......@@ -27,7 +27,7 @@
<div class="form-group">
<label>&nbsp;</label>
<button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button>
<a class="btn btn-success" onclick="exportxls();">导出</a>
<a id="btnexport" style="display:none;" class="btn btn-success" onclick="exportxls();">导出</a>
</div>
</div>
</form>
......@@ -115,6 +115,11 @@
}
}
}
if (d.isexport == 1) {
$('#btnexport').show();
}
}
});
}
......
......@@ -53,7 +53,7 @@
<div class="form-group">
<label>&nbsp;</label>
<button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button>
<button type="button" class="btn btn-success" onclick="exportxls();">导出</button>
<button id="btnexport" style="display:none;" type="button" class="btn btn-success" onclick="exportxls();">导出</button>
</div>
</div>
</form>
......@@ -171,6 +171,11 @@
tb = OnlyTable("roletable", (@ViewBag.showsingle== 1 ? columns_single : columns), url, "", {
showfooter: true, showCount: true, loadsuccess: function (d) {
companyid = d.companyid;
if (d.isexport == 1) {
$('#btnexport').show();
}
}
}, {
fixedcol: true,
......
......@@ -58,7 +58,7 @@
<div class="form-group">
<label>&nbsp;</label>
<button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button>
<button type="button" class="btn btn-success" onclick="exportxls();">导出</button>
<button id="btnexport" style="display:none;" type="button" class="btn btn-success" onclick="exportxls();">导出</button>
</div>
</div>
</form>
......@@ -173,6 +173,9 @@
tb = OnlyTable("roletable", columns, url, "", {
showfooter: true, showCount: true, loadsuccess: function (result) {
companyid = result.companyid;
if (result.isexport == 1) {
$('#btnexport').show();
}
}
});
}
......
......@@ -54,7 +54,7 @@
<div class="form-group">
<label>&nbsp;</label>
<button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button>
<button type="button" class="btn btn-success" onclick="exportlist()">导出</button>
<button id="btnexport" style="display:none" type="button" class="btn btn-success" onclick="exportlist()">导出</button>
</div>
</div>
</form>
......@@ -138,6 +138,9 @@
}
companyid = d.companyid;
if (d.isexport == 1) {
$('#btnexport').show();
}
}
}, {
fixedcol: true,
......
......@@ -50,7 +50,7 @@
<div class="form-group">
<label>&nbsp;</label>
<button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button>
<button type="button" class="btn btn-success" onclick="exportlist();">导出</button>
<button id="btnexport" style="display:none;" type="button" class="btn btn-success" onclick="exportlist();">导出</button>
</div>
</div>
</form>
......@@ -111,7 +111,12 @@
}
}
}
};
if (d.isexport == 1) {
$('#btnexport').show();
}
}
});
}
......
......@@ -29,7 +29,7 @@
<div class="form-group">
<label>&nbsp;</label>
<button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button>
<button type="button" class="btn btn-success" onclick="exportxls();">导出</button>
<button id="btnexport" style="display:none;" type="button" class="btn btn-success" onclick="exportxls();">导出</button>
</div>
</div>
</form>
......@@ -69,7 +69,13 @@
var url = '@Url.Content("~/Reports/Sku/ListSkuDiffWeighJson")' + '?' + $("#toolbar").serialize();
if (tb == undefined) {
tb = OnlyTable("roletable", columns, url, "");
tb = OnlyTable("roletable", columns, url, "", {
loadsuccess: function (d) {
if (d.isexport == 1) {
$('#btnexport').show();
}
}
});
}
else {
tb.bootstrapTable('refresh', { url: url });
......
......@@ -32,7 +32,7 @@
<div class="form-group">
<label>&nbsp;</label>
<button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button>
<button type="button" class="btn btn-success" onclick="exportxls()">导出</button>
<button id="btnexport" style="display:none" type="button" class="btn btn-success" onclick="exportxls()">导出</button>
</div>
</div>
</form>
......@@ -128,6 +128,10 @@
}
}
}
};
if (d.isexport == 1) {
$('#btnexport').show();
}
}
});
......
......@@ -14,6 +14,43 @@ namespace Bailun.DC.Web.Controllers
{
public IActionResult Index()
{
//var users = new List<int> { 681,690,691,693,720,731,2346};
//var codes = new List<Tuple<string, string>>() {
// new Tuple<string, string>("ExportLogicWarehouse","逻辑仓库"),
// new Tuple<string, string>("ExportInventoryAging","库龄"),
// new Tuple<string, string>("ExportListOrderDetail","订单明细导出"),
// new Tuple<string, string>("ExportPlatformCost","平台费导出"),
// new Tuple<string, string>("ExportListReturn","退款流水导出"),
// new Tuple<string, string>("ExportAmazonAD","亚马逊广告费"),
// new Tuple<string, string>("ExportEbayInnerCodeProfit","Ebay内部商品编码利润"),
// new Tuple<string, string>("ExportEbayAdFee","Ebay广告费"),
// new Tuple<string, string>("ExportIndex","资产负债表"),
// new Tuple<string, string>("ExportListInterestExpense","管理成本"),
// new Tuple<string, string>("ExportAdministrativeCost","管理成本明细"),
// new Tuple<string, string>("ExportUnReasonable","进销存差异明细"),
// new Tuple<string, string>("ExportSkuDiffWeigh","Sku发货差异")
//};
//var list = new List<Bailun.DC.Models.dc_base_user_authoritys>();
//foreach (var u in users)
//{
// foreach (var code in codes)
// {
// var m = new Bailun.DC.Models.dc_base_user_authoritys {
// code = code.Item1,
// notes = code.Item2,
// createtime = DateTime.Now,
// has_export = 1,
// userid = u
// };
// list.Add(m);
// }
//}
//new Services.UserAuthorityServices().Add(list);
return View();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment