protected override OutputData DoGet(IInputData input) { Tk5TableResolver getResovler = new Tk5TableResolver(@"Weixin\CorpTagDept.xml", this); using (getResovler) { DataTable table = getResovler.CreateVirtualTable(); IParamBuilder builder = SqlParamBuilder.CreateEqualSql(Context, "CU_USER_ID", TkDataType.Int, input.QueryString["UserId"]); string dept = DbUtil.ExecuteScalar(SQL, Context, builder).ToString(); QuoteStringList list = dept.Value <QuoteStringList>(); if (list != null) { List <int> deptList = list.ConvertToList <int>(); if (deptList != null) { foreach (var item in deptList) { DataRow userRow = table.NewRow(); userRow["DeparmentId"] = item; table.Rows.Add(userRow); } getResovler.Decode(input.Style); } } input.CallerInfo.AddInfo(DataSet); } return(OutputData.Create(DataSet)); }
public MultipleDecodeItem(string code, IDecoder decoder, params object[] args) { fDecodeData = new MultipleDecoderData(); QuoteStringList list = QuoteStringList.FromString(code); var items = list.CreateEnumerable(); foreach (string item in items) { IDecoderItem dItem = decoder.Decode(item, args); fDecodeData.AddItem(dItem); } Name = fDecodeData.ToJson(); DisplayName = Name; }
private void GetAddDelList <T>(QuoteStringList postList, QuoteStringList srcList, out T[] addList, out T[] delList) { var postStrList = postList.ConvertToList <T>(); if (postStrList == null) { postStrList = new List <T>(); } var srcStrList = srcList.ConvertToList <T>(); if (srcStrList == null) { srcStrList = new List <T>(); } addList = postStrList.Except(srcStrList).ToArray(); delList = srcStrList.Except(postStrList).ToArray(); }
protected override OutputData DoPost(IInputData input) { Tk5TableResolver getResovler = new Tk5TableResolver(@"Weixin\CorpTagDept.xml", this); using (getResovler) { DataSet postDataSet = input.PostObject.Convert <DataSet>(); getResovler.PrepareDataSet(postDataSet); FieldErrorInfoCollection errors = new FieldErrorInfoCollection(); getResovler.CheckFirstConstraints(input, errors); getResovler.CheckLaterConstraints(input, errors); errors.CheckError(); QuoteStringList postList = new QuoteStringList(); DataTable postTable = postDataSet.Tables[getResovler.TableName]; if (postTable != null) { foreach (DataRow postRow in postTable.Rows) { postList.Add(postRow["DeparmentId"].ToString()); } } string tagId = input.QueryString["TagId"]; InternalCorpUserResolver userResolver = new InternalCorpUserResolver(this); using (userResolver) { DataRow row = userResolver.SelectRowWithKeys(input.QueryString["UserId"]); CorpUser user = new CorpUser(); user.ReadFromDataRow(row, WeCorpConst.USER_MODE); user.DepartmentList = postList; row["Department"] = postList; userResolver.SetCommands(AdapterCommand.Update); user.Update(); userResolver.UpdateDatabase(); return(OutputData.CreateToolkitObject(userResolver.CreateKeyData())); } } }
public static string CheckBoxList(this Tk5FieldInfoEx field, IFieldValueProvider row, bool needId) { TkDebug.AssertArgumentNull(field, "field", null); TkDebug.AssertArgumentNull(row, "row", null); TkDebug.AssertNotNull(field.Decoder, "CheckBoxList控件需要配置Decoder", field); var codeTable = row.GetCodeTable(field.Decoder.RegName); StringBuilder options = new StringBuilder(); if (codeTable != null) { HtmlAttributeBuilder divBuilder = new HtmlAttributeBuilder(); AddNormalAttribute(field, divBuilder, field.NickName, needId, true); divBuilder.Add("data-control", "CheckBoxList"); HtmlAttributeBuilder builder = new HtmlAttributeBuilder(); //builder.Add("type", "radio"); //builder.Add("name", field.NickName); //builder.Add("class", "radio-center"); string value = row[field.NickName].ToString(); QuoteStringList quoteValue = QuoteStringList.FromString(value); options.AppendFormat(ObjectUtil.SysCulture, "<div {0}>\r\n", divBuilder.CreateAttribute()); foreach (var codeRow in codeTable) { builder.Clear(); string codeValue = codeRow.Value; builder.Add("value", codeValue); if (quoteValue.Contains(codeValue)) { builder.Add((HtmlAttribute)"checked"); } options.AppendFormat(ObjectUtil.SysCulture, Html.CheckBoxListItem, builder.CreateAttribute(), codeRow.Name); } options.Append("</div>").AppendLine(ERROR_LABEL); } return(options.ToString()); }
protected override OutputData DoPost(IInputData input) { Tk5TableResolver getResovler = new Tk5TableResolver(@"Weixin\CorpTagDept.xml", this); using (getResovler) { DataSet postDataSet = input.PostObject.Convert<DataSet>(); getResovler.PrepareDataSet(postDataSet); FieldErrorInfoCollection errors = new FieldErrorInfoCollection(); getResovler.CheckFirstConstraints(input, errors); getResovler.CheckLaterConstraints(input, errors); errors.CheckError(); QuoteStringList postList = new QuoteStringList(); DataTable postTable = postDataSet.Tables[getResovler.TableName]; if (postTable != null) { foreach (DataRow postRow in postTable.Rows) postList.Add(postRow["DeparmentId"].ToString()); } string tagId = input.QueryString["TagId"]; InternalCorpUserResolver userResolver = new InternalCorpUserResolver(this); using (userResolver) { DataRow row = userResolver.SelectRowWithKeys(input.QueryString["UserId"]); CorpUser user = new CorpUser(); user.ReadFromDataRow(row, WeCorpConst.USER_MODE); user.DepartmentList = postList; row["Department"] = postList; userResolver.SetCommands(AdapterCommand.Update); user.Update(); userResolver.UpdateDatabase(); return OutputData.CreateToolkitObject(userResolver.CreateKeyData()); } } }
private void AddDeptMembers(CorpTag tag, QuoteStringList postList, QuoteStringList srcList) { if (srcList == null) { List <int> list = postList.ConvertToList <int>(); if (list.Count > 0) { tag.AddMembers(null, list); } return; } int[] addList, delList; GetAddDelList(postList, srcList, out addList, out delList); if (addList.Length > 0) { tag.AddMembers(null, addList); } if (delList.Length > 0) { tag.RemoveMembers(null, delList); } }
protected override OutputData DoGet(IInputData input) { string oper = input.QueryString["Operation"]; string dataXml = null; string tagFieldName = null; string dataXmlFieldName = null; Func <CorpTagMembers, IEnumerable <string> > getMembers = null; switch (oper) { case "User": dataXml = @"Weixin\CorpTagUser.xml"; tagFieldName = "UserList"; dataXmlFieldName = "UserId"; getMembers = GetUserMembers; break; case "Dept": dataXml = @"Weixin\CorpTagDept.xml"; tagFieldName = "DepartmentList"; dataXmlFieldName = "DeparmentId"; getMembers = GetDeptMembers; break; default: TkDebug.ThrowImpossibleCode(this); break; } Tk5TableResolver getResovler = new Tk5TableResolver(dataXml, this); using (getResovler) { DataTable table = getResovler.CreateVirtualTable(); string tagId = input.QueryString["TagId"]; DataRow row = fResolver.TrySelectRowWithKeys(tagId); if (row != null) { QuoteStringList list = row[tagFieldName].Value <QuoteStringList>(); if (list != null) { var userList = list.CreateEnumerable(); foreach (string item in userList) { DataRow userRow = table.NewRow(); userRow[dataXmlFieldName] = item; table.Rows.Add(userRow); } } } else { CorpTag tag = new CorpTag(tagId.Value <int>()); CorpTagMembers members = tag.GetMembers(); IEnumerable <string> memList = getMembers(members); if (memList != null) { foreach (var item in memList) { DataRow userRow = table.NewRow(); userRow[dataXmlFieldName] = item; table.Rows.Add(userRow); } } } getResovler.Decode(input.Style); getResovler.FillCodeTable(input.Style); input.CallerInfo.AddInfo(DataSet); } return(OutputData.Create(DataSet)); }
protected override OutputData DoPost(IInputData input) { string oper = input.QueryString["Operation"]; string dataXml = null; string tagFieldName = null; string dataXmlFieldName = null; switch (oper) { case "User": dataXml = @"Weixin\CorpTagUser.xml"; tagFieldName = "UserList"; dataXmlFieldName = "UserId"; break; case "Dept": dataXml = @"Weixin\CorpTagDept.xml"; tagFieldName = "DepartmentList"; dataXmlFieldName = "DeparmentId"; break; default: TkDebug.ThrowImpossibleCode(this); break; } Tk5TableResolver getResovler = new Tk5TableResolver(dataXml, this); using (getResovler) { DataSet postDataSet = input.PostObject.Convert <DataSet>(); getResovler.PrepareDataSet(postDataSet); FieldErrorInfoCollection errors = new FieldErrorInfoCollection(); getResovler.CheckFirstConstraints(input, errors); getResovler.CheckLaterConstraints(input, errors); errors.CheckError(); QuoteStringList postList = new QuoteStringList(); DataTable postTable = postDataSet.Tables[getResovler.TableName]; if (postTable != null) { foreach (DataRow postRow in postTable.Rows) { postList.Add(postRow[dataXmlFieldName].ToString()); } } string tagId = input.QueryString["TagId"]; CorpTagList tagList; CorpTag tag = CorpTagEditObjectSource.FindTag(tagId, out tagList); DataRow row = fResolver.TrySelectRowWithKeys(tagId); if (row == null) { fResolver.SetCommands(AdapterCommand.Insert); row = fResolver.NewRow(); row.BeginEdit(); row["TagId"] = tagId; row["Name"] = tag.Name; row[tagFieldName] = postList.ToString(); row.EndEdit(); switch (oper) { case "User": AddUserMembers(tag, postList, null); break; case "Dept": AddDeptMembers(tag, postList, null); break; } fResolver.UpdateDatabase(); } else { fResolver.SetCommands(AdapterCommand.Update); QuoteStringList sourceList = row[tagFieldName].Value <QuoteStringList>(); row[tagFieldName] = postList.ToString(); switch (oper) { case "User": AddUserMembers(tag, postList, sourceList); break; case "Dept": AddDeptMembers(tag, postList, sourceList); break; } fResolver.UpdateDatabase(); } return(OutputData.CreateToolkitObject(fResolver.CreateKeyData())); } }