Пример #1
0
 static async Task <ExitResult> Transfer()
 {
     using (Operation programOp = L.Begin("Azure Storage transfer operation"))
     {
         using (Operation engineOp = L.Begin("Initialising transfer engine"))
         {
             Engine = new TransferEngine(EngineOptions, CTS.Token, AppConfig, Console.Out);
             if (!Engine.Initialised)
             {
                 return(ExitResult.TRANSFER_ENGINE_INIT_ERROR);
             }
             else
             {
                 engineOp.Complete();
             }
         }
         using (Operation engineOp = L.Begin("Azure Storage {op}", EngineOptions["Operation"]))
         {
             if (await Engine.Transfer())
             {
                 engineOp.Complete();
                 programOp.Complete();
                 return(ExitResult.SUCCESS);
             }
             else
             {
                 return(ExitResult.TRANSFER_ERROR);
             }
         }
     }
 }
        public string ReStart(string id, int index = 1, int size = 100, int count = 1000)
        {
            var work_order = db.work_order.FirstOrDefault(a => a.OrderId == id);

            var from         = db.data_source.Find(work_order.InportSourceId);
            var to           = db.data_source.Find(work_order.ExportSourceId);
            var fieldMapping =
                (from a in db.field_mapping
                 join b in db.method on a.MethodId equals b.Id
                 where a.OrderId == work_order.OrderId && a.Creator == "1"
                 select new FieldMappingItem()
            {
                field = a.FieldIn,
                toField = a.FieldOut,
                method = (int)b.Id,
                methodClassName = b.TypeFillName,
                methodDll = b.AssemblyPath,
                methodName = b.MethodName,
            }).ToList();


            if (from == null || to == null || fieldMapping.Count <= 0)
            {
                throw new CheckException("配置不完善");
            }

            var param = new TransferParam
            {
                OrderId        = work_order.OrderId,
                FromConnString = @from.Link,
                FromTable      = @from.TableName,
                FromTypeCode   = @from.TypeCode,
                Where          = work_order.InportWhere,
                OrderBy        = work_order.InportOrderByField,
                ToConnString   = to.Link,
                ToTypeCode     = to.TypeCode,
                ToTable        = to.TableName,
                Index          = index,
                Size           = size,
                Count          = count,
                FieldMapping   = fieldMapping
            };

            TransferEngine.Start(param);


            return("Ok");
        }
Пример #3
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            SetContentView(Resource.Layout.ActivityTabbed);

            Navigation = FindViewById <BottomNavigationView>(Resource.Id.navigation);
            Navigation.SetOnNavigationItemSelectedListener(this);
            FManager  = FragmentManager;
            M_SERVICE = this;
            OnNavigationItemSelected(Navigation.Menu.GetItem(0));
            mTransferEngine  = Nearby.GetTransferEngine(this);
            mWifiShareEngine = Nearby.GetWifiShareEngine(this);
            mDiscoveryEngine = Nearby.GetDiscoveryEngine(this);
            Adapter          = new ExpandableAdapter(this, AvaliableDevicesList);
            RequestPermissions();
        }
Пример #4
0
        public ITranslationEngine Create(string engineId)
        {
            string         engineDir           = Path.Combine(_engineOptions.Value.EnginesDir, engineId);
            string         hcSrcConfigFileName = Path.Combine(engineDir, "src-hc.xml");
            string         hcTrgConfigFileName = Path.Combine(engineDir, "trg-hc.xml");
            TransferEngine transferEngine      = null;

            if (File.Exists(hcSrcConfigFileName) && File.Exists(hcTrgConfigFileName))
            {
                var hcTraceManager = new TraceManager();

                Language srcLang    = XmlLanguageLoader.Load(hcSrcConfigFileName);
                var      srcMorpher = new Morpher(hcTraceManager, srcLang);

                Language trgLang    = XmlLanguageLoader.Load(hcTrgConfigFileName);
                var      trgMorpher = new Morpher(hcTraceManager, trgLang);

                transferEngine = new TransferEngine(srcMorpher, new SimpleTransferer(new GlossMorphemeMapper(trgMorpher)), trgMorpher);
            }
            return(transferEngine);
        }
        public ITranslationEngine Create(Engine engine)
        {
            string         hcSrcConfigFileName = Path.Combine(engine.ConfigDirectory, "src-hc.xml");
            string         hcTrgConfigFileName = Path.Combine(engine.ConfigDirectory, "trg-hc.xml");
            TransferEngine transferEngine      = null;

            if (File.Exists(hcSrcConfigFileName) && File.Exists(hcTrgConfigFileName))
            {
                var spanFactory    = new ShapeSpanFactory();
                var hcTraceManager = new TraceManager();

                Language srcLang    = XmlLanguageLoader.Load(hcSrcConfigFileName);
                var      srcMorpher = new Morpher(spanFactory, hcTraceManager, srcLang);

                Language trgLang    = XmlLanguageLoader.Load(hcTrgConfigFileName);
                var      trgMorpher = new Morpher(spanFactory, hcTraceManager, trgLang);

                transferEngine = new TransferEngine(srcMorpher, new SimpleTransferer(new GlossMorphemeMapper(trgMorpher)), trgMorpher);
            }
            return(transferEngine);
        }
Пример #6
0
        private bool LoadProject(string fileName)
        {
            XElement projectElem;

            try
            {
                projectElem = XElement.Load(fileName);
            }
            catch (Exception)
            {
                return(false);
            }

            XElement engineElem = projectElem.Element("TranslationEngine");

            if (engineElem == null)
            {
                return(false);
            }

            var smtConfig = (string)engineElem.Element("SmtConfig");

            if (smtConfig == null)
            {
                return(false);
            }

            var hcSrcConfig = (string)engineElem.Element("SourceAnalyzerConfig");
            var hcTrgConfig = (string)engineElem.Element("TargetGeneratorConfig");

            string configDir = Path.GetDirectoryName(fileName);

            Debug.Assert(configDir != null);

            ITranslationEngine transferEngine = null;

            if (hcSrcConfig != null && hcTrgConfig != null)
            {
                Language srcLang    = XmlLanguageLoader.Load(Path.Combine(configDir, hcSrcConfig));
                var      srcMorpher = new Morpher(_hcTraceManager, srcLang);

                Language trgLang    = XmlLanguageLoader.Load(Path.Combine(configDir, hcTrgConfig));
                var      trgMorpher = new Morpher(_hcTraceManager, trgLang);

                transferEngine = new TransferEngine(srcMorpher,
                                                    new SimpleTransferer(new GlossMorphemeMapper(trgMorpher)), trgMorpher);
            }

            _smtModel = new ThotSmtModel(Path.Combine(configDir, smtConfig));
            IInteractiveSmtEngine smtEngine = _smtModel.CreateInteractiveEngine();

            _hybridEngine = new HybridTranslationEngine(smtEngine, transferEngine);

            var sourceTexts          = new List <IText>();
            var targetTexts          = new List <IText>();
            var alignmentCollections = new List <ITextAlignmentCollection>();

            using (_texts.BulkUpdate())
            {
                foreach (XElement textElem in projectElem.Elements("Texts").Elements("Text"))
                {
                    var name = (string)textElem.Attribute("name");

                    var metadataFileName = (string)textElem.Element("MetadataFile");
                    if (metadataFileName == null)
                    {
                        return(false);
                    }
                    metadataFileName = Path.Combine(configDir, metadataFileName);

                    var srcTextFileName = (string)textElem.Element("SourceFile");
                    if (srcTextFileName == null)
                    {
                        return(false);
                    }
                    srcTextFileName = Path.Combine(configDir, srcTextFileName);

                    var trgTextFileName = (string)textElem.Element("TargetFile");
                    if (trgTextFileName == null)
                    {
                        return(false);
                    }
                    trgTextFileName = Path.Combine(configDir, trgTextFileName);

                    var alignmentsFileName = (string)textElem.Element("AlignmentsFile");
                    if (alignmentsFileName != null)
                    {
                        alignmentsFileName = Path.Combine(configDir, alignmentsFileName);
                    }

                    var text = new TextViewModel(_tokenizer, name, metadataFileName, srcTextFileName, trgTextFileName,
                                                 alignmentsFileName)
                    {
                        Engine = _hybridEngine
                    };
                    text.PropertyChanged += TextPropertyChanged;
                    _texts.Add(text);

                    Func <TextSegment, bool> segmentFilter = s => text.IsApproved((TextSegmentRef)s.SegmentRef);
                    sourceTexts.Add(new FilteredText(new TextFileText(_tokenizer, name, srcTextFileName),
                                                     segmentFilter));
                    targetTexts.Add(new FilteredText(new TextFileText(_tokenizer, name, trgTextFileName),
                                                     segmentFilter));
                    if (alignmentsFileName != null)
                    {
                        alignmentCollections.Add(new TextFileTextAlignmentCollection(name, alignmentsFileName));
                    }
                }
            }
            if (_texts.Count == 0)
            {
                return(false);
            }

            _sourceCorpus    = new DictionaryTextCorpus(sourceTexts);
            _targetCorpus    = new DictionaryTextCorpus(targetTexts);
            _alignmentCorpus = new DictionaryTextAlignmentCorpus(alignmentCollections);

            CurrentText = _texts[0];
            AcceptChanges();
            RebuildTask.UpdateCanExecute();
            return(true);
        }
        public IHttpActionResult Postwork_order(work_order work_order)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (!db.field_mapping.Any(a => a.OrderId == work_order.OrderId && a.State == 0))
            {
                throw  new Exception("请配置字段映射关系");
            }

            var runState = 1;

            if (db.work_order.Any(a => a.InportSourceId == work_order.InportSourceId && a.ExportSourceId == work_order.ExportSourceId && a.State == runState))
            {
                throw new Exception("已存在正在运行的迁移策略.");
            }

            if (work_order.StartTime == default(DateTime))
            {
                work_order.StartTime = DateTime.Now;
            }

            if (work_order.PageIndex <= 0)
            {
                work_order.PageIndex = 1;
            }
            work_order.CreateTime         = DateTime.Now;
            work_order.UserId             = 1;
            work_order.Creator            = "1";
            work_order.EndTime            = DateTime.Now;
            work_order.InportWhere        = work_order.InportWhere ?? string.Empty;
            work_order.Remake             = work_order.Remake ?? string.Empty;
            work_order.InportOrderByField = work_order.InportOrderByField ?? string.Empty;

            work_order.Modifier   = "1";
            work_order.ModifyTime = DateTime.Now;
            work_order.Exception  = string.Empty;

            db.work_order.Add(work_order);
            db.SaveChanges();

            var from         = db.data_source.Find(work_order.InportSourceId);
            var to           = db.data_source.Find(work_order.ExportSourceId);
            var fieldMapping =
                (from a in db.field_mapping
                 join b in db.method on a.MethodId equals b.Id
                 where a.OrderId == work_order.OrderId && a.Creator == "1"
                 select new FieldMappingItem()
            {
                field = a.FieldIn,
                toField = a.FieldOut,
                method = (int)b.Id,
                methodClassName = b.TypeFillName,
                methodDll = b.AssemblyPath,
                methodName = b.MethodName,
            }).ToList();


            if (from == null || to == null || fieldMapping.Count <= 0)
            {
                throw new CheckException("配置不完善");
            }

            var param = new TransferParam
            {
                OrderId        = work_order.OrderId,
                FromConnString = @from.Link,
                FromTable      = @from.TableName,
                FromTypeCode   = @from.TypeCode,
                Where          = work_order.InportWhere,
                OrderBy        = work_order.InportOrderByField,
                ToConnString   = to.Link,
                ToTypeCode     = to.TypeCode,
                ToTable        = to.TableName,
                Size           = work_order.PageSize,
                Count          = (int)work_order.DataCount,
                FieldMapping   = fieldMapping
            };

            TransferEngine.Start(param);

            return(CreatedAtRoute("DefaultApi", new { id = work_order.Id }, work_order));
        }