protected virtual ServiceHandler CreateHandler(ServiceItemSetting setting) { var contractTypeName = ObjectService.GetTypeName(setting.ContractTypeName); var contractType = TypeHelper.CreateType(contractTypeName, false); if (contractType == null || !contractType.IsInterface) { throw new ArgumentException("ContractType can't be created.", contractTypeName); } setting.ContractType = contractType; return(new ServiceHandler(contractType, this)); }
public ReadOnlyServiceSettingCollection GetServiceSettings() { ServiceSettingCollection result = new ServiceSettingCollection(); foreach(ListViewItem lvi in lvServicesEnabled.Items) { ServiceSettingsContainer sc = lvi.Tag as ServiceSettingsContainer; ServiceItemSetting tsetting = new ServiceItemSetting(sc.Setting.LanguagePair, sc.Setting.Subject, sc.Setting.ServiceItem , TranslateOptions.Instance.GetNetworkSetting(sc.Setting.ServiceItem.Service)); result.Add(tsetting); } return new ReadOnlyServiceSettingCollection(result); }
public ServiceSettingsContainer(ServiceItemSetting setting, bool showLanguage) { this.setting = setting; this.showLanguage = showLanguage; GenerateName(); }
public ServiceHandler(ServiceItemSetting setting, Type contractType, ServiceFactory serviceFactory) { this.Setting = setting; this.ServiceFactory = serviceFactory; this.InitService(contractType); }
internal static void TranslateWorker( ServiceItemSetting translatorSetting, AsyncTranslateState translateState) { if(translateState.IsTerminated) return; Result tr = translatorSetting.ServiceItem.Translate(translateState.Phrase, translatorSetting.LanguagePair, translatorSetting.Subject, translatorSetting.NetworkSetting, translateState); ReportProgressState repState = new ReportProgressState(tr,translateState); try { //lock errors when translateState.AsyncOperation.Post(ReportProgress, repState); } catch(InvalidOperationException) { } }
int GetDelayBeforeRun(ServiceItemSetting ts) { int cnt = 1; if(useCount.TryGetValue(ts.ServiceItem, out cnt)) cnt++; useCount[ts.ServiceItem] = cnt; int result = ((cnt-1)*1000); int koeff = cnt < 10 ? cnt : 10; if(cnt < 4) koeff = 0; result *= koeff; return result; }
public override ReadOnlyServiceSettingCollection GetServiceSettings(string phrase, LanguagePair languagePair) { ServiceSettingCollection result = new ServiceSettingCollection(); PrepareProcessing(); foreach (KeyValuePair<LanguagePair, ServiceItemsCollection> kvp in Manager.LanguagePairServiceItems) { if(disabledSourceLanguages.BinarySearch(kvp.Key.From) >= 0) continue; if(disabledTargetLanguages.BinarySearch(kvp.Key.To) >= 0) continue; foreach(ServiceItem si in kvp.Value) { if( (kvp.Key.From == languagePair.From || languagePair.From == Language.Any) && (kvp.Key.To == languagePair.To || languagePair.To == Language.Any || (IncludeMonolingualDictionaryInTranslation && si is MonolingualDictionary) ) ) { foreach(string subject in si.SupportedSubjects) { if(Subjects.BinarySearch(subject) >= 0) { ServiceItemSetting tsetting = new ServiceItemSetting(kvp.Key, subject, si, TranslateOptions.Instance.GetNetworkSetting(si.Service)); result.Add(tsetting); } } } } } return new ReadOnlyServiceSettingCollection(result); }