示例#1
0
        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));
        }
示例#2
0
        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()));
        }