Ejemplo n.º 1
0
        public void ImportFieldInfoError(FieldErrorInfoCollection errors)
        {
            TkDebug.AssertArgumentNull(errors, "errors", this);

            if (errors.Count == 0)
            {
                return;
            }
            var errorIndexes = from item in errors
                               orderby item.Position descending
                               group item by item.Position;

            foreach (var groupItem in errorIndexes)
            {
                DataRow row       = ImportTable.Rows[groupItem.Key];
                int     rowNumber = row[ROW_INDEX].Value <int>();
                foreach (var item in groupItem)
                {
                    AddErrorItem(rowNumber, item.NickName, item.Message);
                }
                DataRow errorRow = ErrorTable.NewRow();
                DataSetUtil.CopyRowByName(row, errorRow);
                ErrorTable.Rows.Add(errorRow);
                ImportTable.Rows.Remove(row);
            }
        }
Ejemplo n.º 2
0
        private void PostData(IInputData input)
        {
            DataSet postDataSet                   = input.PostObject.Convert <DataSet>();
            FieldErrorInfoCollection errors       = new FieldErrorInfoCollection();
            MetaDataTableResolver    metaResolver = MainResolver as MetaDataTableResolver;

            if (metaResolver != null)
            {
                metaResolver.CheckFirstConstraints(input, errors);
            }
            switch (input.Style.Style)
            {
            case PageStyle.Insert:
                MainResolver.Insert(postDataSet, input);
                break;

            case PageStyle.Update:
                MainResolver.Update(postDataSet, input);
                break;
            }
            if (metaResolver != null)
            {
                metaResolver.CheckLaterConstraints(input, errors);
            }

            errors.CheckError();
        }
Ejemplo n.º 3
0
        public override OutputData DoAction(IInputData input)
        {
            string          source = input.QueryString["Source"];
            string          path   = Path.Combine(BaseAppSetting.Current.XmlPath, @"Import", source + ".xml");
            ImportConfigXml config = new ImportConfigXml();

            config.ReadXmlFromFile(path);
            string filePath = @"C:\Users\zll\Downloads\角色.xls";

            var             meta = config.Import.MetaData.CreateObject(input);
            Tk5ListMetaData data = meta as Tk5ListMetaData;

            var resolver = config.Import.Resolver.CreateObject(this);
            MetaDataTableResolver metaResolver = resolver as MetaDataTableResolver;

            TkDebug.AssertNotNull(metaResolver, "metaResolver", this);

            ImportError errResult = new ImportError();
            var         dataSet   = ExcelImporter.ExcelImport(filePath, data, errResult);
            FieldErrorInfoCollection importResult = metaResolver.Import(dataSet, input);

            if (importResult.Count > 0)
            {
                var positions = (from item in importResult
                                 orderby item.Position descending
                                 select item.Position).Distinct();

                foreach (var errorInfo in importResult)
                {
                    DataRow errorRow = dataSet.Tables[errorInfo.TableName].Rows[errorInfo.Position];

                    ImportWarningItem errorItem = new ImportWarningItem(errorRow["OriginalRowNum"].Value <int>(),
                                                                        resolver.GetFieldInfo(errorInfo.NickName).DisplayName, (string)errorRow[errorInfo.NickName], errorInfo.Message);
                    errResult.Add(errorItem);
                }

                foreach (var index in positions)
                {
                    resolver.HostTable.Rows.RemoveAt(index);
                }
            }

            DataSet webReport = null;

            if (errResult.Count > 0)
            {
                byte[] dataFile = ExcelUtil.ExcelReport(filePath, data, errResult);
                webReport = ExcelUtil.DataSetReport(filePath, data, errResult);
            }

            return(OutputData.CreateObject(new ImportResultData(DataSet, webReport, errResult)));
        }
Ejemplo n.º 4
0
        private void PostData(IInputData input)
        {
            DataSet postDataSet             = input.PostObject.Convert <DataSet>();
            FieldErrorInfoCollection errors = new FieldErrorInfoCollection();
            var childResolvers = ChildResolvers.ToArray();
            MetaDataTableResolver metaResolver = MainResolver as MetaDataTableResolver;

            if (metaResolver != null)
            {
                metaResolver.CheckFirstConstraints(input, errors);
            }
            foreach (var item in childResolvers)
            {
                MetaDataTableResolver childResolver = item as MetaDataTableResolver;
                if (childResolver != null)
                {
                    childResolver.CheckFirstConstraints(input, errors);
                }
            }
            switch (input.Style.Style)
            {
            case PageStyle.Insert:
                MainResolver.Insert(postDataSet, input);
                foreach (var item in childResolvers)
                {
                    item.Insert(postDataSet, input);
                }
                break;

            case PageStyle.Update:
                MainResolver.Update(postDataSet, input);
                foreach (var item in childResolvers)
                {
                    item.Update(postDataSet, input);
                }
                break;
            }
            if (metaResolver != null)
            {
                metaResolver.CheckLaterConstraints(input, errors);
            }
            foreach (var item in childResolvers)
            {
                MetaDataTableResolver childResolver = item as MetaDataTableResolver;
                if (childResolver != null)
                {
                    childResolver.CheckLaterConstraints(input, errors);
                }
            }
            errors.CheckError();
        }
Ejemplo n.º 5
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()));
                }
            }
        }
        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());
                }
            }
        }
Ejemplo n.º 7
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()));
            }
        }