public static void Process(EMailAccountSyncFilter filter, List <EMailSyncAccount> accounts, Object uid, string screenid) { //Check that process is singleton foreach (RowTaskInfo info in PXLongOperation.GetTaskList()) { if (Object.Equals(uid, info.NativeKey)) { continue; } PXLongRunStatus status = PXLongOperation.GetStatus(info.NativeKey); if (status != PXLongRunStatus.InProcess) { continue; } string company = PXLogin.ExtractCompany(info.User); string screen = (info.Screen ?? String.Empty).Replace(".", ""); if (screen == screenid && company == PXAccess.GetCompanyName()) { throw new PXException(ErrorMessages.PrevOperationNotCompleteYet); } } EmailsSyncMaint graph = CreateInstance <EmailsSyncMaint>(); using (new PXUTCTimeZoneScope()) { graph.ProcessInternal(new ProcessingContext(filter, accounts, graph.GetPolicies())); } }
public EmailsSyncMaint() { Object uid = this.UID; string screenid = PXSiteMap.CurrentScreenID; EMailAccountSyncFilter currentFilter = Filter.Current; SelectedItems.SetProcessDelegate(delegate(List <EMailSyncAccount> accounts) { Process(currentFilter, accounts, uid, screenid); }); SelectedItems.SetProcessCaption(ActionsMessages.Process); SelectedItems.SetProcessAllCaption(ActionsMessages.ProcessAll); SelectedItems.SetSelected <EMailSyncAccount.selected>(); OperationLog.AllowInsert = false; OperationLog.AllowUpdate = false; OperationLog.AllowDelete = false; PXUIFieldAttribute.SetEnabled(CurrentItem.Cache, null, true); ResetContacts.SetEnabled(false); ResetTasks.SetEnabled(false); ResetEvents.SetEnabled(false); ResetEmails.SetEnabled(false); this.FieldVerifying.AddHandler(typeof(EMailSyncAccount), typeof(EMailSyncAccount.contactsExportDate).Name + "_Date", EMailSyncAccount_ContactsExportDate_FieldVerifying); this.FieldVerifying.AddHandler(typeof(EMailSyncAccount), typeof(EMailSyncAccount.tasksExportDate).Name + "_Date", EMailSyncAccount_TasksExportDate_FieldVerifying); this.FieldVerifying.AddHandler(typeof(EMailSyncAccount), typeof(EMailSyncAccount.eventsExportDate).Name + "_Date", EMailSyncAccount_EventsExportDate_FieldVerifying); this.FieldVerifying.AddHandler(typeof(EMailSyncAccount), typeof(EMailSyncAccount.emailsExportDate).Name + "_Date", EMailSyncAccount_EmailsExportDate_FieldVerifying); }
public ProcessingContext(EMailAccountSyncFilter filter, List <EMailSyncAccount> accounts, Dictionary <string, EMailSyncPolicy> policies) { Filter = filter; Accounts = accounts; Policies = policies; Exceptions = new Dictionary <int, List <string> >(); }
protected virtual IEnumerable selectedItems() { EMailAccountSyncFilter filter = Filter.Current; BqlCommand cmd = SelectedItems.View.BqlSelect; if (filter != null && filter.ServerID != null) { cmd = cmd.WhereAnd <Where <EMailSyncAccount.serverID, Equal <Current <EMailAccountSyncFilter.serverID> > > >(); } if (filter != null && !String.IsNullOrEmpty(filter.PolicyName)) { cmd = cmd.WhereAnd <Where <EMailSyncAccount.policyName, Equal <Current <EMailAccountSyncFilter.policyName> > > >(); } int totalRows = 0; int startRow = PXView.StartRow; PXView view = new PXView(this, false, cmd); view.Clear( ); foreach (PXResult <EMailSyncAccount, EMailSyncServer, EPEmployee, Contact> item in view.Select(PXView.Currents, PXView.Parameters, PXView.Searches, PXView.SortColumns, PXView.Descendings, PXView.Filters, ref startRow, PXView.MaximumRows, ref totalRows)) { Contact contact = item; EMailSyncAccount account = item; account.Address = (contact != null ? contact.EMail : null) ?? account.Address; //SelectedItems.Cache.SetStatus(account, PXEntryStatus.Notchanged); yield return(item); } }
protected IEnumerable reset(PXAdapter adapter) { EMailAccountSyncFilter filter = Filter.Current; EMailSyncAccount account = SelectedItems.Current; if (filter == null || account == null) { return(adapter.Get()); } EMailSyncAccount accountCopy = (EMailSyncAccount)SelectedItems.Cache.CreateCopy(account); accountCopy.ContactsExportDate = null; accountCopy.ContactsExportFolder = null; accountCopy.ContactsImportDate = null; accountCopy.ContactsImportFolder = null; accountCopy.EmailsExportDate = null; accountCopy.EmailsExportFolder = null; accountCopy.EmailsImportDate = null; accountCopy.EmailsImportFolder = null; accountCopy.EventsExportDate = null; accountCopy.EventsExportFolder = null; accountCopy.EventsImportDate = null; accountCopy.EventsImportFolder = null; accountCopy.TasksExportDate = null; accountCopy.TasksExportFolder = null; accountCopy.TasksImportDate = null; accountCopy.TasksImportFolder = null; PXCache cache = this.Caches[typeof(EMailSyncAccount)]; cache.Update(accountCopy); cache.Persist(PXDBOperation.Update); SelectedItems.Cache.ClearQueryCache(); SelectedItems.View.Clear(); SelectedItems.Cache.Clear(); CurrentItem.View.RequestRefresh(); SelectedItems.View.RequestRefresh(); return(adapter.Get()); }
public EmailsSyncMaint() { Object uid = this.UID; string screenid = PXSiteMap.CurrentScreenID; EMailAccountSyncFilter currentFilter = Filter.Current; SelectedItems.SetProcessDelegate(delegate(List <EMailSyncAccount> accounts) { Process(currentFilter, accounts, uid, screenid); }); SelectedItems.SetProcessCaption(ActionsMessages.Process); SelectedItems.SetProcessAllCaption(ActionsMessages.ProcessAll); SelectedItems.SetSelected <EMailSyncAccount.selected>(); OperationLog.AllowInsert = false; OperationLog.AllowUpdate = false; OperationLog.AllowDelete = false; }
protected IEnumerable clearLog(PXAdapter adapter) { EMailAccountSyncFilter filter = Filter.Current; EMailSyncAccount account = SelectedItems.Current; if (filter == null || account == null) { return(adapter.Get()); } PXDatabase.Delete <EMailSyncLog>( new PXDataFieldRestrict <EMailSyncLog.address>(account.Address), new PXDataFieldRestrict <EMailSyncLog.serverID>(account.ServerID)); OperationLog.View.RequestRefresh(); OperationLog.View.Clear(); return(adapter.Get()); }
protected IEnumerable resetWarning(PXAdapter adapter) { EMailAccountSyncFilter filter = Filter.Current; EMailSyncAccount account = SelectedItems.Current; if (filter == null || account == null) { return(adapter.Get()); } PXDatabase.Update <EMailSyncAccount>( new PXDataFieldAssign <EMailSyncAccount.hasErrors>(false), new PXDataFieldRestrict <EMailSyncAccount.serverID>(account.ServerID), new PXDataFieldRestrict <EMailSyncAccount.employeeID>(account.EmployeeID)); SelectedItems.View.RequestRefresh(); SelectedItems.View.Clear(); return(adapter.Get()); }
protected IEnumerable resetTasks(PXAdapter adapter) { EMailAccountSyncFilter filter = Filter.Current; EMailSyncAccount account = CurrentItem.Current; if (filter == null || account == null) { return(adapter.Get()); } PXLongOperation.StartOperation(this, delegate() { foreach (var result in TasksReferences .Select(account.TasksExportDate ?? new DateTime(1900, 1, 1)) .RowCast <EMailSyncReference>()) { Caches[typeof(EMailSyncReference)].Delete(result); } Caches[typeof(EMailSyncReference)].Persist(PXDBOperation.Delete); EMailSyncAccount accountCopy = (EMailSyncAccount)CurrentItem.Cache.CreateCopy(account); ToDefault(accountCopy); accountCopy.TasksExportDate = account.TasksExportDate; accountCopy.TasksExportFolder = null; accountCopy.TasksImportDate = account.TasksImportDate; accountCopy.TasksImportFolder = null; accountCopy.IsReset = true; Caches[typeof(EMailSyncAccount)].Update(accountCopy); Caches[typeof(EMailSyncAccount)].Persist(PXDBOperation.Update); }); ClearViews(); return(adapter.Get()); }