Ejemplo n.º 1
0
        private void UpdateChildSponsorship(TripApplicationDto dto)
        {
            if (!RequireSponsoredChild(dto.PageFive))
            {
                return;
            }
            var childId = GetChildId(dto,
                                     (child) =>
            {
                try
                {
                    return(_contactService.CreateContactForSponsoredChild(child.FirstName, child.LastName, child.Town, child.IdNumber));
                }
                catch (ApplicationException e)
                {
                    _logger.Error("Unable to create the sponsored child: " + e.Message);
                    return(-1);
                }
            });

            if (childId == -1)
            {
                return;
            }

            // Check if relationship exists...
            var myRelationships = _contactRelationshipService.GetMyCurrentRelationships(dto.ContactId);
            var rel             = myRelationships.Where(r => r.RelationshipID == _configurationWrapper.GetConfigIntValue("SponsoredChild") && r.RelatedContactID == childId);

            if (rel.Any())
            {
                return;
            }
            // Update the relationship
            var relationship = new MpRelationship
            {
                RelationshipID   = _configurationWrapper.GetConfigIntValue("SponsoredChild"),
                RelatedContactID = childId,
                StartDate        = DateTime.Today
            };

            _contactRelationshipService.AddRelationship(relationship, dto.ContactId);
        }