コード例 #1
0
        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]);
                }
            }
        }
コード例 #2
0
ファイル: ContactsViewModel.cs プロジェクト: Technus/ItemDB
        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>());
                }
            };
        }
コード例 #3
0
        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();
            }
        }
コード例 #4
0
        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);
        }
コード例 #5
0
 internal void ManualSyncContact()
 {
     new ManualSyncContactForm(string.Join("; ", SelectedContacts.Select(x => $"{x.FullName}, {x.Email1Address}"))).ShowDialog();
 }