Beispiel #1
0
        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));
        }
Beispiel #2
0
        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;
        }
Beispiel #3
0
        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();
        }
Beispiel #4
0
        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()));
                }
            }
        }
Beispiel #5
0
        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());
                }
            }
        }
Beispiel #7
0
        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);
            }
        }
Beispiel #8
0
        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));
        }
Beispiel #9
0
        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()));
            }
        }