public SaveRelationshipResponse SaveRelationshipMap(SaveRelationshipRequest request)
        {
            if (request.RelationshipViewModel.SelectAll == true)
            {
                var distinctRelationTypes = request.RelationshipViewModel.Relationshipentry.Select(c => c.RelationshipType).ToList();

                foreach (var relationType in distinctRelationTypes)
                {
                    var            firstRelation = request.RelationshipViewModel.Relationshipentry.Where(c => c.RelationshipType == relationType).First();
                    BulkOperations operationData = new BulkOperations()
                    {
                        OperationID            = (int)firstRelation.RelatedContactID,
                        OperationType          = (int)BulkOperationTypes.Relationship,
                        SearchCriteria         = request.SelectAllSearchCriteria,
                        AdvancedSearchCriteria = request.AdvancedSearchCritieria,
                        SearchDefinitionID     = null,
                        AccountID    = request.AccountId,
                        UserID       = (int)request.RequestedBy,
                        RoleID       = request.RoleId,
                        RelationType = relationType
                    };
                    InsertBulkOperationRequest bulkOperationRequest = new InsertBulkOperationRequest()
                    {
                        OperationData       = operationData,
                        AccountId           = request.AccountId,
                        RequestedBy         = (int)request.RequestedBy,
                        CreatedOn           = DateTime.Now.ToUniversalTime().AddMinutes(1),
                        RoleId              = request.RoleId,
                        DrillDownContactIds = request.DrillDownContactIds
                    };
                    accountService.InsertBulkOperation(bulkOperationRequest);
                }
            }
            else
            {
                foreach (var entry in request.RelationshipViewModel.Relationshipentry)
                {
                    ContactRelationship contactRelationShip = Mapper.Map <RelationshipEntry, ContactRelationship>(entry);
                    if (request.RelationshipViewModel.SelectAll == false)
                    {
                        bool IsDuplicate = contactRelationshipRepository.IsDuplicateContactRelationship(contactRelationShip);

                        if (IsDuplicate)
                        {
                            throw new UnsupportedOperationException("[|ContactRelationship already exists with|]" + " --" + entry.RelatedContact);
                        }
                    }
                    if (contactRelationShip.Id == 0)
                    {
                        contactRelationShip.CreatedBy = request.UserId;
                        contactRelationShip.CreatedOn = DateTime.Now.ToUniversalTime();
                        contactRelationshipRepository.Insert(contactRelationShip);
                    }

                    else
                    {
                        contactRelationshipRepository.Update(contactRelationShip);
                    }
                }
            }
            unitOfWork.Commit();
            return(new SaveRelationshipResponse());
        }