private void OnTrackActionsActiviated(object o, EventArgs args) { IContactSource source = ServiceManager.SourceManager.ActiveSource as IContactSource; if (source == null) { return; } Contact contact = source.Contact; if (contact == null) { return; } if (source.IsDownloadingAllowed) { this["DownloadTrackAction"].Sensitive = true; } else { this["DownloadTrackAction"].Sensitive = false; } }
public override void Queue() { IContactSource source = ServiceManager.SourceManager.ActiveSource as IContactSource; if (!source.IsDownloadingAllowed) { return; } DBusActivity activity = Contact.DispatchManager.Get <DBusActivity> (Contact, MetadataProviderService.BusName); if (activity != null) { IMetadataProviderService service = activity.GetDBusObject <IMetadataProviderService> (MetadataProviderService.BusName, MetadataProviderService.ObjectPath); if (service != null) { base.Queue(); ThreadAssist.Spawn(delegate { lock (sync) { try { service.DownloadFile(long.Parse(Key.Name), "audio/mpeg"); } catch (Exception e) { Log.Warning(e); } } }); } } }
public async Task <uint> GetContactsCountAsync(IContactSource contactSrc, ServiceContext ctx, string sourceName, string partyGuid = null) { uint cptContact = 0; await Task <uint> .Run(() => { Stopwatch sw = new Stopwatch(); try { var ContactsQuery = contactSrc.GetContactsQuery(ctx, partyGuid); sw.Start(); Console.WriteLine($"Executing data collection query :\n=> Contacts from type 'Courrier' related to {sourceName} ...\n"); foreach (var contact in ContactsQuery) { cptContact++; } ; sw.Stop(); } catch (Exception Ex) { var Innermessage = Ex.InnerException != null ? Ex.InnerException.Message : ""; var stackTrace = Ex.StackTrace != null ? Ex.StackTrace : ""; Console.WriteLine($"[GetContactsCountAsync : {contactSrc.GetType()} {cptContact}] : => \n{Ex.Message}\n=> \n{Innermessage}\n=> {stackTrace}"); } }); return(cptContact); }
private void AddAddressToDictionary(IContactSource contactSrc, string accountId, string inputAddress, DateTime modifiedOn) { var trimmedAddress = inputAddress.ToString().Replace(" ", "").ToLower(); var contactEntry = ProcessAddressToHashmap(accountId, trimmedAddress, modifiedOn); if (BatchAddressAnalyzer.IsDebugMode) { BatchAddressAnalyzer.DebugMessage(String.Format($"[{contactSrc.GetType()}]\nprocessing address ({contactEntry.GetFisrtKnownAddress()}):\n[{inputAddress}]")); } }
public async Task <uint> RetrieveImpactedAccounts(string OutputPath, string partyGuid = null) { uint cptDicrepencies = 0; var getContactCountTasks = new List <Task <uint> >(); _partyContactSrc = new ContactPartySource(); _roleContactSrc = new ContactRoleSource(); if (_partyContactSrc == null || _roleContactSrc == null) { Console.WriteLine("RetrieveImpactedAccounts() : Could not properly setup the Contact sources."); return(cptDicrepencies); } var partyContactSrc = (ContactPartySource)_partyContactSrc; var roleContactSrc = (ContactRoleSource)_roleContactSrc; _swGlobal.Start(); _dcrmConnector.Connect(); // Getting the account attached contacts task var contactsFromPartyTask = partyContactSrc.GetContactsCountAsync(_partyContactSrc, _dcrmConnector.SrvContext, SOURCE_PARTY, partyGuid); // Getting the role attached contacts task var contactsFromRoleTask = roleContactSrc.GetContactsCountAsync(_roleContactSrc, _dcrmConnector.SrvContext, SOURCE_ROLE, partyGuid); // Adding the task to task's list getContactCountTasks.Add(contactsFromPartyTask); getContactCountTasks.Add(contactsFromRoleTask); // We need to wait for all the data collection tasks to be completed before processing the data await System.Threading.Tasks.Task.WhenAll(getContactCountTasks); if (contactsFromPartyTask.Status == TaskStatus.RanToCompletion && contactsFromRoleTask.Status == TaskStatus.RanToCompletion) { cptDicrepencies = await ProcessImpactedAccounts(OutputPath); _swGlobal.Stop(); Console.WriteLine($"Total execution time : {new DateTime(ticks: _swGlobal.ElapsedTicks).ToString("HH: mm:ss.fff")}"); } return(cptDicrepencies); }
private void OnDownloadTrack(object o, EventArgs args) { IContactSource source = ServiceManager.SourceManager.ActiveSource as IContactSource; if (source == null || !source.IsDownloadingAllowed) { return; } foreach (DatabaseTrackInfo track in source.DatabaseTrackModel.SelectedItems) { TelepathyDownloadKey key = new TelepathyDownloadKey(ContactTrackInfo.From(track)); TelepathyDownload download = TelepathyService.DownloadManager.DownloadManager.Get(key); if (download == null) { TelepathyService.DownloadManager.DownloadManager.Queue( new TelepathyDownload(key) ); } } }
public ContactMapper(IContactSource contactSrc, string accountId, string inputAddress, DateTime modifiedOn) { _contactSrc = contactSrc; AddAddressToDictionary(contactSrc, accountId, inputAddress, modifiedOn); }