using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.EntityFrameworkCore; using EveryThing.Data; using EveryThing.Models; using EveryThing.Models.Transport; using Microsoft.AspNetCore.Authorization; namespace EveryThing.Pages.TransportLoadingOrder { [Authorize(Roles = "Administrator,TransportThingUser")] public class IndexModel : PageModel { private readonly EveryThing.Data.ApplicationDbContext _context; private readonly UserManager _userManager; public IndexModel(EveryThing.Data.ApplicationDbContext context, UserManager userManager) { _context = context; _userManager = userManager; } public IList TransportLoadingOrder { get;set; } public async Task OnGetAsync(string searchString) { ViewData["SearchString"] = searchString; var user = _userManager.GetUserAsync(User).Result; TransportLoadingOrder = await _context.TransportLoadingOrders .Include(t => t.Partner) .Where(x => x.IdCompanyFk == user.IdCompanyFk) .OrderByDescending(x => x.OrderYear).ThenByDescending(x => x.OrderNumber) .ToListAsync(); if (!string.IsNullOrEmpty(searchString)) { TransportLoadingOrder = TransportLoadingOrder.Where(x => x.Company.Title.Contains(searchString) || x.OrderYear + "-" + x.OrderNumber == searchString).ToList(); } } public IActionResult OnDeleteTransportLoadingOrder(int idLoadingOrder) { var user = _userManager.GetUserAsync(User).Result; var successful = true; var error = ""; var transportLoadingOrder = _context.TransportLoadingOrders .Where(x => x.IdCompanyFk == user.IdCompanyFk) .FirstOrDefault(x => x.IdTransportLoadingOrder == idLoadingOrder); if (transportLoadingOrder != null) { var items = _context.TransportLoadingOrderLoadUnloads.Where(x => x.IdTransportLoadingOrderFk == idLoadingOrder).ToList(); for (var i = 0; i < items.Count(); i++) { _context.TransportLoadingOrderLoadUnloads.Remove(items[i]); } _context.TransportLoadingOrders.Remove(transportLoadingOrder); _context.SaveChanges(); } else { successful = false; error = $"Transport loading order with ID: {idLoadingOrder} not found"; } return new JsonResult(new { idLoadingOrder = idLoadingOrder, error = error, successful = successful }); } } }