diff --git a/UCsoft.Common/CacheHelper.cs b/UCsoft.Common/CacheHelper.cs new file mode 100644 index 0000000..311a830 --- /dev/null +++ b/UCsoft.Common/CacheHelper.cs @@ -0,0 +1,61 @@ +using System; +using System.Web; +using System.Web.Caching; + +namespace UCsoft.Common +{ + public class CacheHelper + { + /// + /// 创建缓存项的文件依赖 + /// + /// 缓存Key + /// object对象 + /// 文件绝对路径 + public static void Insert(string key, object obj, string fileName) + { + //创建缓存依赖项 + CacheDependency dep = new CacheDependency(fileName); + //创建缓存 + HttpRuntime.Cache.Insert(key, obj, dep); + } + + /// + /// 创建缓存项过期 + /// + /// 缓存Key + /// object对象 + /// 过期时间(分钟) + public static void Insert(string key, object obj, int expires) + { + HttpRuntime.Cache.Insert(key, obj, null, Cache.NoAbsoluteExpiration, new TimeSpan(0, expires, 0)); + } + + /// + /// 获取缓存对象 + /// + /// 缓存Key + /// object对象 + public static object Get(string key) + { + if (string.IsNullOrEmpty(key)) + { + return null; + } + return HttpRuntime.Cache.Get(key); + } + + /// + /// 获取缓存对象 + /// + /// T对象 + /// 缓存Key + /// + public static T Get(string key) + { + object obj = Get(key); + return obj == null ? default(T) : (T)obj; + } + + } +} diff --git a/UCsoft.Common/UCsoft.Common.csproj b/UCsoft.Common/UCsoft.Common.csproj index 2d9b7fb..03a4c47 100644 --- a/UCsoft.Common/UCsoft.Common.csproj +++ b/UCsoft.Common/UCsoft.Common.csproj @@ -34,7 +34,9 @@ ..\packages\log4net.2.0.3\lib\net40-full\log4net.dll + + @@ -43,13 +45,21 @@ + + + + + {45e160a7-334b-4473-ad23-4753a456b6e8} + UCsoft.Entity + + + + +<#}#> + \ No newline at end of file diff --git a/UCsoft.T4/Web/Configs/Daos.xml b/UCsoft.T4/Web/Configs/Daos.xml new file mode 100644 index 0000000..857f971 --- /dev/null +++ b/UCsoft.T4/Web/Configs/Daos.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/UCsoft.T4/Web/Configs/Objects.tt b/UCsoft.T4/Web/Configs/Objects.tt new file mode 100644 index 0000000..d142814 --- /dev/null +++ b/UCsoft.T4/Web/Configs/Objects.tt @@ -0,0 +1,6 @@ +<#@ template debug="false" hostspecific="false" language="C#" #> +<#@ assembly name="System.Core" #> +<#@ import namespace="System.Linq" #> +<#@ import namespace="System.Text" #> +<#@ import namespace="System.Collections.Generic" #> +<#@ output extension=".txt" #> \ No newline at end of file diff --git a/UCsoft.T4/Web/Configs/Services.tt b/UCsoft.T4/Web/Configs/Services.tt new file mode 100644 index 0000000..e57a973 --- /dev/null +++ b/UCsoft.T4/Web/Configs/Services.tt @@ -0,0 +1,67 @@ +<#@ template debug="True" hostspecific="True" language="C#" #> +<#@ Include File="../../MultipleOutputHelper.ttinclude" #> +<#@ Assembly Name="$(TargetDir)NLite.dll" #> +<#@ Assembly Name="$(TargetDir)ELinq.dll" #> +<#@ Assembly Name="System.Data" #> +<#@ Import Namespace="NLite.Data" #> +<#@ Import Namespace="NLite.Data.CodeGeneration" #> +<#@ output extension=".xml" #> +<# + var @contextNamespace = "UCsoft.Data"; + var @ModelNamespace = "UCsoft.Entity"; + var @Date=System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + + + var connectionStringName = "SqlServer"; + var dbType=GetAppSettings("databaseType"); + switch(dbType){ + case "SqlServer": + connectionStringName = "SqlServer"; + break; + case "MySql": + connectionStringName = "MySql"; + break; + case "Oracle": + connectionStringName = "Oracle"; + break; + case "Access": + connectionStringName = "Access"; + break; + case "SqlCe": + connectionStringName = "SqlCe"; + break; + case "SqLite": + connectionStringName = "SqLite"; + break; + default: + connectionStringName = "SqlServer"; + break; + } + + + + + var dbContextName =Path.GetFileNameWithoutExtension(Host.TemplateFile); + var connectionStringSetting = GetConnectionStringSettings(connectionStringName); + var connectionString = connectionStringSetting.ConnectionString; + var dbProviderName = connectionStringSetting.ProviderName; + var dbConfiguration = DbConfiguration.Configure(connectionString, dbProviderName); + var databaseSchema = dbConfiguration.Schema; + //var manager = Manager.Create(Host, GenerationEnvironment); + //manager.StartHeader(); +#> + + +<#foreach (var tb in databaseSchema.Tables.Union(databaseSchema.Views)){#> +<# +var serviceFilename= NamingConversion.Default.ClassName( tb.TableName)+ "ServiceImpl"; +var modelName=NamingConversion.Default.ClassName( tb.TableName); +var tempModelName=NamingConversion.Default.ClassName( tb.TableName); +tempModelName=tempModelName[0].ToString().ToLower() + tempModelName.Substring(1); +#> + + + " ref="<#=tempModelName#>Dao" /> + +<#}#> + \ No newline at end of file diff --git a/UCsoft.T4/Web/Configs/Services.xml b/UCsoft.T4/Web/Configs/Services.xml new file mode 100644 index 0000000..68a132e --- /dev/null +++ b/UCsoft.T4/Web/Configs/Services.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/UCsoft.T4/Web/Configs/Webs.tt b/UCsoft.T4/Web/Configs/Webs.tt new file mode 100644 index 0000000..a368254 --- /dev/null +++ b/UCsoft.T4/Web/Configs/Webs.tt @@ -0,0 +1,51 @@ + <#@ template debug="True" hostspecific="True" language="C#" #> +<#@ Include File="../../MultipleOutputHelper.ttinclude" #> +<#@ Assembly Name="$(TargetDir)NLite.dll" #> +<#@ Assembly Name="$(TargetDir)ELinq.dll" #> +<#@ Assembly Name="System.Data" #> +<#@ Import Namespace="NLite.Data" #> +<#@ Import Namespace="NLite.Data.CodeGeneration" #> +<#@ output extension=".xml" #> +<# + var @contextNamespace = "Ed.DBContext"; + var @ModelNamespace = "Ed.Entity"; + var @Date=System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + + var connectionStringName = "EdSqlServer"; + var dbType=GetAppSettings("databaseType"); + switch(dbType){ + case "SqlServer": + connectionStringName = "EdSqlServer"; + break; + default: + connectionStringName = "EdSqlServer"; + break; + } + //var dbContextName = Host.TemplateFile.Split('\\')[Host.TemplateFile.Split('\\').Length - 1].TrimEnd('.', 't'); + var dbContextName =Path.GetFileNameWithoutExtension(Host.TemplateFile); + var connectionStringSetting = GetConnectionStringSettings(connectionStringName); + var connectionString = connectionStringSetting.ConnectionString; + var dbProviderName = connectionStringSetting.ProviderName; + var dbConfiguration = DbConfiguration.Configure(connectionString, dbProviderName); + var databaseSchema = dbConfiguration.Schema; + //var manager = Manager.Create(Host, GenerationEnvironment); + //manager.StartHeader(); +#> + + +<#foreach (var tb in databaseSchema.Tables.Union(databaseSchema.Views)){#> +<# +var controllerFilename= NamingConversion.Default.ClassName( tb.TableName).TrimStart('T')+ "Controller"; +var modelName=NamingConversion.Default.ClassName( tb.TableName); +var tempModelName=NamingConversion.Default.ClassName( tb.TableName).TrimStart('T'); +tempModelName=tempModelName[0].ToString().ToLower() + tempModelName.Substring(1); +#> + + + " ref="<#=tempModelName#>Service" /> + + +<#}#> + + + \ No newline at end of file diff --git a/UCsoft.T4/Web/Controllers/EdApiController.tt b/UCsoft.T4/Web/Controllers/EdApiController.tt new file mode 100644 index 0000000..c377d39 --- /dev/null +++ b/UCsoft.T4/Web/Controllers/EdApiController.tt @@ -0,0 +1,453 @@ +<#@ template debug="True" hostspecific="True" language="C#" #> +<#@ include file="../../MultipleOutputHelper.ttinclude" #> +<#@ Assembly Name="$(TargetDir)NLite.dll" #> +<#@ Assembly Name="$(TargetDir)ELinq.dll" #> +<#@ assembly Name="System.Data" #> +<#@ import Namespace="NLite.Data" #> +<#@ import Namespace="NLite.Data.CodeGeneration" #> +<#@ output extension=".cs" #> +<# + var @contextNamespace = "Ed.DBContext"; + var @ModelNamespace = "Ed.Model"; + var @ServiceNamespace = "Ed.Service"; + var @controllerNamespace="Ed.Web"; + var @Date=System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + var connectionStringName = "EdSqlServer"; + var dbType=GetAppSettings("databaseType"); + switch(dbType){ + case "SqlServer": + connectionStringName = "EdSqlServer"; + break; + case "MySql": + connectionStringName = "EdMySql"; + break; + default: + connectionStringName = "EdSqlServer"; + break; + } + //var dbContextName = Host.TemplateFile.Split('\\')[Host.TemplateFile.Split('\\').Length - 1].TrimEnd('.', 't'); + var dbContextName ="EdDBContext"; + var connectionStringSetting = GetConnectionStringSettings(connectionStringName); + var connectionString = connectionStringSetting.ConnectionString; + var dbProviderName = connectionStringSetting.ProviderName; + var dbConfiguration = DbConfiguration.Configure(connectionString, dbProviderName); + var databaseSchema = dbConfiguration.Schema; + var manager = Manager.Create(Host, GenerationEnvironment); + //manager.StartHeader(); +#> + + +<#foreach (var tb in databaseSchema.Tables){#> +<# + //开始Controller=================================================================================== +var controllerApiFilename= NamingConversion.Default.ClassName( tb.TableName).TrimStart('T')+ "ApiController"; +var serviceFilename= "I"+NamingConversion.Default.ClassName( tb.TableName).TrimStart('T')+ "Service"; +var serviceImplFilename= NamingConversion.Default.ClassName( tb.TableName).TrimStart('T')+ "ServiceImpl"; +var serviceTypename= "I"+NamingConversion.Default.ClassName( tb.TableName).TrimStart('T')+ "Service"; +var servicePerportyname= NamingConversion.Default.ClassName( tb.TableName).TrimStart('T')+ "Service"; +var serviceModelName=NamingConversion.Default.ClassName( tb.TableName); +var tempModelName=NamingConversion.Default.ClassName( tb.TableName).TrimStart('T'); +tempModelName=tempModelName[0].ToString().ToLower() + tempModelName.Substring(1); +var serviceListName=NamingConversion.Default.QueryableName( tb.TableName); +var tempListName=NamingConversion.Default.QueryableName( tb.TableName).TrimStart('T'); +tempListName=tempListName[0].ToString().ToLower() + tempListName.Substring(1); +manager.StartNewFile(controllerApiFilename+ ".cs"); +#> +//ReSharper disable All 禁止ReSharper显示警告 +using System.Collections; +using System.Net.Http; +using System.Text; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.Http; +using Ed.Common; +using Ed.Entity; +using Ed.Service; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using Spring.Context.Support; + +namespace <#= @controllerNamespace #> +{ +public class <#=controllerApiFilename#>:ApiController + { + #region 依赖注入(<#=controllerApiFilename#>注入<#=servicePerportyname#>) <#=@Date#> By 唐有炜 + /// + /// 依赖注入(<#=controllerApiFilename#>注入<#=servicePerportyname#>) <#=@Date#> By 唐有炜 + /// + private readonly <#=serviceTypename#> <#=servicePerportyname#> = (<#=serviceTypename#> ) ContextRegistry.GetContext().GetObject("<#=tempModelName+"Service"#>"); + #endregion + + #region 逻辑实现 <#=@Date#> By 唐有炜 + + #region 列表 <#=@Date#> By 唐有炜 + + #region 获取所有<#=serviceModelName.TrimStart('T')#>列表(默认前10条) <#=@Date#>5 By 唐有炜 + //GET /api/<#=serviceModelName.TrimStart('T')+"Api"#>/Get<#=serviceListName.TrimStart('T')#>?pageIndex={pageIndex}&pageSize={pageSize}&sortField={sortField}&sortType={sortType}&searchPhrase={searchPhrase}&format={format} + /// + /// 获取所有<#=serviceModelName.TrimStart('T')#>列表(默认前10条) <#=@Date#>5 By 唐有炜 + /// + /// 页码 + /// 页数. + /// 排序字段 + /// 排序类型 + ///searchPhrase(格式:加密的条件) + /// 返回格式(json:返回json数据,xml:返回xml数据) + /// IEnumerable<<#=serviceModelName#>>. + public IEnumerable<<#=serviceModelName#>> Get<#=serviceListName.TrimStart('T')#>(int? pageIndex, int? pageSize, string sortField, string sortType,string searchPhrase, string format) + { + int total = 0; + //分页 + int current = pageIndex == null ? 1 : (int) pageIndex; + int rowCount = pageSize == null ? 10 : (int) pageSize; + //排序 + IDictionary dataOrders = new Dictionary(); + if (!String.IsNullOrEmpty(sortField) && !String.IsNullOrEmpty(sortType)) + { + dataOrders.Add(sortType.ToLower() == EdEnums.OrderEmum.Desc.ToString().ToLower() + ? new KeyValuePair(sortField, EdEnums.OrderEmum.Desc) + : new KeyValuePair(sortField, EdEnums.OrderEmum.Asc)); + } + else + { + dataOrders.Add(new KeyValuePair("Id", EdEnums.OrderEmum.Desc)); + } + //搜索 + string predicate = "true"; + //这里是搜索条件组装(解密) + if (!String.IsNullOrEmpty(searchPhrase) ) + { + predicate = Base64.Base64StringToString(searchPhrase); + } + var models = <#=servicePerportyname#>.Get<#=serviceModelName.TrimStart('T')#>List(current, rowCount, out total, predicate, dataOrders).AsEnumerable(); + return models; + } + + #endregion + + #region 获取Bootgrid <#=serviceModelName.TrimStart('T')#>列表 <#=@Date#> By 唐有炜 + + //POST /api/<#=serviceModelName.TrimStart('T')+"Api"#>/GetBootGrid<#=serviceListName.TrimStart('T')#>?current=1&rowCount=10&sort[field_name]=DESC&searchPhrase= + /// + /// 获取Bootgrid <#=serviceModelName.TrimStart('T')#>列表 <#=@Date#> By 唐有炜 + /// + /// current + /// rowCount + /// sort[fieldName] + /// searchPhrase(格式) + /// json + [HttpPost] + public BootGrid GetBootGrid<#=serviceListName.TrimStart('T')#>() + { + var context = (HttpContextBase) Request.Properties["MS_HttpContext"]; //获取传统context + HttpRequestBase request = context.Request; //定义传统request对象 + //基本参数 + int current = int.Parse(request.Params.Get("current") ?? "1"); + int rowCount = int.Parse(request.Params.Get("rowCount") ?? "1"); + string sort = request.Params.AllKeys.SingleOrDefault(a => a.Contains("sort")); + string sortField = sort.Split('[')[1].TrimEnd(']').ToLower(); + string sortType = request.Params.GetValues(sort).SingleOrDefault().ToLower(); + string searchPhrase = request.Params.Get("searchPhrase"); + //1 数值 2 搜索条件字符串 + string searchType = request.Params.Get("searchType")??"1"; + + //要查询的字段(控值所有) + string selector = ""; + + //搜索 + string predicate = "true"; + //string predicate = "Id.Contains(@0)"; + + //排序 + string ordering = String.Concat(new[] {sortField, " ", sortType}); + + object[] values = {}; + //object[] values = {searchPhrase}; + + //数据总数 + int total = 0; + + //获取数据 + List> <#=tempListName#> = + <#=servicePerportyname#>.Get<#=serviceModelName.TrimStart('T')#>List(current, rowCount, selector, predicate, ordering, + out total, values); + //空值处理 + if (null == <#=tempListName#>) + { + <#=tempListName#>=new List>(); + } + + + //组装输出 + var bootGrid = new BootGrid + { + current = current, + rowCount = rowCount, + rows = <#=tempListName#>, + total = total + }; + return bootGrid; + } + + #endregion + + + #region 获取ZTree树形节点 <#=@Date#> By 唐有炜 + + //POST /api/<#=serviceModelName.TrimStart('T')+"Api"#>/GetZTree<#=serviceListName.TrimStart('T')#>/?id=0 + /// + /// 获取<#=serviceModelName.TrimStart('T')#>ZTree树形节点 <#=@Date#> By 唐有炜 + /// + /// json + [HttpPost] + public Node GetZTree<#=serviceListName.TrimStart('T')#>(int id=0) + { + var context = (HttpContextBase)Request.Properties["MS_HttpContext"]; //获取传统context + HttpRequestBase request = context.Request; //定义传统request对象 + //基本参数 + + //var nodes = <#=servicePerportyname#>.AsyncGetNodes(id); + var nodes =new Node(){id=0,name = "null"}; + return nodes; + } + + #endregion + + + + #endregion + + + #region 查看 <#=@Date#> By 唐有炜 + // GET /api/<#=serviceModelName.TrimStart('T')+"Api"#>/Get/1 + /// + /// 获取一条<#=serviceModelName.TrimStart('T')#>数据 <#=@Date#> By 唐有炜 + /// + /// id + /// <#=serviceModelName#> + public <#=serviceModelName#> Get<#=serviceModelName.TrimStart('T')#>(int id) + { + var model = <#=servicePerportyname#>.Get<#=serviceModelName.TrimStart('T')#>(temp => temp.Id == id); + //var timeConverter =new IsoDateTimeConverter(); + //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式 + //timeConverter.DateTimeFormat = "yyyy-MM-dd"; + //return JsonConvert.SerializeObject(model, timeConverter); + return model; + } + + #endregion + + #region 添加、修改 <#=@Date#> By 唐有炜 + // POST /api/<#=serviceModelName.TrimStart('T')+"Api"#>/Add<#=serviceModelName.TrimStart('T')#> + /// + ///添加信息 <#=@Date#> By 唐有炜 + /// + /// <#=tempModelName#> + /// ResponseMessage + [HttpPost] + public ResponseMessage Add<#=serviceModelName.TrimStart('T')#>([FromBody] <#=serviceModelName#> <#=tempModelName#>) + { + ResponseMessage rmsg = new ResponseMessage(); + if (<#=servicePerportyname#>.Add<#=serviceModelName.TrimStart('T')#>(<#=tempModelName#>)) + { + rmsg.Status = true; + } + else + { + rmsg.Status = false; + } + + + return rmsg; + } + + + // POST /api/<#=serviceModelName.TrimStart('T')+"Api"#>/Edit<#=serviceModelName.TrimStart('T')#> + /// + ///修改信息 <#=@Date#> By 唐有炜 + /// + /// <#=tempModelName#> + /// ResponseMessage + [HttpPost] + public ResponseMessage Edit<#=serviceModelName.TrimStart('T')#>([FromBody] <#=serviceModelName#> <#=tempModelName#>) + { + + ResponseMessage rmsg = new ResponseMessage(); + if ( <#=servicePerportyname#>.Edit<#=serviceModelName.TrimStart('T')#>(<#=tempModelName#>)) + { + rmsg.Status = true; + } + else + { + rmsg.Status = false; + } + + + return rmsg; + + } + + #endregion + + + #region 删除 <#=@Date#> By 唐有炜 + + // GET /api/<#=serviceModelName.TrimStart('T')+"Api"#>/Delete<#=serviceModelName.TrimStart('T')#>/5 + /// + ///删除 <#=@Date#> By 唐有炜 + /// + /// 要删除的ids集合 + /// ResponseMessage. + [HttpGet] + public ResponseMessage Delete<#=serviceModelName.TrimStart('T')#>(string ids) + { + ResponseMessage rmsg = new ResponseMessage(); + if (<#=servicePerportyname#>.Delete<#=serviceModelName.TrimStart('T')#>(ids)) + { + rmsg.Status = true; + } + else + { + rmsg.Status = false; + } + + + return rmsg; + } + + #endregion + + #endregion + + + #region 修改状态 <#=@Date#> By 唐有炜 + + // GET /api/<#=serviceModelName.TrimStart('T')+"Api"#>/Update<#=serviceModelName.TrimStart('T')#>Status/5 + /// + /// 修改状态 <#=@Date#> By 唐有炜 + /// + /// id + /// ResponseMessage + [HttpPost] + public ResponseMessage Update<#=serviceModelName.TrimStart('T')#>Status(int ids) + { + ResponseMessage rmsg = new ResponseMessage(); + if (<#=servicePerportyname#>.UpdateEntityStatus(null,null)) + { + rmsg.Status = true; + } + else + { + rmsg.Status = false; + } + + return rmsg; + } + + #endregion + + + + + #region 验证 2014-10-16 17:25:33 By 唐有炜 + + // /api/<#=serviceModelName.TrimStart('T')#>Api/Validate?fields=1&eqs=&values=&operations=2 + /// + /// 验证字段是否存在 2014-10-15 14:36:33 By 唐有炜(注意:字段必须与条件一一对应) + /// + /// 字段集合(id,name) + /// The eqs. + /// The values. + /// 条件集合(or,and) + /// 存在时的返回结果(默认true) + /// 验证状态 + [HttpGet] + public HttpResponseMessage Validate(string fields, string eqs, string values, string operations,bool existReturn=true) + { + //构造参数 + var Status = false; + object[] parms = null; + string predicate = Utils.BuildPredicate(fields, eqs, values, operations, out parms); + + //记录日志 + LogHelper.Debug("验证存在predicate:存在(true),不存在(false)" + predicate+ "【参数】" + String.Concat(parms)); + + //发送请求 + if (<#=servicePerportyname#>.Validate(predicate,parms)) + { + Status = true; + } + else + { + Status = false; + } + + //状态判断 + if (!existReturn) + { + Status = !Status; + } + + //输出结果 + var rmsg = new HttpResponseMessage + { + Content = new StringContent(Status.ToString().ToLower(), System.Text.Encoding.UTF8, "text/plain") + }; + return rmsg; + } + + #endregion + + + + + } +} +<# + } +#> + +<# + manager.EndBlock(); + //结束ServiceImpl=================================================================================== +#> + +<# + +foreach (var tb in databaseSchema.Views){ + var serviceFilename= "I"+NamingConversion.Default.ClassName( tb.TableName)+ "Dao"; +var serviceModelName=NamingConversion.Default.ClassName( tb.TableName); +var serviceListName=NamingConversion.Default.QueryableName( tb.TableName); + manager.StartNewFile(NamingConversion.Default.ClassName(tb.TableName) + ".cs"); + //开始视图 + #> + + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using NLite.Data; +using Ed.DBContext; +using Ed.Entity; + +namespace <#= @ServiceNamespace #> +{ +public interface <#=serviceFilename#>:IViewDao<<#=serviceModelName#>> + { + + } +} +<# +} + manager.EndBlock(); +#> + + + +<# + //执行=================================================================================== + manager.Process(true); +#> \ No newline at end of file diff --git a/UCsoft.T4/Web/Controllers/EdControllers.tt b/UCsoft.T4/Web/Controllers/EdControllers.tt new file mode 100644 index 0000000..97ee2c6 --- /dev/null +++ b/UCsoft.T4/Web/Controllers/EdControllers.tt @@ -0,0 +1,192 @@ +<#@ template debug="True" hostspecific="True" language="C#" #> +<#@ include file="../../MultipleOutputHelper.ttinclude" #> +<#@ Assembly Name="$(TargetDir)NLite.dll" #> +<#@ Assembly Name="$(TargetDir)ELinq.dll" #> +<#@ assembly Name="System.Data" #> +<#@ import Namespace="NLite.Data" #> +<#@ import Namespace="NLite.Data.CodeGeneration" #> +<#@ output extension=".cs" #> +<# + var @contextNamespace = "Ed.DBContext"; + var @ModelNamespace = "Ed.Model"; + var @ServiceNamespace = "Ed.Service"; + var @controllerNamespace="Ed.Web"; + var @Date=System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + var connectionStringName = "EdSqlServer"; + var dbType=GetAppSettings("databaseType"); + switch(dbType){ + case "SqlServer": + connectionStringName = "EdSqlServer"; + break; + case "MySql": + connectionStringName = "EdMySql"; + break; + default: + connectionStringName = "EdSqlServer"; + break; + } + //var dbContextName = Host.TemplateFile.Split('\\')[Host.TemplateFile.Split('\\').Length - 1].TrimEnd('.', 't'); + var dbContextName ="EdDBContext"; + var connectionStringSetting = GetConnectionStringSettings(connectionStringName); + var connectionString = connectionStringSetting.ConnectionString; + var dbProviderName = connectionStringSetting.ProviderName; + var dbConfiguration = DbConfiguration.Configure(connectionString, dbProviderName); + var databaseSchema = dbConfiguration.Schema; + var manager = Manager.Create(Host, GenerationEnvironment); + //manager.StartHeader(); +#> + + +<#foreach (var tb in databaseSchema.Tables){#> +<# + //开始Controller=================================================================================== +var controllerFilename= NamingConversion.Default.ClassName( tb.TableName).TrimStart('T')+ "Controller"; +var serviceFilename= "I"+NamingConversion.Default.ClassName( tb.TableName).TrimStart('T')+ "Service"; +var serviceImplFilename= NamingConversion.Default.ClassName( tb.TableName).TrimStart('T')+ "ServiceImpl"; +var serviceTypename= "I"+NamingConversion.Default.ClassName( tb.TableName).TrimStart('T')+ "Service"; +var servicePerportyname= NamingConversion.Default.ClassName( tb.TableName).TrimStart('T')+ "Service"; +var serviceModelName=NamingConversion.Default.ClassName( tb.TableName); +var serviceListName=NamingConversion.Default.QueryableName( tb.TableName); +var EdIndexViewFilename= "List"; +var EdEditViewFilename= "Edit"; +var EdShowViewFilename= "Show"; +manager.StartNewFile(controllerFilename+ ".cs"); +#> + +// ReSharper disable All 禁止ReSharper显示警告 +using Ed.Common; +using Ed.Web.Filters; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.Mvc; +using Ed.Service; +using Ed.Entity; + +namespace <#= @controllerNamespace #> +{ +public class <#=controllerFilename#>: Controller + { + + #region 依赖注入 <#=@Date#> By 唐有炜 + public <#=serviceTypename#> <#=servicePerportyname#>{set;get;} + #endregion + + #region 页面展示 2014-10-11 10:21:24 By 唐有炜 + + #region 首页 + + // GET: URL + [UserAuthorize] + [HttpGet] + public ActionResult List() + { + return View("<#=EdIndexViewFilename#>"); + } + + #endregion + + #region 添加、修改页面 + + ////GET: URL + ////actionType (Add,Edit) + [UserAuthorize] + [HttpGet] + public ActionResult Edit(string actionType, int? id ) + { + //actionType + ViewBag.ActionType = actionType; + + //修改 + if (actionType == EdEnums.ActionEnum.Edit.ToString()) + { + if (null == id) + { + ViewData["Msg"] = "参数非法(id不能为空)"; + return View("_Error"); + } + var model = <#=servicePerportyname#>.Get<#=serviceModelName.TrimStart('T')#>(temp=> temp.Id == id); + return View("<#=EdEditViewFilename#>", model); + } + //添加 + else if (actionType == EdEnums.ActionEnum.Add.ToString()) + { + var <#=serviceModelName.TrimStart('T').ToLower()#>=new <#=serviceModelName#>(); + return View("<#=EdEditViewFilename#>",<#=serviceModelName.TrimStart('T').ToLower()#> ); + } + else + { + ViewData["Msg"] = "参数非法(actipnType不能为空)"; + return View("_Error"); + } + } + + #endregion + + //#region 查看页面 + ////GET: URL + ////[UserAuthorize] + //[HttpGet] + //public ActionResult Show(int? id) + //{ + //if (null== id) + // { + // ViewData["Msg"] = "参数非法!"; + // return View("_Error"); + // } + //var model = SysDepartmentService.GetSysDepartment(d => d.Id == id); + //return View("<#=EdShowViewFilename#>", model); + //} + //#endregion + + #endregion + + } +} +<# + } +#> + +<# + manager.EndBlock(); + //结束ServiceImpl=================================================================================== +#> + +<# + +foreach (var tb in databaseSchema.Views){ + var serviceFilename= "I"+NamingConversion.Default.ClassName( tb.TableName)+ "Dao"; +var serviceModelName=NamingConversion.Default.ClassName( tb.TableName); +var serviceListName=NamingConversion.Default.QueryableName( tb.TableName); + manager.StartNewFile(NamingConversion.Default.ClassName(tb.TableName) + ".cs"); + //开始视图 + #> + + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using NLite.Data; +using Ed.DBContext; +using Ed.Entity; + +namespace <#= @ServiceNamespace #> +{ +public interface <#=serviceFilename#>:IViewDao<<#=serviceModelName#>> + { + + } +} +<# +} + manager.EndBlock(); +#> + + + +<# + //执行=================================================================================== + manager.Process(true); +#> \ No newline at end of file diff --git a/UCsoft.T4/Web/Views/EdEditViews.tt b/UCsoft.T4/Web/Views/EdEditViews.tt new file mode 100644 index 0000000..31173c0 --- /dev/null +++ b/UCsoft.T4/Web/Views/EdEditViews.tt @@ -0,0 +1,282 @@ +<#@ template debug="True" hostspecific="True" language="C#" #> +<#@ include file="../../MultipleOutputHelper.ttinclude" #> +<#@ Assembly Name="$(TargetDir)NLite.dll" #> +<#@ Assembly Name="$(TargetDir)ELinq.dll" #> +<#@ assembly Name="System.Data" #> +<#@ import Namespace="NLite.Data" #> +<#@ import Namespace="NLite.Data.CodeGeneration" #> +<#@ output extension=".cshtml" #> +<# + var @basePath=System.IO.Path.GetDirectoryName(Host.TemplateFile); + var @contextNamespace = "Ed.DBContext"; + var @ModelNamespace = "Ed.Model"; + var @ServiceNamespace = "Ed.Service"; + var @Date=System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + var connectionStringName = "EdSqlServer"; + var dbType=GetAppSettings("databaseType"); + switch(dbType){ + case "SqlServer": + connectionStringName = "EdSqlServer"; + break; + case "MySql": + connectionStringName = "EdMySql"; + break; + default: + connectionStringName = "EdSqlServer"; + break; + } + //var dbContextName = Host.TemplateFile.Split('\\')[Host.TemplateFile.Split('\\').Length - 1].TrimEnd('.', 't'); + var dbContextName ="EdDBContext"; + var connectionStringSetting = GetConnectionStringSettings(connectionStringName); + var connectionString = connectionStringSetting.ConnectionString; + var dbProviderName = connectionStringSetting.ProviderName; + var dbConfiguration = DbConfiguration.Configure(connectionString, dbProviderName); + var databaseSchema = dbConfiguration.Schema; + var manager = Manager.Create(Host, GenerationEnvironment); + //manager.StartHeader(); +#> + + +<#foreach (var tb in databaseSchema.Tables){#> +<# + //开始ServiceImpl=================================================================================== +var modelName=NamingConversion.Default.ClassName( tb.TableName); +var listName=NamingConversion.Default.QueryableName( tb.TableName); +//表单id +var formId=modelName.TrimStart('T').ToLower()+"_form"; + +var newPath=System.IO.Path.Combine(@basePath,modelName.TrimStart('T')).ToString().Replace("\\","\\\\"); +if(!System.IO.Directory.Exists(newPath)){ +System.IO.Directory.CreateDirectory(newPath); +} +var EdIndexViewFilename= @basePath+"\\"+modelName.TrimStart('T')+ "\\"+ "Edit"; +manager.StartNewFile(EdIndexViewFilename+".cshtml"); +#> +@using System.Web.Optimization +@using Ed.Web.Helpers +@model Ed.Entity.<#=modelName#> +@{ + Layout = null; + //页面类型 + var actionType = ViewBag.ActionType; +} + + + + + + + 添加/修改 + + + + @Styles.Render("~/Themes/default/css/cp.globle.min1.css") + @Scripts.Render("~/Themes/default/js/cp.globle.min1.js") + + + + + + + + + + + + + + + +
+ + <#foreach (var col in tb.PrimaryKeys){#> + @Html.HiddenFor(model => model.<#= NamingConversion.Default.PropertyName(col.ColumnName) #>) + <#}#> + + + +
+ +
+
+ + + + + + + <#var i=0;#> + <#foreach (var col in tb.Columns){#> + <# + //数据类型 + var dataType=NamingConversion.Default.DataType(col); #> + <#if(i%2==0){#> + + + + <#}else{#> + + + + + <#}#> + <# + i++; + }#> + +
*<#= NamingConversion.Default.PropertyName(col.ColumnName) #>: + + <#//日期类型#> + <#if(dataType=="DateTime?"){#> + @Html.TextBoxFor(model => model.<#= NamingConversion.Default.PropertyName(col.ColumnName) #>, new { @class = "form-control Wdate required dateISO", Value = (Html.DateTimeNullPalse(Model.<#= NamingConversion.Default.PropertyName(col.ColumnName) #>)).ToString("yyyy-MM-dd"), onclick = "WdatePicker()",@minlength="10",@maxlength="10",@style = "width: 200px; ",@placeholder="字段提示"}) + <#//Int32#> + <#}else if(dataType=="Int32?"){#> + @Html.TextBoxFor(model => model.<#= NamingConversion.Default.PropertyName(col.ColumnName) #>, new { @class = "form-control number", @style = "width: 200px; ",@placeholder="字段提示"}) + <#}else{#> + @Html.TextBoxFor(model => model.<#= NamingConversion.Default.PropertyName(col.ColumnName) #>, new { @class = "form-control", @style = "width: 200px; ",@placeholder="字段提示"}) + <#}#> + + *<#= NamingConversion.Default.PropertyName(col.ColumnName) #>: + + + + <#//日期类型#> + <#if(dataType=="DateTime?"){#> + @Html.TextBoxFor(model => model.<#= NamingConversion.Default.PropertyName(col.ColumnName) #>, new { @class = "form-control Wdate required dateISO", Value = (Html.DateTimeNullPalse(Model.<#= NamingConversion.Default.PropertyName(col.ColumnName) #>)).ToString("yyyy-MM-dd"), onclick = "WdatePicker()",@minlength="10",@maxlength="10",@style = "width: 200px; ",@placeholder="字段提示"}) + <#//Int32#> + <#}else if(dataType=="Int32?"){#> + @Html.TextBoxFor(model => model.<#= NamingConversion.Default.PropertyName(col.ColumnName) #>, new { @class = "form-control number", @style = "width: 200px; ",@placeholder="字段提示"}) + <#}else if(dataType=="Int32"){#> + @Html.TextBoxFor(model => model.<#= NamingConversion.Default.PropertyName(col.ColumnName) #>, new { @class = "form-control required number", @style = "width: 200px; ",@placeholder="字段提示"}) + <#}else{#> + @Html.TextBoxFor(model => model.<#= NamingConversion.Default.PropertyName(col.ColumnName) #>, new { @class = "form-control", @style = "width: 200px; ",@placeholder="字段提示"}) + <#}#> + + + +
+
+ + + +
+ +
+ + + + +<# + } +#> + +<# + manager.EndBlock(); + //结束ServiceImpl=================================================================================== +#> + +<# + +foreach (var tb in databaseSchema.Views){ + var EdIndexViewFilename= "I"+NamingConversion.Default.ClassName( tb.TableName)+ "Dao"; +var modelName=NamingConversion.Default.ClassName( tb.TableName); +var listName=NamingConversion.Default.QueryableName( tb.TableName); + manager.StartNewFile(NamingConversion.Default.ClassName(tb.TableName) + ".cs"); + //开始视图 + #> + + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using NLite.Data; +using Ed.DBContext; +using Ed.Entity; + +namespace <#= @ServiceNamespace #> +{ +public interface <#=EdIndexViewFilename#>:IViewDao<<#=modelName#>> + { + + } +} +<# +} + manager.EndBlock(); +#> + + + +<# + //执行=================================================================================== + manager.Process(true); +#> \ No newline at end of file diff --git a/UCsoft.T4/Web/Views/EdIndexViews.tt b/UCsoft.T4/Web/Views/EdIndexViews.tt new file mode 100644 index 0000000..feaa7c3 --- /dev/null +++ b/UCsoft.T4/Web/Views/EdIndexViews.tt @@ -0,0 +1,135 @@ +<#@ template debug="True" hostspecific="True" language="C#" #> +<#@ include file="../../MultipleOutputHelper.ttinclude" #> +<#@ Assembly Name="$(TargetDir)NLite.dll" #> +<#@ Assembly Name="$(TargetDir)ELinq.dll" #> +<#@ assembly Name="System.Data" #> +<#@ import Namespace="NLite.Data" #> +<#@ import Namespace="NLite.Data.CodeGeneration" #> +<#@ output extension=".cshtml" #> +<# + var @basePath=System.IO.Path.GetDirectoryName(Host.TemplateFile); + var @contextNamespace = "Ed.DBContext"; + var @ModelNamespace = "Ed.Model"; + var @ServiceNamespace = "Ed.Service"; + var @Date=System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + var connectionStringName = "EdSqlServer"; + var dbType=GetAppSettings("databaseType"); + switch(dbType){ + case "SqlServer": + connectionStringName = "EdSqlServer"; + break; + case "MySql": + connectionStringName = "EdMySql"; + break; + default: + connectionStringName = "EdSqlServer"; + break; + } + //var dbContextName = Host.TemplateFile.Split('\\')[Host.TemplateFile.Split('\\').Length - 1].TrimEnd('.', 't'); + var dbContextName ="EdDBContext"; + var connectionStringSetting = GetConnectionStringSettings(connectionStringName); + var connectionString = connectionStringSetting.ConnectionString; + var dbProviderName = connectionStringSetting.ProviderName; + var dbConfiguration = DbConfiguration.Configure(connectionString, dbProviderName); + var databaseSchema = dbConfiguration.Schema; + var manager = Manager.Create(Host, GenerationEnvironment); + //manager.StartHeader(); +#> + + +<#foreach (var tb in databaseSchema.Tables){#> +<# + //开始ServiceImpl=================================================================================== +var modelName=NamingConversion.Default.ClassName( tb.TableName); +var listName=NamingConversion.Default.QueryableName( tb.TableName); +var newPath=System.IO.Path.Combine(@basePath,modelName.TrimStart('T')).ToString().Replace("\\","\\\\"); + +//表单id +var formId=modelName.TrimStart('T').ToLower()+"_form"; + + + + +if(!System.IO.Directory.Exists(newPath)){ +System.IO.Directory.CreateDirectory(newPath); +} +var EdIndexViewFilename= @basePath+"\\"+modelName.TrimStart('T')+ "\\"+ "Index"; +manager.StartNewFile(EdIndexViewFilename+".cshtml"); +#> +@using System.Web.Optimization +@model dynamic +@{ + Layout = null; +} + + + + + + 雪绒花_首页 + + + + + @Styles.Render("~/Themes/default/css/cp.globle.min6.css") + @Scripts.Render("~/Themes/default/js/cp.globle.min6.js") + + + + +
+ //内容 +
+ + + + + +<# + } +#> + +<# + manager.EndBlock(); + //结束ServiceImpl=================================================================================== +#> + +<# + +foreach (var tb in databaseSchema.Views){ + var EdIndexViewFilename= "I"+NamingConversion.Default.ClassName( tb.TableName)+ "Dao"; +var modelName=NamingConversion.Default.ClassName( tb.TableName); +var listName=NamingConversion.Default.QueryableName( tb.TableName); + manager.StartNewFile(NamingConversion.Default.ClassName(tb.TableName) + ".cs"); + //开始视图 + #> + + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using NLite.Data; +using Ed.DBContext; +using Ed.Entity; + +namespace <#= @ServiceNamespace #> +{ +public interface <#=EdIndexViewFilename#>:IViewDao<<#=modelName#>> + { + + } +} +<# +} + manager.EndBlock(); +#> + + + +<# + //执行=================================================================================== + manager.Process(true); +#> \ No newline at end of file diff --git a/UCsoft.T4/Web/Views/EdListViews.tt b/UCsoft.T4/Web/Views/EdListViews.tt new file mode 100644 index 0000000..6872e4c --- /dev/null +++ b/UCsoft.T4/Web/Views/EdListViews.tt @@ -0,0 +1,404 @@ +<#@ template debug="True" hostspecific="True" language="C#" #> +<#@ include file="../../MultipleOutputHelper.ttinclude" #> +<#@ Assembly Name="$(TargetDir)NLite.dll" #> +<#@ Assembly Name="$(TargetDir)ELinq.dll" #> +<#@ assembly Name="System.Data" #> +<#@ import Namespace="NLite.Data" #> +<#@ import Namespace="NLite.Data.CodeGeneration" #> +<#@ output extension=".cshtml" #> +<# + var @basePath=System.IO.Path.GetDirectoryName(Host.TemplateFile); + var @contextNamespace = "Ed.DBContext"; + var @ModelNamespace = "Ed.Model"; + var @ServiceNamespace = "Ed.Service"; + var @Date=System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + var connectionStringName = "EdSqlServer"; + var dbType=GetAppSettings("databaseType"); + switch(dbType){ + case "SqlServer": + connectionStringName = "EdSqlServer"; + break; + case "MySql": + connectionStringName = "EdMySql"; + break; + default: + connectionStringName = "EdSqlServer"; + break; + } + //var dbContextName = Host.TemplateFile.Split('\\')[Host.TemplateFile.Split('\\').Length - 1].TrimEnd('.', 't'); + var dbContextName ="EdDBContext"; + var connectionStringSetting = GetConnectionStringSettings(connectionStringName); + var connectionString = connectionStringSetting.ConnectionString; + var dbProviderName = connectionStringSetting.ProviderName; + var dbConfiguration = DbConfiguration.Configure(connectionString, dbProviderName); + var databaseSchema = dbConfiguration.Schema; + var manager = Manager.Create(Host, GenerationEnvironment); + //manager.StartHeader(); +#> + + +<#foreach (var tb in databaseSchema.Tables){#> +<# + //开始ServiceImpl=================================================================================== +var modelName=NamingConversion.Default.ClassName( tb.TableName); +var listName=NamingConversion.Default.QueryableName( tb.TableName); +var newPath=System.IO.Path.Combine(@basePath,modelName.TrimStart('T')).ToString().Replace("\\","\\\\"); + +//表单id +var formId=modelName.TrimStart('T').ToLower()+"_form"; +//表格id +var gridId=modelName.TrimStart('T').ToLower()+"_grid"; +//初始化表格函数名 +var initGridFun="Init"+modelName.TrimStart('T')+"Grid"; +//添加函数名 +var addFun=modelName.TrimStart('T').ToLower()+"_add"; +//修改函数名 +var editFun=modelName.TrimStart('T').ToLower()+"_edit"; +//删除函数名 +var deleteFun=modelName.TrimStart('T').ToLower()+"_delete"; +//批量删除函数名 +var multiDeleteFun=modelName.TrimStart('T').ToLower()+"_multi_delete"; +//区域名称 +var areaName="Settings"; + +if(!System.IO.Directory.Exists(newPath)){ +System.IO.Directory.CreateDirectory(newPath); +} +var EdIndexViewFilename= @basePath+"\\"+modelName.TrimStart('T')+ "\\"+ "List"; +manager.StartNewFile(EdIndexViewFilename+".cshtml"); +#> +@using System.Web.Optimization +@model dynamic +@{ + Layout = null; +} + + + + + + 雪绒花_首页 + + + + + @Styles.Render("~/Themes/default/css/cp.globle.min6.css") + @Scripts.Render("~/Themes/default/js/cp.globle.min6.js") + + + + +
+ + + + <#foreach (var col in tb.Columns){#> + +<#}#> +<#foreach (var col in tb.PrimaryKeys){#> + + +<#}#> + + +
<#=col.ColumnName#>操作
+
+ + + + + +<# + } +#> + +<# + manager.EndBlock(); + //结束ServiceImpl=================================================================================== +#> + +<# + +foreach (var tb in databaseSchema.Views){ + var EdIndexViewFilename= "I"+NamingConversion.Default.ClassName( tb.TableName)+ "Dao"; +var modelName=NamingConversion.Default.ClassName( tb.TableName); +var listName=NamingConversion.Default.QueryableName( tb.TableName); + manager.StartNewFile(NamingConversion.Default.ClassName(tb.TableName) + ".cs"); + //开始视图 + #> + + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using NLite.Data; +using Ed.DBContext; +using Ed.Entity; + +namespace <#= @ServiceNamespace #> +{ +public interface <#=EdIndexViewFilename#>:IViewDao<<#=modelName#>> + { + + } +} +<# +} + manager.EndBlock(); +#> + + + +<# + //执行=================================================================================== + manager.Process(true); +#> \ No newline at end of file diff --git a/UCsoft.T4/packages.config b/UCsoft.T4/packages.config index d5b7ac0..c0a9f7e 100644 --- a/UCsoft.T4/packages.config +++ b/UCsoft.T4/packages.config @@ -2,6 +2,7 @@ + \ No newline at end of file diff --git a/UCsoft.Web/Areas/Account/Controllers/LoginController.cs b/UCsoft.Web/Areas/Account/Controllers/LoginController.cs index f1f5726..307f878 100644 --- a/UCsoft.Web/Areas/Account/Controllers/LoginController.cs +++ b/UCsoft.Web/Areas/Account/Controllers/LoginController.cs @@ -26,6 +26,7 @@ //using Ed.Entity; //using Ed.Service; //using Ed.Web.Filters; +using UCsoft.Service; namespace UCsoft.Web.Areas.Account.Controllers { @@ -37,8 +38,8 @@ public class LoginController : Controller { #region 依赖注入 2014-10-13 18:51:08 By 唐有炜 - //public ISysUserService SysUserService { set; get; } - //public IAccountService AccountService { set; get; } + public ITSysUserService TSysUserService { set; get; } + public IAccountService AccountService { set; get; } #endregion diff --git a/UCsoft.Web/Configs/Daos.xml b/UCsoft.Web/Configs/Daos.xml index af02b8b..857f971 100644 --- a/UCsoft.Web/Configs/Daos.xml +++ b/UCsoft.Web/Configs/Daos.xml @@ -1,3 +1,69 @@  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/UCsoft.Web/Configs/Services.xml b/UCsoft.Web/Configs/Services.xml index af02b8b..6155f3d 100644 --- a/UCsoft.Web/Configs/Services.xml +++ b/UCsoft.Web/Configs/Services.xml @@ -1,3 +1,102 @@  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/UCsoft.Web/Configs/Webs.xml b/UCsoft.Web/Configs/Webs.xml index 1d719bc..cca9907 100644 --- a/UCsoft.Web/Configs/Webs.xml +++ b/UCsoft.Web/Configs/Webs.xml @@ -3,7 +3,7 @@ - + + \ No newline at end of file diff --git a/UCsoft.Web/Log/20141105.html b/UCsoft.Web/Log/20141105.html index a3861e7..0228503 100644 --- a/UCsoft.Web/Log/20141105.html +++ b/UCsoft.Web/Log/20141105.html @@ -2,5 +2,60 @@ ־ʱ䣺2014-11-05 17:42:24,923 [28]
־DEBUG
־־logdebug
+־Ϣ˵¼ҳ
+

+־ʱ䣺2014-11-05 20:05:10,284 [12]
+־DEBUG
+־־logdebug
+־Ϣ˵¼ҳ
+

+־ʱ䣺2014-11-05 20:05:28,154 [17]
+־DEBUG
+־־logdebug
+־Ϣ˵¼ҳ
+

+־ʱ䣺2014-11-05 20:05:29,953 [12]
+־DEBUG
+־־logdebug
+־Ϣ˵¼ҳ
+

+־ʱ䣺2014-11-05 20:05:30,901 [17]
+־DEBUG
+־־logdebug
+־Ϣ˵¼ҳ
+

+־ʱ䣺2014-11-05 20:28:00,553 [37]
+־DEBUG
+־־logdebug
+־Ϣ˵¼ҳ
+

+־ʱ䣺2014-11-05 20:33:01,231 [39]
+־DEBUG
+־־logdebug
+־Ϣ˵¼ҳ
+

+־ʱ䣺2014-11-05 20:33:12,605 [41]
+־DEBUG
+־־logdebug
+־Ϣ˵¼ҳ
+

+־ʱ䣺2014-11-05 20:35:01,749 [39]
+־DEBUG
+־־logdebug
+־Ϣ˵¼ҳ
+

+־ʱ䣺2014-11-05 20:37:46,418 [60]
+־DEBUG
+־־logdebug
+־Ϣ˵¼ҳ
+

+־ʱ䣺2014-11-05 20:43:54,518 [58]
+־DEBUG
+־־logdebug
+־Ϣ˵¼ҳ
+

+־ʱ䣺2014-11-05 20:44:16,957 [54]
+־DEBUG
+־־logdebug
־Ϣ˵¼ҳ

\ No newline at end of file diff --git a/UCsoft.Web/UCsoft.Web.csproj b/UCsoft.Web/UCsoft.Web.csproj index 63f3c7b..0bd860d 100644 --- a/UCsoft.Web/UCsoft.Web.csproj +++ b/UCsoft.Web/UCsoft.Web.csproj @@ -303,6 +303,10 @@ {45e160a7-334b-4473-ad23-4753a456b6e8} UCsoft.Entity + + {46d66ffd-2ee6-488c-8f9a-7507bf108014} + UCsoft.Service + diff --git a/packages/repositories.config b/packages/repositories.config index 4e69211..5708c34 100644 --- a/packages/repositories.config +++ b/packages/repositories.config @@ -1,8 +1,10 @@  + +