Exemplo n.º 1
0
        /// <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;
                    }
                }
            }
        }
Exemplo n.º 2
0
        /// <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);
            }
        }
Exemplo n.º 3
0
        /// <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;
        }
Exemplo n.º 4
0
        /// <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;
        }
Exemplo n.º 5
0
        /// <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();
                }

            }
        }
Exemplo n.º 6
0
 /// <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();
 }
Exemplo n.º 7
0
        /// <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();
            }
        }
Exemplo n.º 8
0
        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()));
        }
Exemplo n.º 9
0
        public JsonResult Upload(IFormFile file, [FromUri] ImportRequest importRequest)
        {
            var r = rnService.Import(file, importRequest.id, importRequest.code);

            return(new JsonResult(r));
        }