public void GetRoutesParser()
        {
            var sut = new EntityParserFactory();

            var parser = sut.Create(SupportedFileNames.Routes);

            Assert.True(typeof(Route).IsAssignableFrom(parser.GetType().GetGenericArguments()[0]));
            Assert.True(typeof(RoutesMap).IsAssignableFrom(parser.GetType().GetGenericArguments()[1]));
        }
Example #2
0
        public void Import(int empresa, int linea, IData idata, int version)
        {
            using (var transaction = SmartTransaction.BeginTransaction())
            {
                try
                {
                    var parser = EntityParserFactory.GetEntityParser(idata);
                    if (parser == null)
                    {
                        throw new EntityParserException();
                    }

                    var entity = parser.Parse(empresa, linea, idata);
                    if (entity == null)
                    {
                        throw new EntityParserException();
                    }

                    switch (idata.Operation)
                    {
                    case (int)Operation.Delete:
                        parser.Delete(entity, empresa, linea, idata);
                        break;

                    case (int)Operation.Add:
                        parser.Save(entity, empresa, linea, idata);
                        break;

                    case (int)Operation.Modify:
                        parser.Update(entity, empresa, linea, idata);
                        break;

                    case (int)Operation.AddOrModify:
                        parser.SaveOrUpdate(entity, empresa, linea, idata);
                        break;
                    }

                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    STrace.Exception(typeof(Server).FullName, ex, String.Format("Exception Server.Import(empresa={0}, linea={1})", empresa, linea));
                    transaction.Rollback();
                }
            }
        }