/// <summary> /// Handles the ActiveStepChanged event of the ucWizard control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> void ucWizard_ActiveStepChanged(object sender, EventArgs e) { //step1 if (ucWizard.ActiveStep.ID == "step1") { ViewState["_ir"] = null; } //step2 if (ucWizard.ActiveStep.ID == "step3") { #region upload file if (fSourceFile.PostedFile != null && fSourceFile.PostedFile.ContentLength > 0) { ProcessFileCache(Server.MapPath(Mediachase.UI.Web.Util.CommonHelper.ChartPath)); String dir = Mediachase.UI.Web.Util.CommonHelper.ChartPath; string wwwpath = dir + Guid.NewGuid().ToString("N"); wwwpath += Path.GetExtension(fSourceFile.PostedFile.FileName); hdnFilePath.Value = wwwpath; using (Stream sw = File.Create(Server.MapPath(wwwpath))) { fSourceFile.PostedFile.InputStream.Seek(0, SeekOrigin.Begin); System.IO.BinaryReader br = new System.IO.BinaryReader(fSourceFile.PostedFile.InputStream); int iBufferSize = 655360; // 640 KB byte[] outbyte = br.ReadBytes(iBufferSize); while (outbyte.Length > 0) { sw.Write(outbyte, 0, outbyte.Length); outbyte = br.ReadBytes(iBufferSize); } br.Close(); } } #endregion divCSV.Visible = (rbSourceType.SelectedIndex == 2); #region file parsing IIncomingDataParser parser = null; DataSet rawData = null; try { switch (rbSourceType.SelectedIndex) { case 0: IMCOleDBHelper helper = (IMCOleDBHelper)Activator.GetObject(typeof(IMCOleDBHelper), ConfigurationManager.AppSettings["McOleDbServiceString"]); rawData = helper.ConvertExcelToDataSet(Server.MapPath(hdnFilePath.Value)); break; case 1: parser = new XmlIncomingDataParser(); rawData = parser.Parse(Server.MapPath(hdnFilePath.Value), null); break; case 2: rawData = GetRawDataForCSV(); break; case 3: rawData = VCardUtil.ConvertFile(Server.MapPath(hdnFilePath.Value)); break; } } catch (Exception ex) { CHelper.GenerateErrorReport(ex); ViewState["ServiceError"] = true; ViewState["ErrorFileName"] = Server.MapPath(hdnFilePath.Value); ucWizard.MoveTo(this.step4); return; } #endregion if (ViewState["_ir"] == null) { InitializeMappingDocumentRequest imdr = new InitializeMappingDocumentRequest(_className, rawData, 0); InitializeMappingDocumentResponse resp = (InitializeMappingDocumentResponse)BusinessManager.Execute(imdr); MappingDocument md = resp.MappingDocument; _ir = new ImportRequest(_className, rawData, md); ViewState["_ir"] = _ir; } BindDG(); } if (ucWizard.ActiveStep.ID == "step4") { if (ViewState["ServiceError"] != null && (bool)ViewState["ServiceError"]) { string fileName = ViewState["ErrorFileName"].ToString(); if (fileName.EndsWith("xlsx") && !Is2007OfficeSystemDriverInstalled(fileName)) lblResult.Text = GetGlobalResourceObject("IbnFramework.Common", "McOleDbServiceWarningXlsx").ToString(); else lblResult.Text = GetGlobalResourceObject("IbnFramework.Common", "McOleDbServiceWarning").ToString(); } foreach (Control c in ucWizard.ActiveStep.Controls) { if (c is Button) { Button btn = (Button)c; string param = String.Empty; if (!String.IsNullOrEmpty(_commandName)) param = (new CommandParameters(_commandName)).ToString(); string script = Mediachase.Ibn.Web.UI.WebControls.CommandHandler.GetCloseOpenedFrameScript(this.Page, param); script += " return false;"; btn.OnClientClick = script; } } } }
/// <summary> /// Handles the FinishButtonClick event of the ucWizard control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.Web.UI.WebControls.WizardNavigationEventArgs"/> instance containing the event data.</param> void ucWizard_FinishButtonClick(object sender, WizardNavigationEventArgs e) { _ir = (ImportRequest)ViewState["_ir"]; if (_ir != null) { FillDefaultValues(dgMapping, null); _ir = (ImportRequest)ViewState["_ir"]; ImportResponse irr = (ImportResponse)BusinessManager.Execute(_ir); MappingError[] mas = irr.Errors; if (mas.Length == 0) lblResult.Text = GetGlobalResourceObject("IbnFramework.Common", "tImportWasSuccessfull").ToString(); else { ViewState["ErrorLog"] = MappingError.GetErrorLog(mas); string sAction = String.Format("<a href=\"{1};\">{0}</a>", GetGlobalResourceObject("IbnFramework.Common", "tErrorList").ToString(), this.Page.ClientScript.GetPostBackClientHyperlink(lbErrorLog, String.Empty)); lblResult.Text = String.Format( GetGlobalResourceObject("IbnFramework.Common", "tImportWithErrors").ToString(), sAction); } string param = String.Empty; if (!String.IsNullOrEmpty(_commandName)) param = (new CommandParameters(_commandName)).ToString(); Mediachase.Ibn.Web.UI.WebControls.CommandHandler.RegisterRefreshParentFromFrameScript(this.Page, param); } }
/// <summary> /// Fills the default values for LIP. /// </summary> /// <param name="dg">The dg.</param> /// <param name="excluded">The excluded.</param> private void FillDefaultValues(DataGrid dg, DataGridItem excluded) { _ir = (ImportRequest)ViewState["_ir"]; MappingElementBuilder meb = new MappingElementBuilder(_ir.MappingDocument); foreach (DataGridItem dgi in dg.Items) { if (excluded != null && excluded == dgi) continue; string mfName = dgi.Cells[0].Text; MetaField field = FormController.GetMetaField(_className, mfName); MappingRule mr = meb.GetRuleByMetaField(mfName); if (mr != null && mr.RuleType == MappingRuleType.DefaultValue) { if (field.IsEnum || field.IsReference) { DropDownList dd = (DropDownList)dgi.FindControl("ddColumn"); if (dd != null && dd.SelectedValue != "-1") meb.AssignDefaultValueRule(mfName, dd.SelectedValue); } else { TextBox txt = (TextBox)dgi.FindControl("tbColumn"); if (txt != null) meb.AssignDefaultValueRule(mfName, txt.Text); } } } ViewState["_ir"] = _ir; }
/// <summary> /// Gets the mapping source. /// </summary> /// <returns></returns> private DataTable GetMappingSource() { if (ViewState["_ir"] == null) return null; _ir = (ImportRequest)ViewState["_ir"]; DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("metaFieldName", typeof(string))); dt.Columns.Add(new DataColumn("metaField", typeof(string))); dt.Columns.Add(new DataColumn("column", typeof(string))); DataRow dr; MetaClass mc = MetaDataWrapper.GetMetaClassByName(_className); MappingElementBuilder meb = new MappingElementBuilder(_ir.MappingDocument); foreach (MetaField mf in mc.Fields) { if (mf.InPrimaryKey || mf.IsBackReference || mf.IsLink || mf.IsReferencedField || !SchemaAttribute.CheckIsUpdatable(mf)) continue; if (mf.IsAggregation) { #region IsAggregation string aggrClassName = mf.Attributes.GetValue<string>(McDataTypeAttribute.AggregationMetaClassName); MetaClass aggrClass = MetaDataWrapper.GetMetaClassByName(aggrClassName); foreach (MetaField aggrField in aggrClass.Fields) { if (aggrField.InPrimaryKey || aggrField.IsBackReference || aggrField.IsLink || aggrField.IsReferencedField || !SchemaAttribute.CheckIsUpdatable(mf) || aggrField.Attributes.ContainsKey(McDataTypeAttribute.AggregationMark)) continue; dr = dt.NewRow(); string uniqName = String.Format("{0}.{1}", mf.Name, aggrField.Name); dr["metaFieldName"] = uniqName; dr["metaField"] = CHelper.GetResFileString(aggrField.FriendlyName) + " (" + ((aggrField.GetOriginalMetaType() == null) ? aggrField.TypeName : CHelper.GetResFileString(aggrField.GetMetaType().FriendlyName)) + ")"; MappingRule mr = meb.GetRuleByMetaField(uniqName); if (mr != null) dr["column"] = mr.ColumnName; else dr["column"] = String.Empty; dt.Rows.Add(dr); } #endregion continue; } #region NonAggregation dr = dt.NewRow(); dr["metaFieldName"] = mf.Name; dr["metaField"] = CHelper.GetResFileString(mf.FriendlyName) + " (" + ((mf.GetOriginalMetaType() == null) ? mf.TypeName : CHelper.GetResFileString(mf.GetMetaType().FriendlyName)) + ")"; MappingRule mr1 = meb.GetRuleByMetaField(mf.Name); if (mr1 != null) dr["column"] = mr1.ColumnName; else dr["column"] = String.Empty; dt.Rows.Add(dr); #endregion } return dt; }
/// <summary> /// Handles the ItemDataBound event of the dgMapping control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.Web.UI.WebControls.DataGridItemEventArgs"/> instance containing the event data.</param> void dgMapping_ItemDataBound(object sender, DataGridItemEventArgs e) { DropDownList ddi = (DropDownList)e.Item.FindControl("ddColumns"); if (ddi != null) { string mfName = e.Item.Cells[0].Text; #region Commented may be needed //string ownFieldName = mfName; //string aggrFieldName = String.Empty; //string aggrClassName = String.Empty; //MetaClass ownClass = MetaDataWrapper.GetMetaClassByName(_className); //MetaClass aggrClass = null; //MetaField ownField = null; //MetaField aggrField = null; //if (ownFieldName.Contains(".")) //{ // string[] mas = ownFieldName.Split(new string[] { "." }, StringSplitOptions.RemoveEmptyEntries); // ownFieldName = mas[0]; // aggrFieldName = mas[1]; // ownField = MetaDataWrapper.GetMetaFieldByName(ownClass, ownFieldName); // aggrClassName = ownField.Attributes.GetValue<string>(McDataTypeAttribute.AggregationMetaClassName); // aggrField = MetaDataWrapper.GetMetaFieldByName(aggrClassName, aggrFieldName); //} //else // ownField = MetaDataWrapper.GetMetaFieldByName(ownClass, ownFieldName); #endregion _ir = (ImportRequest)ViewState["_ir"]; MetaField field = FormController.GetMetaField(_className, mfName); MappingElementBuilder meb = new MappingElementBuilder(_ir.MappingDocument); MappingRule mr = meb.GetRuleByMetaField(mfName); ddi.Items.Clear(); ddi.Items.Add(new ListItem(GetGlobalResourceObject("IbnFramework.Common", "tNotSetValue").ToString(), "-1")); if (field.GetOriginalMetaType() != null) ddi.Items.Add(new ListItem(GetGlobalResourceObject("IbnFramework.Common", "tDefaultValue").ToString(), "0")); foreach (DataColumn dc in _ir.Data.Tables[0].Columns) ddi.Items.Add(new ListItem(dc.ColumnName, dc.ColumnName)); string val = "-1"; if (mr != null) { if (mr.RuleType == MappingRuleType.DefaultValue) val = "0"; else if (mr.RuleType == MappingRuleType.CopyValue) val = mr.ColumnName; } CHelper.SafeSelect(ddi, val); TextBox txt = (TextBox)e.Item.FindControl("tbColumn"); DropDownList dd = (DropDownList)e.Item.FindControl("ddColumn"); switch (val) { case "-1": //Not Set txt.Visible = false; dd.Visible = false; break; case "0": //Default Value if (field.IsEnum) { dd.Visible = true; txt.Visible = false; dd.Items.Clear(); MetaFieldType mft = field.GetMetaType(); foreach (MetaEnumItem mei in mft.EnumItems) dd.Items.Add(new ListItem(CHelper.GetResFileString(mei.Name), mei.Handle.ToString())); if (!String.IsNullOrEmpty(mr.DefaultValue)) CHelper.SafeSelect(dd, mr.DefaultValue); } else if (field.IsReference) { dd.Visible = true; txt.Visible = false; dd.Items.Clear(); string refClassName = field.Attributes.GetValue<string>(McDataTypeAttribute.ReferenceMetaClassName); MetaClass refClass = MetaDataWrapper.GetMetaClassByName(refClassName); EntityObject[] list = BusinessManager.List(refClassName, (new FilterElementCollection()).ToArray()); dd.Items.Add(new ListItem(GetGlobalResourceObject("IbnFramework.Common", "tNotSetValue").ToString(), "-1")); foreach (EntityObject eo in list) dd.Items.Add(new ListItem(CHelper.GetResFileString(eo[refClass.TitleFieldName].ToString()), eo.PrimaryKeyId.Value.ToString())); if (!String.IsNullOrEmpty(mr.DefaultValue)) CHelper.SafeSelect(dd, mr.DefaultValue); } else { dd.Visible = false; txt.Visible = true; txt.Text = mr.DefaultValue; } break; default: //CopyValue txt.Visible = false; dd.Visible = false; break; } //Update UpdatePanel with lbl & txt && dd (upValues) foreach (Control c in e.Item.Cells[3].Controls) { if (c is UpdatePanel) ((UpdatePanel)c).Update(); } } }
/// <summary> /// Handles the SelectedIndexChanged event of the ddCSV control. /// Parse and return IMDR for CSV file /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> void ddCSV_SelectedIndexChanged(object sender, EventArgs e) { DataSet rawData = GetRawDataForCSV(); InitializeMappingDocumentRequest imdr = new InitializeMappingDocumentRequest(_className, rawData, 0); InitializeMappingDocumentResponse resp = (InitializeMappingDocumentResponse)BusinessManager.Execute(imdr); MappingDocument md = resp.MappingDocument; ViewState["_ir"] = new ImportRequest(_className, rawData, md); BindDG(); }
/// <summary> /// Handles the SelectedIndexChanged event of the ddi control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> protected void ddi_SelectedIndexChanged(object sender, EventArgs e) { _ir = (ImportRequest)ViewState["_ir"]; if (_ir != null) { MappingElementBuilder meb = new MappingElementBuilder(_ir.MappingDocument); DropDownList ddl = (DropDownList)sender; DataGridItem dgi = (DataGridItem)ddl.NamingContainer; DataGrid dg = (DataGrid)dgi.NamingContainer; FillDefaultValues(dg, dgi); _ir = (ImportRequest)ViewState["_ir"]; string mf = dgi.Cells[0].Text; switch (ddl.SelectedValue) { case "-1": meb.RemoveRuleByMetaField(mf); break; case "0": MetaField field = FormController.GetMetaField(_className, mf); MappingRule mr = meb.AssignDefaultValueRule(mf, field.DefaultValue); if (field.IsEnum || field.IsReference) { DropDownList dd = (DropDownList)dgi.FindControl("ddColumn"); CHelper.SafeSelect(dd, mr.DefaultValue); } else { TextBox txt = (TextBox)dgi.FindControl("tbColumn"); if (txt != null) txt.Text = mr.DefaultValue; } break; default: meb.AssignCopyValueRule(ddl.SelectedValue, mf); break; } ViewState["_ir"] = _ir; BindDG(); } }
public async Task <List <ActionStep> > PerformImport(ImportRequest importRequest) { var result = await PostAsync("system/migration/import", importRequest); return(JsonConvert.DeserializeObject <List <ActionStep> >(await result.Content.ReadAsStringAsync())); }
public JsonResult Upload(IFormFile file, [FromUri] ImportRequest importRequest) { var r = rnService.Import(file, importRequest.id, importRequest.code); return(new JsonResult(r)); }