//public Task<StatusData<ContactSuggestionResponse>> AddSuggestedContact(AddSuggestContactRequest request)
        //{
        //    return _unitOfWork.Profile.AddSuggestedContact(request);
        //}

        public Task<StatusData<ContactResponse>> UpdateSuggestedContact(UpdateSuggestContactRequest request, SystemSession session)
        {
            //return _unitOfWork.Profile.UpdateSuggestedContact(request);
            return _jUnitOfWork.Profile.UpdateSuggestedContact(request, session);
        }
        public virtual async Task<StatusData<ContactResponse>> UpdateSuggestedContact(
            UpdateSuggestContactRequest request, SystemSession session)
        {
            var chatNetworks = string.Empty;
            if (request.ChatNetworks != null && request.ChatNetworks.Any())
            {
                var sb = new StringBuilder();
                foreach (var chatNetwork in request.ChatNetworks)
                    sb.Append(chatNetwork).Append("|");
                chatNetworks = sb.ToString().Substring(0, sb.Length - 1);
            }

            var customContacts = string.Empty;
            if (request.CustomContacts != null && request.CustomContacts.Any())
            {
                var sb = new StringBuilder();
                foreach (var customContact in request.CustomContacts)
                    sb.Append(customContact).Append("|");
                customContacts = sb.ToString().Substring(0, sb.Length - 1);
            }
            var serviceRequest = new UserContactDetails
            {
                StrChatNetWorks = chatNetworks,
                StrContactCustoms = customContacts,
                Address = request.Address,
                Email = request.Email,
                Fax = request.Fax,
                Mobile = request.Mobile,
                Phone = request.Phone,
                Website = request.Website,
                ContactId = request.ContactId,
                UserId = session.UserId,
                Username = session.UserName,
                Mode = (byte)SystemDbStatus.Updated
            };

            var response =
                await
                    Task.Factory.StartNew(
                        () =>
                            Client.UserService.upsertSuggestContacts(request.TargetUserId, serviceRequest,
                                session.GetSession())).ConfigureAwait(false);

            var result = new StatusData<ContactResponse>
            {
                Status = (SystemDbStatus)response.DbStatus.DbStatusCode,
                Message = response.DbStatus.DbStatusMsg,
                SubStatus = response.DbStatus.DbSubStatusCode
            };
            if (result.Status.IsOperationSuccessful())
            {
                result.Data = new ContactResponse
                {
                    ContactId = request.ContactId,
                    ContactCustoms =
                        string.IsNullOrWhiteSpace(response.CustomContactsCustomIds)
                            ? null
                            : response.CustomContactsCustomIds.Split(new[] { "," }, StringSplitOptions.None)
                                .Select(x => Convert.ToInt64(x))
                                .ToList(),
                    ContactChatNetworks =
                        string.IsNullOrWhiteSpace(response.ContactChatNetworkCustomIds)
                            ? null
                            : response.ContactChatNetworkCustomIds.Split(new[] { "," }, StringSplitOptions.None)
                                .Select(x => Convert.ToInt32(x))
                                .ToList()
                };
            }
            return result;
        }