public void DoImport()
        {
            var param = (ImportOrdinalsParam)View.CurrentObject;

            var csvStream = new MemoryStream();

            param.File.SaveToStream(csvStream);
            csvStream.Position = 0;

            var             xpoMapper = new Xafology.ExpressApp.Xpo.ValueMap.XpoFieldMapper();
            ICsvToXpoLoader loader    = null;

            if (param.ImportActionType == ImportActionType.Insert)
            {
                loader = new OrdCsvToXpoInserter(param, csvStream, xpoMapper, null);
            }
            else if (param.ImportActionType == ImportActionType.Update)
            {
                loader = new OrdCsvToXpoUpdater(param, csvStream, xpoMapper, null);
            }
            else
            {
                throw new ArgumentException("Invalid Import Action Type", "ImportActionType");
            }

            loader.Execute();
        }
Ejemplo n.º 2
0
        public void DoImport()
        {
            var param = (ImportOrdinalsParam)View.CurrentObject;

            var csvStream = new MemoryStream();

            param.File.SaveToStream(csvStream);
            csvStream.Position = 0;

            var             xpoMapper = new Xafology.ExpressApp.Xpo.ValueMap.XpoFieldMapper();
            ICsvToXpoLoader loader    = null;
            var             logger    = new SimpleImportLogger();

            if (param.ImportActionType == ImportActionType.Insert)
            {
                loader = new OrdCsvToXpoInserter(param, csvStream, xpoMapper, logger);
            }
            else if (param.ImportActionType == ImportActionType.Update)
            {
                loader = new OrdCsvToXpoUpdater(param, csvStream, xpoMapper, logger);
            }
            else
            {
                throw new ArgumentException("Invalid Import Action Type", "ImportActionType");
            }

            loader.Execute();

            new Xafology.ExpressApp.SystemModule.GenericMessageBox(logger.LogMessage, "Import SUCCESSFUL");
        }
Ejemplo n.º 3
0
        public void UpdateSimpleOrdinalCsv()
        {
            // arrange parameters

            var map1 = ObjectSpace.CreateObject <OrdinalToFieldMap>();

            map1.SourceOrdinal = 0;
            map1.TargetName    = "Description";
            map1.IsKeyField    = true;

            var map2 = ObjectSpace.CreateObject <OrdinalToFieldMap>();

            map2.SourceOrdinal = 1;
            map2.TargetName    = "Amount";

            var param = ObjectSpace.CreateObject <ImportOrdinalsParam>();

            param.OrdToFieldMaps.Add(map1);
            param.OrdToFieldMaps.Add(map2);

            param.ObjectTypeName = "MockFactObject";

            // arrange XPO objects

            var obj1 = ObjectSpace.CreateObject <MockFactObject>();

            obj1.Description = "Hello 1";
            obj1.Amount      = 10;

            var obj2 = ObjectSpace.CreateObject <MockFactObject>();

            obj2.Description = "Hello 2";
            obj2.Amount      = 20;

            var obj3 = ObjectSpace.CreateObject <MockFactObject>();

            obj3.Description = "Hello 3";
            obj3.Amount      = 30;

            ObjectSpace.CommitChanges();

            // arrange loader

            string csvText = @"Hello 1,100
Hello 2,200
Hello 3,300";

            var             csvStream      = ConvertToCsvStream(csvText);
            var             request        = ObjectSpace.CreateObject <ImportRequest>();
            var             logger         = new ImportLogger(request);
            var             xpoFieldMapper = new XpoFieldMapper();
            ICsvToXpoLoader loader         = new OrdCsvToXpoUpdater(param, csvStream, xpoFieldMapper, logger);

            // act

            loader.Execute();

            // assert
            var updated = new XPQuery <MockFactObject>(ObjectSpace.Session);

            Assert.AreEqual(3, updated.Count()); // returns 6 because it inserts instead of updates

            MockFactObject result = updated.Where(x => x.Description == "Hello 1").FirstOrDefault();

            Assert.AreEqual(100, result.Amount);

            result = updated.Where(x => x.Description == "Hello 2").FirstOrDefault();
            Assert.AreEqual(200, result.Amount);

            result = updated.Where(x => x.Description == "Hello 3").FirstOrDefault();
            Assert.AreEqual(300, result.Amount);
        }