aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs')
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs178
1 files changed, 168 insertions, 10 deletions
diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs
index cf03b367c..9df3a2d11 100644
--- a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs
+++ b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs
@@ -27,6 +27,7 @@ using System.Data.Entity;
using static Tango.MachineService.Controllers.FSEController;
using Tango.MachineService.Models;
using Tango.BL.Enumerations;
+using Tango.BL.DTO;
namespace Tango.MachineService.Controllers
{
@@ -70,7 +71,7 @@ namespace Tango.MachineService.Controllers
var password = hash.Encrypt(request.Password);
- using (var db = ObservablesContextHelper.CreateContext())
+ using (var db = ObservablesWebContext.CreateContext())
{
user = new UserBuilder(db).Set(x => x.Email.ToLower() == request.Email.ToLower() && x.Password == password).WithRolesAndPermissions().WithDeleted().Build();
@@ -124,6 +125,163 @@ namespace Tango.MachineService.Controllers
}
[HttpPost]
+ public GetUserResponse GetUser(GetUserRequest request)
+ {
+ using (var db = ObservablesWebContext.CreateContext())
+ {
+ var user = new UserBuilder(db).Set(x => !x.Deleted && x.Email.ToLower() == request.Email.ToLower())
+ .WithOrganization()
+ .WithRolesAndPermissions()
+ .Build();
+
+ if (user == null) throw new AuthenticationException("User not found.");
+
+ var userDTO = UserDTO.FromObservable(user);
+
+ return new GetUserResponse() { User = userDTO };
+ }
+ }
+
+ [HttpPost]
+ public GetMachineResponse GetMachine(GetMachineRequest request)
+ {
+ using (var db = ObservablesWebContext.CreateContext())
+ {
+ Machine machine = null;
+
+ if (request.GetExtendedInfo)
+ {
+ machine = new MachineBuilder(db)
+ .Set(x => (request.AllowAllMachines || x.OrganizationGuid == request.OrganizationGuid) && x.SerialNumber == request.SerialNumber)
+ .WithOrganization()
+ .WithVersion()
+ .WithSpools()
+ .WithConfiguration().Build();
+ }
+ else
+ {
+ machine = new MachineBuilder(db)
+ .Set(x => (request.AllowAllMachines || x.OrganizationGuid == request.OrganizationGuid) && x.SerialNumber == request.SerialNumber)
+ .WithOrganization()
+ .Build();
+ }
+
+ if (machine != null)
+ {
+ return new GetMachineResponse()
+ {
+ Machine = MachineDTO.FromObservable(machine)
+ };
+ }
+
+ return new GetMachineResponse();
+ }
+ }
+
+ [HttpPost]
+ public GetEventTypesResponse GetEventTypes(GetEventTypesRequest request)
+ {
+ GetEventTypesResponse response = new GetEventTypesResponse();
+
+ using (ObservablesContext db = ObservablesWebContext.CreateContext())
+ {
+ var eventTypes = db.EventTypes.ToList();
+ response.EventTypes = eventTypes.Select(x => EventTypeDTO.FromObservable(x)).ToList();
+ }
+
+ return response;
+ }
+
+ [HttpPost]
+ public GetProceduresResponse GetProcedures(GetProceduresRequest request)
+ {
+ GetProceduresResponse response = new GetProceduresResponse();
+
+ using (ObservablesContext db = ObservablesWebContext.CreateContext())
+ {
+ var select = db.PublishedProcedureProjects
+ .Where(x => x.IsVisible || !request.GetOnlyVisible)
+ .Include(x => x.PublishedProcedureProjectsVersions)
+ .Select(x => new
+ {
+ Project = x,
+ LatestVersion = x.PublishedProcedureProjectsVersions.OrderByDescending(v => v.Version).FirstOrDefault()
+ }).ToList();
+
+ List<PublishedProcedureProject> projects = new List<PublishedProcedureProject>();
+
+ foreach (var p in select)
+ {
+ PublishedProcedureProject project = p.Project;
+ projects.Add(project);
+ }
+
+ response.Projects = projects.Select(x => PublishedProcedureProjectDTO.FromObservable(x)).ToList();
+ }
+
+ return response;
+ }
+
+ [HttpPost]
+ public GetTangoVersionsResponse GetTangoVersions(GetTangoVersionsRequest request)
+ {
+ GetTangoVersionsResponse response = new GetTangoVersionsResponse();
+
+ using (ObservablesContext db = ObservablesWebContext.CreateContext())
+ {
+ var tangoVersions = db.TangoVersions.ToList().OrderByDescending(x => Version.Parse(x.Version)).ToList();
+
+ response.Versions = tangoVersions.Select(x => TangoVersionDTO.FromObservable(x)).ToList();
+ }
+
+ return response;
+ }
+
+ [HttpPost]
+ public GetTechComponentsResponse GetTechComponents(GetTechComponentsRequest request)
+ {
+ GetTechComponentsResponse response = new GetTechComponentsResponse();
+
+ using (var db = ObservablesWebContext.CreateContext())
+ {
+ if (request.Blowers)
+ {
+ response.Blowers = db.HardwareBlowerTypes.ToList().Select(x => HardwareBlowerTypeDTO.FromObservable(x)).ToList();
+ }
+ if (request.Controllers)
+ {
+ response.Controllers = db.TechControllers.ToList().Select(x => TechControllerDTO.FromObservable(x)).ToList();
+ }
+ if (request.Dispensers)
+ {
+ response.Dispensers = db.TechDispensers.ToList().Select(x => TechDispenserDTO.FromObservable(x)).ToList();
+ }
+ if (request.Heaters)
+ {
+ response.Heaters = db.TechHeaters.ToList().Select(x => TechHeaterDTO.FromObservable(x)).ToList();
+ }
+ if (request.IOs)
+ {
+ response.IOs = db.TechIos.ToList().Select(x => TechIoDTO.FromObservable(x)).ToList();
+ }
+ if (request.Monitors)
+ {
+ response.Monitors = db.TechMonitors.ToList().Select(x => TechMonitorDTO.FromObservable(x)).ToList();
+ }
+ if (request.Motors)
+ {
+ response.Motors = db.HardwareMotorTypes.ToList().Select(x => HardwareMotorTypeDTO.FromObservable(x)).ToList();
+ }
+ if (request.Valves)
+ {
+ response.Valves = db.TechValves.ToList().Select(x => TechValveDTO.FromObservable(x)).ToList();
+ }
+ }
+
+ return response;
+ }
+
+ [HttpPost]
[JwtTokenFilter]
public BugReportingInfoResponse GetBugReportInfo(BugReportingInfoRequest request)
{
@@ -141,7 +299,7 @@ namespace Tango.MachineService.Controllers
{
DownloadTangoVersionResponse response = new DownloadTangoVersionResponse();
- using (ObservablesContext db = ObservablesContextHelper.CreateContext())
+ using (ObservablesContext db = ObservablesWebContext.CreateContext())
{
var tangoVersion = db.TangoVersions.SingleOrDefault(x => x.Guid == request.TangoVersionGuid);
@@ -198,7 +356,7 @@ namespace Tango.MachineService.Controllers
{
CheckForUpdatesResponse response = new CheckForUpdatesResponse();
- using (ObservablesContext db = ObservablesContextHelper.CreateContext())
+ using (ObservablesContext db = ObservablesWebContext.CreateContext())
{
var versions = db.FseVersions.ToList().Where(x => x.BuildVariant == request.Build.ToInt32()).ToList();
@@ -254,7 +412,7 @@ namespace Tango.MachineService.Controllers
{
User user;
- using (ObservablesContext db = ObservablesContextHelper.CreateContext())
+ using (ObservablesContext db = ObservablesWebContext.CreateContext())
{
user = db.Users.Include(x => x.Contact).SingleOrDefault(x => x.Guid == request.UserGuid);
@@ -295,7 +453,7 @@ namespace Tango.MachineService.Controllers
{
User user;
- using (ObservablesContext db = ObservablesContextHelper.CreateContext())
+ using (ObservablesContext db = ObservablesWebContext.CreateContext())
{
user = db.Users.Include(x => x.Contact).SingleOrDefault(x => x.Email.ToLower() == request.Email.ToLower());
@@ -344,7 +502,7 @@ namespace Tango.MachineService.Controllers
[HttpPost]
public LatestVersionResponse GetLatestVersion(LatestVersionRequest request)
{
- using (ObservablesContext db = ObservablesContextHelper.CreateContext())
+ using (ObservablesContext db = ObservablesWebContext.CreateContext())
{
var version = db.FseVersions.ToList().Where(x => x.BuildVariant == request.Build.ToInt32()).OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault();
return new LatestVersionResponse() { Version = version != null ? version.Version : "0.0.0.0" };
@@ -357,15 +515,15 @@ namespace Tango.MachineService.Controllers
{
UploadVersionResponse response = new UploadVersionResponse();
- using (ObservablesContext db = ObservablesContextHelper.CreateContext())
+ using (ObservablesContext db = ObservablesWebContext.CreateContext())
{
String userID = RequestToken.Object.UserGuid;
var user = new UserBuilder(db).Set(userID).WithRolesAndPermissions().Build();
if (user != null && user.HasPermission(Permissions.PublishMachineStudioVersions))
-
-{
+
+ {
var latestVersion = db.FseVersions.ToList().Where(x => x.BuildVariant == request.Build.ToInt32()).ToList().OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault();
Version local_version = Version.Parse(request.Version);
@@ -415,7 +573,7 @@ namespace Tango.MachineService.Controllers
{
_pendingUploads.RemoveAll(x => x.Token == upload.Token);
- using (ObservablesContext db = ObservablesContextHelper.CreateContext())
+ using (ObservablesContext db = ObservablesWebContext.CreateContext())
{
db.FseVersions.Add(new FseVersion()
{