private Dictionary<int, ContactAttributeTypeDTO> TranslateToAttributeTypeDtos(List<ContactAttribute> mpContactAttributes, List<Attribute> mpAttributes) { var mpFilteredAttributes = mpAttributes.Where(x => x.PreventMultipleSelection == false).ToList(); var attributeTypesDictionary = mpFilteredAttributes .Select(x => new {x.AttributeTypeId, x.AttributeTypeName}) .Distinct() .ToDictionary(mpAttributeType => mpAttributeType.AttributeTypeId, mpAttributeType => new ContactAttributeTypeDTO() { AttributeTypeId = mpAttributeType.AttributeTypeId, Name = mpAttributeType.AttributeTypeName, }); foreach (var mpAttribute in mpFilteredAttributes) { var contactAttribute = new ContactAttributeDTO() { AttributeId = mpAttribute.AttributeId, Name = mpAttribute.Name, SortOrder = mpAttribute.SortOrder, Selected = false, Category = mpAttribute.Category, CategoryDescription = mpAttribute.CategoryDescription }; attributeTypesDictionary[mpAttribute.AttributeTypeId].Attributes.Add(contactAttribute); } foreach (var mpContactAttribute in mpContactAttributes) { if (!attributeTypesDictionary.ContainsKey(mpContactAttribute.AttributeTypeId)) { continue; } var contactAttributeType = attributeTypesDictionary[mpContactAttribute.AttributeTypeId]; var contactAttribute = contactAttributeType.Attributes.First(x => x.AttributeId == mpContactAttribute.AttributeId); contactAttribute.StartDate = mpContactAttribute.StartDate; contactAttribute.EndDate = mpContactAttribute.EndDate; contactAttribute.Notes = mpContactAttribute.Notes; contactAttribute.Selected = true; } return attributeTypesDictionary; }
private static ContactAttribute TranslateMultiToMPAttribute(ContactAttributeDTO contactAttribute, ContactAttributeTypeDTO contactAttributeType) { var mpContactAttribute = new ContactAttribute(); if (contactAttribute == null) { return mpContactAttribute; } mpContactAttribute.AttributeId = contactAttribute.AttributeId; mpContactAttribute.AttributeTypeId = contactAttributeType != null ? contactAttributeType.AttributeTypeId : 0; mpContactAttribute.AttributeTypeName = contactAttributeType != null ? contactAttributeType.Name : string.Empty; mpContactAttribute.StartDate = contactAttribute.StartDate; mpContactAttribute.EndDate = contactAttribute.EndDate; mpContactAttribute.Notes = contactAttribute.Notes; return mpContactAttribute; }
public void SaveContactMultiAttribute(string token, int contactId, ContactAttributeDTO contactAttribute) { var mpContactAttribute = TranslateMultiToMPAttribute(contactAttribute, null); var persistedAttributes = _mpContactAttributeService.GetCurrentContactAttributes(token, contactId, true, contactAttribute.AttributeId); if (persistedAttributes.Count >= 1) { mpContactAttribute.ContactAttributeId = persistedAttributes[0].ContactAttributeId; } SaveAttribute(contactId, mpContactAttribute, token, true); }