public async Task SetRelationshipAsync(BL_Relationship relationship, string userId) { var userProfile = await _repo.GetUserProfile_byIdAsync(userId); var existingRelationship = await _repo.GetRelationship_byIdAsync(userProfile.Relationship_Id); if (existingRelationship != null && existingRelationship.RegisteredPartner_Id != userId) { throw new ApplicationException($"Relationship with id {existingRelationship.Id} for user id {userId} exists but cannot be set since the registered partner is {existingRelationship.RegisteredPartner_Id}"); } //Update relationship.Id = existingRelationship?.Id; relationship.RegisteredPartner_Id = userId; await _repo.SetRelationshipAsync(map.From(relationship)); }
public Relationship From(BL_Relationship e) { if (e == null) { return(null); } return(new Relationship { BeenToCounseler = (e.BeenToCounseler.HasValue ? Enum.Parse <CounselerStatusEnum>(e.BeenToCounseler?.ToString()) : CounselerStatusEnum.Unknown), CurrentWeddingDate = e.CurrentWeddingDate, Id = e.Id, MarriageStatus = (e.MarriageStatus.HasValue ? Enum.Parse <MarriageStatusEnum>(e.MarriageStatus?.ToString()) : MarriageStatusEnum.Unknown), NrOfChildren = e.NrOfChildren, NrOfStepChildren = e.NrOfStepChildren, RegisteredPartner_Id = e.RegisteredPartner_Id, RelationshipStatus = (e.RelationshipStatus.HasValue ? Enum.Parse <RelationshipStatusEnum>(e.RelationshipStatus?.ToString()) : RelationshipStatusEnum.Unknown), }); }