Beispiel #1
0
        /// <summary>
        /// Persists the custom fields.
        /// </summary>
        /// <param name="customFieldSection">The custom field section.</param>
        /// <param name="sectionDb">The section database.</param>
        /// <param name="db">The database.</param>
        private void PersistCustomFields(CustomFieldSection customFieldSection, CustomFieldSectionDb sectionDb, CRMDb db)
        {
            IList <int> customFieldIds    = customFieldSection.CustomFields.Where(c => c.Id > 0).Select(c => c.Id).ToList();
            var         unMapCustomFields = db.Fields.Where(cc => !customFieldIds.Contains(cc.FieldID) &&
                                                            cc.CustomFieldSectionID == customFieldSection.Id && cc.StatusID != (short?)FieldStatus.Deleted)
                                            .Select(cc => cc).Distinct().ToList();

            foreach (FieldsDb customFieldMapDb in unMapCustomFields)
            {
                customFieldMapDb.StatusID = (short?)FieldStatus.Deleted;
            }
        }
Beispiel #2
0
        /// <summary>
        /// Persists the custom field sections.
        /// </summary>
        /// <param name="customFieldTab">The custom field tab.</param>
        /// <param name="customFieldTabDb">The custom field tab database.</param>
        /// <param name="db">The database.</param>
        private void PersistCustomFieldSections(CustomFieldTab customFieldTab, CustomFieldTabDb customFieldTabDb, CRMDb db)
        {
            IEnumerable <CustomFieldSectionDb> customFieldSectionsDb = customFieldTabDb.CustomFieldSections.Where(c => c.TabID == customFieldTab.Id).ToList();

            foreach (CustomFieldSection customFieldSection in customFieldTab.Sections)
            {
                CustomFieldSectionDb customFieldSectionDb = customFieldSection.Id == 0 ?
                                                            Mapper.Map <CustomFieldSection, CustomFieldSectionDb>(customFieldSection) :
                                                            customFieldSectionsDb.Where(c => c.CustomFieldSectionID == customFieldSection.Id).FirstOrDefault();
                PersistCustomFields(customFieldSection, customFieldSectionDb, db);
            }

            IList <int> customFieldSectionIds    = customFieldTab.Sections.Where(c => c.Id > 0).Select(c => c.Id).ToList();
            var         unMapCustomFieldSections = db.CustomFieldSections.Where(a => !customFieldSectionIds.Contains(a.CustomFieldSectionID) &&
                                                                                a.StatusID != (short)CustomFieldSectionStatus.Deleted && a.TabID == customFieldTab.Id);

            foreach (CustomFieldSectionDb customFieldSectionMapDb in unMapCustomFieldSections)
            {
                db.CustomFieldSections.Remove(customFieldSectionMapDb);
            }
        }