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); } }
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(); }
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))); }
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(); }
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()); } } }
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())); } }