File size: 4,993 Bytes
fc06b79
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
@using ContactManagementAPI.Services
@model List<ContactDuplicate>
@{
    ViewData["Title"] = "Find Duplicates";
}

<div class="container mt-4">
    <div class="row mb-4">
        <div class="col-12">
            <h2><i class="fas fa-copy"></i> Potential Duplicate Contacts</h2>
            <p class="text-muted">Automatically detected similar contacts based on name, email, and phone matching</p>
        </div>
    </div>

    @if (Model.Count == 0)
    {
        <div class="alert alert-success" role="alert">
            <i class="fas fa-check-circle"></i> <strong>Great!</strong> No duplicate contacts found.
        </div>
    }
    else
    {
        <div class="alert alert-info" role="alert">
            <i class="fas fa-info-circle"></i> Found <strong>@Model.Count</strong> potential duplicate pair(s).
        </div>

        <div class="row">
            @foreach (var duplicate in Model.OrderByDescending(x => x.SimilarityScore))
            {
                <div class="col-md-6 mb-4">
                    <div class="card shadow-sm border-warning">
                        <div class="card-header bg-warning text-dark">
                            <h5 class="mb-0">
                                Similarity: <span class="badge bg-danger">@($"{(duplicate.SimilarityScore * 100):F0}%")</span>
                            </h5>
                        </div>
                        <div class="card-body">
                            <div class="row">
                                <div class="col-md-6">
                                    <div class="card bg-light">
                                        <div class="card-body">
                                            <h6 class="card-title">Contact 1</h6>
                                            <p class="mb-2">
                                                <strong>@duplicate.Contact1Name</strong>
                                            </p>
                                            <a href="@Url.Action("Details", new { id = duplicate.Contact1Id })" 
                                               class="btn btn-sm btn-outline-primary">
                                                <i class="fas fa-eye"></i> View
                                            </a>
                                            <a href="@Url.Action("Edit", new { id = duplicate.Contact1Id })" 
                                               class="btn btn-sm btn-outline-secondary">
                                                <i class="fas fa-edit"></i> Edit
                                            </a>
                                        </div>
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="card bg-light">
                                        <div class="card-body">
                                            <h6 class="card-title">Contact 2</h6>
                                            <p class="mb-2">
                                                <strong>@duplicate.Contact2Name</strong>
                                            </p>
                                            <a href="@Url.Action("Details", new { id = duplicate.Contact2Id })" 
                                               class="btn btn-sm btn-outline-primary">
                                                <i class="fas fa-eye"></i> View
                                            </a>
                                            <a href="@Url.Action("Edit", new { id = duplicate.Contact2Id })" 
                                               class="btn btn-sm btn-outline-secondary">
                                                <i class="fas fa-edit"></i> Edit
                                            </a>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="alert alert-light mt-3 mb-0">
                                <strong>Action:</strong> Please review these contacts and decide whether to keep or delete one of them.
                            </div>
                        </div>
                    </div>
                </div>
            }
        </div>
    }

    <div class="mt-4">
        <a href="@Url.Action("Dashboard")" class="btn btn-secondary">
            <i class="fas fa-arrow-left"></i> Back to Dashboard
        </a>
    </div>
</div>

@section Scripts {
    <script>
        // Alert user about duplicates on page load
        @if (Model.Count > 0)
        {
            <text>
                // Show notification about duplicates found
                const alertBox = document.querySelector('.alert-info');
                if (alertBox) {
                    alertBox.scrollIntoView({ behavior: 'smooth' });
                }
            </text>
        }
    </script>
}