Ejemplo n.º 1
0
    /// <summary>
    /// Gets the CSV reader.
    /// </summary>
    /// <param name="file">The file.</param>
    /// <returns></returns>
    private ImportCSVReader GetCSVReader(UploadedFile file)
    {
        byte[]          data   = GetData(file);
        ImportCSVReader reader = new ImportCSVReader(data);

        return(reader);
    }
    /// <summary>
    /// Transforms to target object.
    /// </summary>
    /// <param name="itemId">The item</param>
    /// <returns></returns>
    private IMatchDuplicateProvider GetDuplicateProvider(string itemId)
    {
        IImportHistoryItem    item            = Sage.Platform.EntityFactory.GetById <IImportHistoryItem>(itemId);
        IImportHistory        importHistory   = Sage.Platform.EntityFactory.GetById <IImportHistory>(item.ImportHistoryId);
        ImportTemplateManager templateManager = new ImportTemplateManager(importHistory.Data, Type.GetType(importHistory.EntityType));
        ImportCSVOptions      csvOptions      = new ImportCSVOptions();

        templateManager.LoadImportSourceOptions(csvOptions);
        StringBuilder sb = new StringBuilder();

        if (csvOptions.FirstRowColHeader)
        {
            string colheader    = string.Empty;
            int    lastColIndex = templateManager.SourceProperties.Count;
            int    index        = 0;
            foreach (ImportSourceProperty sp in templateManager.SourceProperties)
            {
                index++;
                colheader = colheader + Convert.ToString(csvOptions.Qualifier) + sp.FieldName +
                            Convert.ToString(csvOptions.Qualifier);
                if (lastColIndex != index)
                {
                    colheader = colheader + Convert.ToString(csvOptions.Delimiter);
                }
            }
            sb.AppendLine(colheader);
        }
        sb.AppendLine(item.Data);
        ImportCSVReader sourceReader = GetCSVReader(sb.ToString());

        sourceReader.Options = csvOptions;

        ImportTransformationManager transformationManager =
            new ImportTransformationManager(templateManager.EntityManager.EntityType, templateManager.ImportMaps,
                                            templateManager.TargetPropertyDefaults);

        //Calculated properties?
        transformationManager.TransformationProvider = new ImportTransformationProvider();
        sourceReader.MoveToNext();
        object targetEntityObj = Sage.Platform.EntityFactory.Create(templateManager.EntityManager.EntityType);

        transformationManager.FillEntity(sourceReader.CurrentRecord, targetEntityObj);

        //Need to make this more generic
        IMatchDuplicateProvider dupProvider = new LeadDuplicateProvider();

        dupProvider.AdvancedOptions           = templateManager.MatchAdvancedOptions;
        dupProvider.AdvancedOptions.AutoMerge = false;
        foreach (string filter in templateManager.MatchFilters)
        {
            dupProvider.SetActiveFilter(filter, true);
        }
        MatchEntitySource entitySource = new MatchEntitySource(templateManager.EntityManager.EntityType, targetEntityObj);

        dupProvider.EntitySource = entitySource;

        return(dupProvider);
    }
    /// <summary>
    /// Gets the CSV reader.
    /// </summary>
    /// <param name="data">The data.</param>
    /// <returns></returns>
    private ImportCSVReader GetCSVReader(string data)
    {
        MemoryStream stream = new MemoryStream(ASCIIEncoding.ASCII.GetBytes(data));

        byte[] bData = new byte[stream.Length];
        stream.Read(bData, 0, Convert.ToInt32(stream.Length));
        ImportCSVReader reader = new ImportCSVReader(bData);

        stream.Close();
        return(reader);
    }
Ejemplo n.º 4
0
 /// <summary>
 /// Gets the CSV reader.
 /// </summary>
 /// <param name="file">The file.</param>
 /// <param name="importId">The import id.</param>
 /// <returns></returns>
 private ImportCSVReader GetCSVReader(UploadedFile file, string importId)
 {
     try
     {
         string fileName = importId + ".csv";
         string path     = ImportService.GetImportProcessPath() + fileName;
         ImportService.DeleteImportFile(path);
         file.MoveTo(path);
         ImportCSVReader reader = new ImportCSVReader(path);
         return(reader);
     }
     catch (Exception exp)
     {
         lblError.Text = GetLocalResourceObject("error_InvalidImportPath").ToString();
         divError.Style.Add(HtmlTextWriterStyle.Display, "inline");
         divMainContent.Style.Add(HtmlTextWriterStyle.Display, "none");
         (Parent.Parent.FindControl("StartNavigationTemplateContainerID").FindControl("cmdStartButton")).Visible = false;
         throw new Exception(GetLocalResourceObject("error_InvalidImportPath").ToString(), exp.InnerException);
     }
 }
 /// <summary>
 /// Gets the CSV reader.
 /// </summary>
 /// <param name="data">The data.</param>
 /// <returns></returns>
 private ImportCSVReader GetCSVReader(string data)
 {
     MemoryStream stream = new MemoryStream(ASCIIEncoding.ASCII.GetBytes(data));
     byte[] bData = new byte[stream.Length];
     stream.Read(bData, 0, Convert.ToInt32(stream.Length));
     ImportCSVReader reader = new ImportCSVReader(bData);
     stream.Close();
     return reader;
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Gets the CSV reader.
 /// </summary>
 /// <param name="file">The file.</param>
 /// <returns></returns>
 private ImportCSVReader GetCSVReader(UploadedFile file)
 {
     byte[] data = GetData(file);
     ImportCSVReader reader = new ImportCSVReader(data);
     return reader;
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Gets the CSV reader.
 /// </summary>
 /// <param name="file">The file.</param>
 /// <param name="importId">The import id.</param>
 /// <returns></returns>
 private ImportCSVReader GetCSVReader(UploadedFile file, string importId)
 {
     try
     {
         string fileName = importId + ".csv";
         string path = ImportService.GetImportProcessPath() + fileName;
         ImportService.DeleteImportFile(path);
         file.MoveTo(path);
         ImportCSVReader reader = new ImportCSVReader(path);
         return reader;
     }
     catch (Exception exp)
     {
         lblError.Text = GetLocalResourceObject("error_InvalidImportPath").ToString();
         divError.Style.Add(HtmlTextWriterStyle.Display, "inline");
         divMainContent.Style.Add(HtmlTextWriterStyle.Display, "none");
         (Parent.Parent.FindControl("StartNavigationTemplateContainerID").FindControl("cmdStartButton")).Visible = false;
         throw new Exception(GetLocalResourceObject("error_InvalidImportPath").ToString(), exp.InnerException);
     }
 }
    /// <summary>
    /// Loads the form.
    /// </summary>
    private void LoadForm()
    {
        try
        {
            if (Page.Visible && chkShowDuplicates.Checked)
            {
                IImportHistory importHistory = BindingSource.Current as IImportHistory;
                if (importHistory != null)
                {
                    ImportTemplateManager templateManager = new ImportTemplateManager(importHistory.Data, Type.GetType(importHistory.EntityType));
                    ImportCSVOptions      csvOptions      = new ImportCSVOptions();
                    templateManager.LoadImportSourceOptions(csvOptions);
                    IList <IImportHistoryItem> items = Sage.SalesLogix.ImportHistory.Rules.GetHistoryItems(importHistory, "DUPLICATE", "CreateDate", true);

                    if (items != null && items.Count > 0)
                    {
                        IImportHistoryItem fItem      = items[0];
                        string             sQualifier = string.Empty;
                        if (fItem.Data.Contains(csvOptions.Qualifier.ToString()))
                        {
                            sQualifier = Convert.ToString(csvOptions.Qualifier);
                        }

                        StringBuilder sb = new StringBuilder();
                        if (csvOptions.FirstRowColHeader)
                        {
                            string colheader = string.Empty;
                            colheader = string.Format("{0}{1}{2}{3}", sQualifier, "Id", sQualifier, csvOptions.Delimiter);
                            int lastColIndex = templateManager.SourceProperties.Count;
                            int index        = 0;
                            foreach (ImportSourceProperty sp in templateManager.SourceProperties)
                            {
                                index++;
                                colheader = sp.FieldName.Equals("Id", StringComparison.InvariantCultureIgnoreCase)
                                                ? colheader + sQualifier + sp.FieldName + "_" + index + sQualifier
                                                : colheader + sQualifier + sp.FieldName + sQualifier;
                                if (lastColIndex != index)
                                {
                                    colheader = colheader + Convert.ToString(csvOptions.Delimiter);
                                }
                            }
                            sb.AppendLine(colheader);
                        }

                        foreach (IImportHistoryItem item in items)
                        {
                            if (string.Equals("DUPLICATE", item.ItemType) && !Convert.ToBoolean(item.IsResolved))
                            {
                                sb.AppendFormat("{0}{1}{2}{3}{4}\r\n", sQualifier, item.Id, sQualifier, csvOptions.Delimiter, item.Data);
                            }
                        }

                        ImportCSVReader sourceReader = GetCSVReader(sb.ToString());
                        sourceReader.Options = csvOptions;
                        DataTable dtDups = sourceReader.GetAsDataTable(-1);
                        if (dtDups.Columns[0].ColumnName != "Id")
                        {
                            dtDups.Columns[0].ColumnName = "Id";
                        }
                        grdDuplicates.DataSource = dtDups;
                    }
                }
                grdDuplicates.DataBind();
            }
        }
        catch (Exception ex)
        {
            log.Error("The call to ImportHistoryDuplicates.LoadForm() failed", ex);
        }
    }
 /// <summary>
 /// Gets the CSV reader.
 /// </summary>
 /// <param name="file">The file.</param>
 /// <param name="importId">The import id.</param>
 /// <returns></returns>
 private ImportCSVReader GetCSVReader(UploadedFile file, string importId)
 {
     string fileName = importId + ".csv";
     string path = ImportService.GetImportProcessPath() + fileName;
     ImportService.DeleteImportFile(path);
     file.MoveTo(path);
     ImportCSVReader reader = new ImportCSVReader(path);
     return reader;
 }