public async Task <IActionResult> SearchActions( string type, int?id, string firstName, string surName, string patronimic, string street, string house, short?apartment, string note, ReaderStatus status, string actn) { List <Reader> readersList; var readers = _context.Readers.Where(r => status.HasFlag(r.Status)); if (type != "Reader") { readers = readers.Where(r => r.Discriminator == type); } if (id.HasValue) { readers = readers.Where(r => r.Id == id); } if (!string.IsNullOrWhiteSpace(firstName)) { readers = readers.Where(r => r.FirstName == firstName); } if (!string.IsNullOrWhiteSpace(surName)) { readers = readers.Where(r => r.SurName == surName); } if (!string.IsNullOrWhiteSpace(patronimic)) { readers = readers.Where(r => r.Patronimic == patronimic); } if (!string.IsNullOrWhiteSpace(street)) { readers = readers.Where(r => r.Street == street); } if (!string.IsNullOrWhiteSpace(house)) { readers = readers.Where(r => r.House == house); } if (apartment.HasValue) { readers = readers.Where(r => r.Apartment == apartment); } if (!string.IsNullOrWhiteSpace(note)) { readers = readers.Where(r => r.Note == note); } ViewData["type"] = type == "Reader" ? typeof(Reader) : type == "Student" ? typeof(Student) : typeof(Worker); if (actn == "activate") { readersList = await readers.Where(r => r.Status == ReaderStatus.Disabled).ToListAsync(); foreach (var r in readersList) { r.Status = ReaderStatus.Enabled; r.LastRegistrationDate = DateTime.Today.ToString("dd.MM.yyyy"); } _context.UpdateRange(readersList); await _context.SaveChangesAsync(); } else if (actn == "restore") { readersList = await readers.Where(r => r.Status == ReaderStatus.Removed).ToListAsync(); foreach (var r in readersList) { r.Drop.Note = $"Відновлений {DateTime.Today.ToString("dd.MM.yyyy")}"; r.Status = ReaderStatus.Disabled; r.LastRegistrationDate = DateTime.Today.ToString("dd.MM.yyyy"); } _context.UpdateRange(readersList); await _context.SaveChangesAsync(); } readersList = await readers.ToListAsync(); return(PartialView("_Readers", readersList)); }
public async Task <IActionResult> Activate( string type, int?id, string firstName, string surName, string patronimic, string street, string house, short?apartment, string lastRegDate, string firstRegDate, string note, ReaderStatus status) { var readers = _context.Readers.Where(r => status.HasFlag(r.Status)); if (type != "Reader") { readers = readers.Where(r => r.Discriminator == type); } if (id.HasValue) { readers = readers.Where(r => r.Id == id); } if (!string.IsNullOrWhiteSpace(firstName)) { readers = readers.Where(r => r.FirstName == firstName); } if (!string.IsNullOrWhiteSpace(surName)) { readers = readers.Where(r => r.SurName == surName); } if (!string.IsNullOrWhiteSpace(patronimic)) { readers = readers.Where(r => r.Patronimic == patronimic); } if (!string.IsNullOrWhiteSpace(street)) { readers = readers.Where(r => r.Street == street); } if (!string.IsNullOrWhiteSpace(house)) { readers = readers.Where(r => r.House == house); } if (apartment.HasValue) { readers = readers.Where(r => r.Apartment == apartment); } /* !todo:Исправить сравнение строк на сравнение дат */ if (!string.IsNullOrWhiteSpace(lastRegDate)) { readers = readers.Where(r => r.LastRegistrationDate == lastRegDate); } if (!string.IsNullOrWhiteSpace(firstRegDate)) { readers = readers.Where(r => r.FirstRegistrationDate == firstRegDate); } /* !todo */ if (!string.IsNullOrWhiteSpace(note)) { readers = readers.Where(r => r.Note == note); } string view = ""; return(PartialView(view, await readers.ToListAsync())); }