/// <summary> /// Get a particular field option by passing its FieldValueOptionId. /// </summary> /// <param name="fieldValueOptionId"></param> /// <returns></returns> public FieldValueOption GetFieldValueOption(int fieldValueOptionId) { var db = ObjectContextFactory.Create(); CustomFieldValueOptionsDb customFieldsValueOptionDb = db.CustomFieldValueOptions.Where(c => c.CustomFieldValueOptionID == fieldValueOptionId).FirstOrDefault(); FieldValueOption fieldValueOption = new FieldValueOption(); if (customFieldsValueOptionDb != null) { fieldValueOption = Mapper.Map <CustomFieldValueOptionsDb, FieldValueOption>(customFieldsValueOptionDb); } return(fieldValueOption); }
/// <summary> /// Persists the custom field value options. /// </summary> /// <param name="customField">The custom field.</param> /// <param name="customFieldDb">The custom field database.</param> /// <param name="db">The database.</param> private void PersistCustomFieldValueOptions(CustomField customField, FieldsDb customFieldDb, CRMDb db) { foreach (FieldValueOption customFieldValueOption in customField.ValueOptions.Where(v => v.Id == 0)) { //valueOptionDb = customFieldDb.CustomFieldValueOptions.Where(c => c.CustomFieldValueOptionID == customFieldValueOption.Id).FirstOrDefault(); CustomFieldValueOptionsDb valueOptionDb = Mapper.Map <FieldValueOption, CustomFieldValueOptionsDb>(customFieldValueOption); } IList <int> customFieldValueOptionIds = customField.ValueOptions.Where(c => c.Id > 0).Select(c => c.Id).ToList(); var unMapCustomValueOptions = db.CustomFieldValueOptions.Where(cc => !customFieldValueOptionIds.Contains(cc.CustomFieldValueOptionID) && cc.CustomFieldID == customField.Id && cc.IsDeleted == false) .Select(cc => cc).Distinct().ToList(); foreach (CustomFieldValueOptionsDb customFieldValueOptionMapDb in unMapCustomValueOptions) { customFieldValueOptionMapDb.IsDeleted = true; } }