using Data.SeaHavenIndustries; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Microsoft.JSInterop; using SeaHavenIndustries.Data.IRepository; using System.Text.Json; namespace SeaHavenIndustries.Data.Services { public class ContactService : IContactRepository { private readonly ApplicationDbContext _context; public ContactService(ApplicationDbContext context) { _context = context; } public async Task AddContact(Contacts contacts) { _context.ChangeTracker.Clear(); try { var exist = _context.Contacts.Where(w => w.Id == contacts.Id).FirstOrDefault(); if (exist != null) { exist.FirstName = contacts.FirstName; exist.LastName = contacts.LastName; exist.PhoneNumber = contacts.PhoneNumber; exist.Email = contacts.Email; _context.Update(exist); } else { _context.Contacts.Add(contacts); } await _context.SaveChangesAsync(); return "success"; } catch (Exception ex) { return ex.Message; } } public async Task> GetContacts() { var list = await _context.Contacts.ToListAsync(); return list; } public async Task> GetContactsiqueryable() { var list = _context.Contacts; return list; } public async Task GetContactById(int id) { var data = await _context.Contacts.Where(w => w.Id == id).FirstOrDefaultAsync(); return data ?? new Contacts(); } public async Task DeleteContact(int id) { _context.ChangeTracker.Clear(); try { var data = await _context.Contacts.Where(w => w.Id == id).FirstOrDefaultAsync(); if (data != null) { _context.Contacts.Remove(data); } await _context.SaveChangesAsync(); return "success"; } catch (Exception ex) { return ex.Message; } } } }