public IHttpActionResult Post(int contactId, [FromBody] ObjectAttributeDTO objectAttribute) { return(Authorized(token => { var configuration = MpObjectAttributeConfigurationFactory.MyContact(); _objectAttributeService.SaveObjectMultiAttribute(token, contactId, objectAttribute, configuration); return this.Ok(); })); }
public void UpdateSkills(int participantId, List <GoSkills> skills, string token) { MpObjectAttributeConfiguration configuration; if (token == String.Empty) { token = _apiUserService.GetToken(); configuration = MpObjectAttributeConfigurationFactory.Contact(); } else { configuration = MpObjectAttributeConfigurationFactory.MyContact(); } var contactObs = Observable.Start(() => _contactService.GetContactByParticipantId(participantId)); contactObs.Subscribe(con => { var attrs = Observable.Start(() => _objectAttributeService.GetObjectAttributes(token, con.Contact_ID, configuration)); attrs.Subscribe(attr => { var curSk = attr.MultiSelect .FirstOrDefault(kvp => kvp.Value.AttributeTypeId == _configurationWrapper.GetConfigIntValue("AttributeTypeIdSkills")).Value.Attributes .Where(attribute => attribute.Selected).ToList(); var skillsEndDate = SkillsToEndDate(skills, curSk).Select(sk => { sk.EndDate = DateTime.Now; return(sk); }); var addSkills = SkillsToAdd(skills, curSk).ToList(); var allSkills = addSkills.Concat(skillsEndDate).ToList(); var allSkillsObs = allSkills.ToObservable(); try { allSkillsObs.ForEachAsync(skill => { _objectAttributeService.SaveObjectMultiAttribute(token, con.Contact_ID, skill, configuration, true); }); } catch (Exception e) { throw new ApplicationException("Updating skills caused an error"); } }); }); }