public PhoneEntries SearchPhonebook(string searchName, string searchNumber, int phonebookId) { var searchNameVal = string.IsNullOrEmpty(searchName) ? string.Empty : searchName; var searchNumberVal = string.IsNullOrEmpty(searchNumber) ? string.Empty : searchNumber; _phonebookContext.ChangeTracker.LazyLoadingEnabled = false; var phonebook = _phonebookContext.Phonebook.Where(ph => ph.Id == phonebookId).FirstOrDefault(); var phoneBookEntries = _phonebookContext.Entries.FromSqlRaw($@"select e.* from entry e join phonebook_entries pe on e.Id = pe.entry_id where pe.phonebook_id = {phonebookId} and ('{searchNameVal}' = '' or name like '%{searchNameVal}%') and ('{searchNumberVal}' = '' or PhoneNumber like '%{searchNumberVal}%')").AsNoTracking().ToList(); var phoneEntries = new PhoneEntries { Id = phonebookId, Entries = phoneBookEntries, Name = phonebook.Name }; return(phoneEntries); }
public PhoneEntries GetPhoneEntries(int userId) { var phonebook = _phonebookContext.Phonebook.Where(ph => ph.UserId == userId).FirstOrDefault(); var phoneBookEntries = _phonebookContext.PhoneBookEntries.Where(pe => pe.Phonebook_id == phonebook.Id).Include(p => p.Entry) .Select(pe => pe.Entry).ToList(); var phoneEntries = new PhoneEntries { Id = phonebook.Id, Entries = phoneBookEntries, Name = phonebook.Name }; return(phoneEntries); }
public PhoneEntries RemoveContact(string searchName, string searchNumber, int phonebookId, int entryId) { _phonebookContext.ChangeTracker.LazyLoadingEnabled = false; var phoneEntry = _phonebookContext.PhoneBookEntries.Where(pe => pe.entry_id == entryId && pe.Phonebook_id == phonebookId).FirstOrDefault(); _phonebookContext.PhoneBookEntries.Remove(phoneEntry); var entry = _phonebookContext.Entries.Where(e => e.Id == entryId).FirstOrDefault(); _phonebookContext.Remove(entry); _phonebookContext.SaveChanges(); var phonebook = _phonebookContext.Phonebook.Where(ph => ph.Id == phonebookId).FirstOrDefault(); IEnumerable <Entry> phoneBookEntries = null; if (!string.IsNullOrEmpty(searchName) || !string.IsNullOrEmpty(searchNumber)) { phoneBookEntries = _phonebookContext.PhoneBookEntries.Where(pe => pe.Phonebook_id == phonebookId).Include(p => p.Entry) .Select(pe => pe.Entry).ToList().Where(e => e.Name.ToLower().Equals(searchName.ToLower()) || e.PhoneNumber.Equals(searchNumber)); } else { phoneBookEntries = _phonebookContext.PhoneBookEntries.Where(pe => pe.Phonebook_id == phonebookId).Include(p => p.Entry) .Select(pe => pe.Entry).ToList(); } var phoneEntries = new PhoneEntries { Id = phonebookId, Entries = phoneBookEntries, Name = phonebook.Name }; return(phoneEntries); }