public IHttpActionResult Post(int contactId, [FromBody] ObjectAttributeDTO objectAttribute) { return(Authorized(token => { var configuration = MpObjectAttributeConfigurationFactory.MyContact(); _objectAttributeService.SaveObjectMultiAttribute(token, contactId, objectAttribute, configuration); return this.Ok(); })); }
private Dictionary <int, ObjectAttributeTypeDTO> TranslateToAttributeTypeDtos(List <MpObjectAttribute> mpObjectAttributes, List <MpAttribute> 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 ObjectAttributeTypeDTO() { AttributeTypeId = mpAttributeType.AttributeTypeId, Name = mpAttributeType.AttributeTypeName }); foreach (var mpAttribute in mpFilteredAttributes) { var objectAttribute = new ObjectAttributeDTO() { AttributeId = mpAttribute.AttributeId, Name = mpAttribute.Name, Description = mpAttribute.Description, SortOrder = mpAttribute.SortOrder, Selected = false, Category = mpAttribute.Category, CategoryDescription = mpAttribute.CategoryDescription, EndDate = mpAttribute.EndDate }; attributeTypesDictionary[mpAttribute.AttributeTypeId].Attributes.Add(objectAttribute); } foreach (var mpObjectAttribute in mpObjectAttributes) { if (!attributeTypesDictionary.ContainsKey(mpObjectAttribute.AttributeTypeId)) { continue; } var objectAttributeType = attributeTypesDictionary[mpObjectAttribute.AttributeTypeId]; // Is the attribute ID in the collection (if not, was most likely end dated) if (!objectAttributeType.Attributes.Exists(x => x.AttributeId == mpObjectAttribute.AttributeId)) { continue; } var objectAttribute = objectAttributeType.Attributes.First(x => x.AttributeId == mpObjectAttribute.AttributeId); objectAttribute.StartDate = mpObjectAttribute.StartDate; objectAttribute.EndDate = mpObjectAttribute.EndDate; objectAttribute.Notes = mpObjectAttribute.Notes; objectAttribute.Selected = true; } return(attributeTypesDictionary); }
private static MpObjectAttribute TranslateMultiToMPAttribute(ObjectAttributeDTO objectAttribute, ObjectAttributeTypeDTO objectAttributeType) { var mpObjectAttribute = new MpObjectAttribute(); if (objectAttribute == null) { return(mpObjectAttribute); } mpObjectAttribute.AttributeId = objectAttribute.AttributeId; mpObjectAttribute.AttributeTypeId = objectAttributeType != null ? objectAttributeType.AttributeTypeId : 0; mpObjectAttribute.AttributeTypeName = objectAttributeType != null ? objectAttributeType.Name : string.Empty; mpObjectAttribute.StartDate = objectAttribute.StartDate; mpObjectAttribute.EndDate = objectAttribute.EndDate; mpObjectAttribute.Notes = objectAttribute.Notes; return(mpObjectAttribute); }
public void SaveObjectMultiAttribute(string token, int objectId, ObjectAttributeDTO objectAttribute, MpObjectAttributeConfiguration configuration, bool parallel) { objectAttribute.StartDate = ConvertToServerDate(objectAttribute.StartDate); if (objectAttribute.EndDate != null) { objectAttribute.EndDate = ConvertToServerDate(objectAttribute.EndDate.Value); } var mpObjectAttribute = TranslateMultiToMPAttribute(objectAttribute, null); var persistedAttributes = _mpObjectAttributeService.GetCurrentObjectAttributes(token, objectId, configuration, objectAttribute.AttributeId); if (persistedAttributes.Count >= 1) { mpObjectAttribute.ObjectAttributeId = persistedAttributes[0].ObjectAttributeId; } SaveAttribute(objectId, mpObjectAttribute, token, configuration, parallel); }
private ObjectAttributeDTO ConvertToMultiAttribute(List <MpAttribute> mpAttributes, int attributeId, bool selected) { var mpAttribute = mpAttributes.First(x => x.AttributeId == attributeId); var groupAttribute = new ObjectAttributeDTO() { AttributeId = mpAttribute.AttributeId, Category = mpAttribute.Category, CategoryDescription = mpAttribute.CategoryDescription, Description = mpAttribute.Description, Selected = selected, StartDate = DateTime.Today, EndDate = null, Notes = string.Empty, Name = mpAttribute.Name }; return(groupAttribute); }