private bool contactChange = false; //true 绑定联系人改变了 #endregion #region 系统函数 public override async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary <string, object> suspensionState) { Value = (suspensionState.ContainsKey(nameof(Value))) ? suspensionState[nameof(Value)]?.ToString() : parameter?.ToString(); await Task.CompletedTask; await Task.Run(() => { // OnNavigatedToAsync为异步方法,与OnLoaded谁先谁后不一定 把数据从Value中解析出来 string[] arr = Value.Split(','); try { page = int.Parse(arr[0]); siteId = int.Parse(arr[1]); } catch (Exception) { //解析错误,page=1,任务完成跳MainPage,siteId = -1无id新建站点 page = 1; siteId = -1; } if (siteId != -1) { GetEditSite(); //需要id 放这里 SetVS(); } }); //根据vs刷新选中联系人 相当于初始化SelectedContacts 放这才有vs为true的数据 for (int i = 0; i < Contacts.Count; i++) { if (vs[Contacts[i].Id]) { SelectedContacts.Add(Contacts[i]); } } }
public ContactsViewModel(IWorkUnitProvider workUnitProvider) { WorkUnitProvider = workUnitProvider; LoadAllContacts = new SimplerCommand { Action = () => { WorkUnit = WorkUnitProvider.ProvideWorkUnit(); LoadedContacts = new ObservableCollection <Contact>(WorkUnit.Contacts.GetAll()); NotifyChangesMade(); } }; SaveAllContacts = new SimpleCommand { Action = () => { WorkUnit.Save(); LoadedContacts.ToList().ForEach(c => WorkUnit.Reload(c)); NotifyChangesMade(); }, CanExecuteFunc = () => WorkUnit?.IsChanged() ?? false }; OnEditEnding = new SimplerCommand { Action = SaveAllContacts.RaiseCanExecuteChanged }; DeleteSelected = new SimpleCommand { Action = () => { SelectedContacts.ToList().ForEach(c => LoadedContacts.Remove(c)); }, CanExecuteFunc = () => { return(SelectedContacts?.Count > 0); } }; OnSelectionChange = new SimplerCommand <IList> { Action = o => { SelectedContacts = new ObservableCollection <Contact>(o.OfType <Contact>()); } }; }
internal async Task SetBlockForSelectedUsersAsync(bool block) { var contacts = SelectedContacts.ToArray(); using (var database = new DatabaseContext()) { foreach (var contact in contacts) { try { var c = await database.MailContacts.FindAsync(contact.Id); c.IsBlocked = block; contact.IsBlocked = block; } catch (Exception ex) { Logger.Error(ex); } } await database.SaveChangesAsync(); } }
protected void Page_Load(object sender, EventArgs e) { Page.ClientScript.RegisterClientScriptInclude(this.GetType(), "contactselector_script", WebPath.GetPath("js/jquery.watermarkinput.js")); jsObjName = String.IsNullOrEmpty(this.ID) ? "contactSelector_" + selectorID : this.ID; if (SelectedContacts != null && SelectedContacts.Count > 0 && !ShowOnlySelectorContent) { rpt.DataSource = SelectedContacts; rpt.DataBind(); } else { var selector = (ContactSelectorRow)LoadControl(ContactSelectorRow.Location); selector.ObjName = jsObjName; selector.ObjID = jsObjName + "_0"; selector.SelectedContact = null; selector.ShowChangeButton = ShowChangeButton; selector.ShowContactImg = ShowContactImg; selector.ShowDeleteButton = ShowAllDeleteButton ? true : ShowOnlySelectorContent ? false : ShowDeleteButton; selector.ShowAddButton = ShowAddButton; selector.ShowNewCompanyContent = ShowNewCompanyContent; selector.ShowNewContactContent = ShowNewContactContent; selector.DescriptionText = DescriptionText; selector.DeleteContactText = DeleteContactText; selector.AddButtonText = AddButtonText; ph.Controls.Add(selector); } var selectedContacts = JavaScriptSerializer.Serialize(SelectedContacts != null && SelectedContacts.Count > 0 ? SelectedContacts.ConvertAll(item => item.ID) : new List <int>()); var excludedContacts = JavaScriptSerializer.Serialize(ExcludedArrayIDs != null && ExcludedArrayIDs.Count > 0 ? ExcludedArrayIDs : new List <int>()); var script = String.Format( @"<script type='text/javascript'> var {0}= new ASC.CRM.ContactSelector.ContactSelector('{0}', '{1}', {2}, '{3}', '{4}', '{5}', {6}, {7}); {0}.newCompanyTitleWatermark = '{8}'; {0}.newContactFirstNameWatermark = '{9}'; {0}.newContactLastNameWatermark = '{10}'; </script>", jsObjName, Convert.ToInt32(CurrentType), selectedContacts, DescriptionText, DeleteContactText, AddButtonText, excludedContacts, IsInPopup.ToString().ToLower(), CRMContactResource.CompanyName.ReplaceSingleQuote(), CRMContactResource.FirstName.ReplaceSingleQuote(), CRMContactResource.LastName.ReplaceSingleQuote()); Page.ClientScript.RegisterStartupScript(typeof(ContactSelector), Guid.NewGuid().ToString(), script); }
internal void ManualSyncContact() { new ManualSyncContactForm(string.Join("; ", SelectedContacts.Select(x => $"{x.FullName}, {x.Email1Address}"))).ShowDialog(); }