コード例 #1
0
        /// <summary>
        /// Method which discards changes in Contact, and loads Contact state from database.
        /// </summary>
        /// <param name="contact">Contact which will be reverted.</param>
        public static void Revert(Contact contact)
        {
            if (contact == null) throw new ArgumentNullException("contact");
            if (contact.CompanyId == Guid.Empty ||
                Context.Contacts.Where(c => c.ContactID == contact.ContactID).FirstOrDefault() == null) return;

            Context.Refresh(RefreshMode.StoreWins, contact);
        }
コード例 #2
0
        public ContactsEditor(Contact contact = null)
        {
            InitializeComponent();

            if (contact == null)
                contact = new Contact {ContactID = Guid.NewGuid(), FirstName = "", LastName = ""};

            CurrentContact = contact;
        }
コード例 #3
0
 /// <summary>
 /// Create a new Contact object.
 /// </summary>
 /// <param name="contactID">Initial value of the ContactID property.</param>
 /// <param name="firstName">Initial value of the FirstName property.</param>
 /// <param name="lastName">Initial value of the LastName property.</param>
 public static Contact CreateContact(global::System.Guid contactID, global::System.String firstName, global::System.String lastName)
 {
     Contact contact = new Contact();
     contact.ContactID = contactID;
     contact.FirstName = firstName;
     contact.LastName = lastName;
     return contact;
 }
コード例 #4
0
 /// <summary>
 /// Deprecated Method for adding a new object to the Contacts EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToContacts(Contact contact)
 {
     base.AddObject("Contacts", contact);
 }
コード例 #5
0
        public ObservableCollection<dynamic> GetDefaultMapping()
        {
            _currentMapping = new ObservableCollection<object>();

            var hideProperties = new List<string>
                                     {
                                         "ContactID",
                                         "CompanyId",
                                         "Company",
                                         "CompanyReference",
                                         "HasErrors",
                                         "Item",
                                         "Error",
                                         "EntityState",
                                         "EntityKey"
                                     };

            ObservableCollection<string> fileFields = GetColumns(_currentTable);

            var emptyContact = new Contact();
            PropertyInfo[] contactMembers = emptyContact.GetType().GetProperties();
            foreach (PropertyInfo contactMember in contactMembers)
            {
                if (hideProperties.Contains(contactMember.Name)) continue;

                dynamic field = new ExpandoObject();
                field.CrmField = contactMember.Name;
                field.FileField = "";
                field.FileFields = fileFields;

                _currentMapping.Add(field);
            }

            return _currentMapping;
        }
コード例 #6
0
        private void onImportWorkerOnDoWork(object sender, DoWorkEventArgs e)
        {
            var fields = _currentMapping.Where(f => !string.IsNullOrEmpty(f.FileField));
            if (fields.Count() == 0)
            {
                _importWorker.ReportProgress(100);
                return;
            }

            var records = GetRecords(_currentTable);

            var contactsToSave = new List<Contact>();

            for (int i = 0; i < records.Count; i++)
            {
                var record = records[i];
                var contact = new Contact();
                foreach (var field in fields)
                {
                    var value = (object)((IDictionary<string, object>) record)[field.FileField];
                    value = value is DBNull? "": value;

                    contact.GetType().GetProperty((string) field.CrmField).SetValue(contact,value, null);
                }
                //ContactsManager.Current.Save(contact);

                if (contact.Title == null) contact.Title = string.Empty;
                if (contact.Suffix == null) contact.Suffix = string.Empty;
                if (contact.FirstName == null) contact.FirstName = string.Empty;
                if (contact.LastName == null) contact.LastName = string.Empty;

                contactsToSave.Add(contact);

                _importWorker.ReportProgress(Convert.ToInt32(Math.Round((double) (i + 1)/records.Count*80.0, 0)));
            }

            ContactsManager.Current.Save(contactsToSave);
            _importWorker.ReportProgress(100);
        }
コード例 #7
0
        private void onImportWorkerOnDoWork(object sender, DoWorkEventArgs e)
        {
            var contacts = (ObservableCollection<object>)e.Argument;

            for (int i = 0; i < contacts.Count; i++)
            {
                ContactItem contactItem = (ContactItem)contacts[i];
                var contact = new Contact();
                contact.Title = contactItem.Title;
                contact.FirstName = contactItem.FirstName;
                contact.LastName = contactItem.LastName;
                contact.Suffix = contactItem.Suffix;
                contact.Telephone = contactItem.BusinessTelephoneNumber;
                contact.Fax = contactItem.BusinessFaxNumber;
                contact.Mobile = contactItem.MobileTelephoneNumber;
                contact.HomeTelephone = contactItem.HomeTelephoneNumber;
                contact.Website = contactItem.WebPage;
                contact.EmailAddress = contactItem.Email1Address;
                contact.EmailAddress1 = contactItem.Email2Address;
                contact.EmailAddress2 = contactItem.Email3Address;

                var company = CompaniesManager.Current.LoadCompanies().Where(c => c.Name == contactItem.CompanyName).FirstOrDefault();
                contact.Company = company;

                if (contact.Title == null) contact.Title = string.Empty;
                if (contact.Suffix == null) contact.Suffix = string.Empty;
                if (contact.FirstName == null) contact.FirstName = string.Empty;
                if (contact.LastName == null) contact.LastName = string.Empty;

                ContactsManager.Current.Save(contact);

                _importWorker.ReportProgress(Convert.ToInt32(Math.Round((double)(i + 1) / contacts.Count * 100.0, 0)));
            }
        }
コード例 #8
0
 /// <summary>
 /// Saves changes to the database.
 /// </summary>
 /// <param name="contact"></param>
 public void Save(Contact contact)
 {
     if (contact == null) throw new ArgumentNullException("contact");
     if (contact.ContactID == Guid.Empty ||
         Context.Contacts.Where(c => c.ContactID == contact.ContactID).FirstOrDefault() == null)
     {
         if (contact.ContactID == Guid.Empty) contact.ContactID = Guid.NewGuid();
         Context.Contacts.AddObject(contact);
     }
     Context.SaveChanges();
     RefreshCache(OrderByField);
 }