Initial commit: JDE Scoping Tool migration project
Set up repository with legacy .NET Framework 4.8 source (OLD/), new .NET 10 Blazor solution (NEW/), OpenSpec specifications, documentation, and project configuration.
This commit is contained in:
+156
@@ -0,0 +1,156 @@
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Web.Mvc;
|
||||
using DataModel.Models;
|
||||
using DataModel.Process;
|
||||
using DataModel.ViewModels;
|
||||
using WebInterface.Helpers;
|
||||
using WebInterface.Hubs;
|
||||
|
||||
namespace WebInterface.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// JDE search controller
|
||||
/// </summary>
|
||||
[Authorize]
|
||||
public class SearchController : CrudController
|
||||
{
|
||||
// GET: Search
|
||||
public ActionResult Index()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
// GET: Search/GetSearches
|
||||
public JsonNetResult GetSearches()
|
||||
{
|
||||
return new JsonNetResult()
|
||||
{
|
||||
Data = LotFinderDB.GetUserSearches(CurrentUser.Username).OrderByDescending(s => s.StartDT),
|
||||
JsonRequestBehavior = JsonRequestBehavior.AllowGet
|
||||
};
|
||||
}
|
||||
|
||||
// GET: Search/Queue
|
||||
public ActionResult Queue()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
// GET: Search/GetQueue
|
||||
public JsonNetResult GetQueue()
|
||||
{
|
||||
return new JsonNetResult()
|
||||
{
|
||||
Data = LotFinderDB.GetQueuedSearches(),
|
||||
JsonRequestBehavior = JsonRequestBehavior.AllowGet
|
||||
};
|
||||
}
|
||||
|
||||
// GET: Search/Create
|
||||
public ActionResult Create()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
// GET: Search/GetSearch/id
|
||||
public JsonNetResult GetSearch(int? id)
|
||||
{
|
||||
SearchViewModel searchViewModel = null;
|
||||
|
||||
if (id.HasValue)
|
||||
{
|
||||
searchViewModel = new SearchViewModel(LotFinderDB.GetSearch(id.Value));
|
||||
}
|
||||
else
|
||||
{
|
||||
searchViewModel = new SearchViewModel()
|
||||
{
|
||||
UserName = CurrentUser.Username,
|
||||
Status = SearchStatus.New
|
||||
};
|
||||
}
|
||||
|
||||
return new JsonNetResult()
|
||||
{
|
||||
Data = searchViewModel,
|
||||
JsonRequestBehavior = JsonRequestBehavior.AllowGet
|
||||
};
|
||||
}
|
||||
|
||||
// GET: Search/CopySearch/id
|
||||
public JsonNetResult CopySearch(int? id)
|
||||
{
|
||||
SearchViewModel searchViewModel = null;
|
||||
|
||||
if (id.HasValue)
|
||||
{
|
||||
searchViewModel = new SearchViewModel(LotFinderDB.GetSearch(id.Value));
|
||||
}
|
||||
else
|
||||
{
|
||||
searchViewModel = new SearchViewModel()
|
||||
{
|
||||
UserName = CurrentUser.Username
|
||||
};
|
||||
}
|
||||
|
||||
searchViewModel.Status = SearchStatus.New;
|
||||
searchViewModel.UserName = CurrentUser.Username;
|
||||
searchViewModel.SubmitDT = null;
|
||||
searchViewModel.StartDT = null;
|
||||
searchViewModel.EndDT = null;
|
||||
|
||||
return new JsonNetResult()
|
||||
{
|
||||
Data = searchViewModel,
|
||||
JsonRequestBehavior = JsonRequestBehavior.AllowGet
|
||||
};
|
||||
}
|
||||
|
||||
// POST: Search/Save
|
||||
[HttpPost]
|
||||
public JsonNetResult Save(SearchViewModel viewModel)
|
||||
{
|
||||
//Convert view model to standard model
|
||||
Search search = viewModel.ToModel();
|
||||
|
||||
//Save search details to DB
|
||||
int searchID = LotFinderDB.SubmitSearch(search);
|
||||
search.ID = searchID;
|
||||
|
||||
try
|
||||
{
|
||||
//Publish new search
|
||||
SearchUpdate searchUpdate = new SearchUpdate(search);
|
||||
StatusHub.ContextInstance.Value.Clients.All.searchUpdate(searchUpdate);
|
||||
}
|
||||
catch
|
||||
{
|
||||
//Do nothing
|
||||
}
|
||||
|
||||
//Reload session details and return them
|
||||
return new JsonNetResult()
|
||||
{
|
||||
Data = searchID
|
||||
};
|
||||
}
|
||||
|
||||
// GET: Search/GetResults/id
|
||||
public FileStreamResult GetResults(int id)
|
||||
{
|
||||
//Load results from database
|
||||
byte[] data = LotFinderDB.GetSearchResults(id);
|
||||
|
||||
//Convert results to in-memory stream
|
||||
MemoryStream memoryStream = new MemoryStream(data);
|
||||
|
||||
//Return data
|
||||
return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
|
||||
{
|
||||
FileDownloadName = "search_results.xlsx"
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user