public IHttpActionResult Post(int contactId, [FromBody] ObjectAttributeDTO objectAttribute)
 {
     return(Authorized(token =>
     {
         var configuration = MpObjectAttributeConfigurationFactory.MyContact();
         _objectAttributeService.SaveObjectMultiAttribute(token, contactId, objectAttribute, configuration);
         return this.Ok();
     }));
 }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }