diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2024-05-18 20:05:10 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2024-05-18 20:05:10 +0300 |
| commit | d91db45c47a1d2d1d050fdafe8f4eb44951a883f (patch) | |
| tree | 1437e1f0f7ea91dae53e59f7f605a3e603ea3926 /Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs | |
| parent | fd061c7cb7f243d562913d496223830bcf83b7a9 (diff) | |
| download | Tango-d91db45c47a1d2d1d050fdafe8f4eb44951a883f.tar.gz Tango-d91db45c47a1d2d1d050fdafe8f4eb44951a883f.zip | |
FSE/RSM MachineService Provides full capability.
Diffstat (limited to 'Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs')
| -rw-r--r-- | Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs | 178 |
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() { |
