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;
            }
        }
Beispiel #2
0
        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);
                            }
                        }
                    });
                }
            }
        }
Beispiel #3
0
        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);
 }