From bcfa6fd338876038d5ba14528b331c90d80e5ce0 Mon Sep 17 00:00:00 2001 From: Marcel Nellesen <nellesen@itc.rwth-aachen.de> Date: Wed, 20 Jan 2021 07:40:33 +0100 Subject: [PATCH] Update: Owner of a project can be contacted (coscine/issues#1202) --- src/Pid/Controllers/PidController.cs | 23 +++++++++++++++++++---- src/Pid/Pid.csproj | 4 ++-- src/Pid/packages.config | 2 +- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/Pid/Controllers/PidController.cs b/src/Pid/Controllers/PidController.cs index af523e6..4aeaa69 100644 --- a/src/Pid/Controllers/PidController.cs +++ b/src/Pid/Controllers/PidController.cs @@ -24,6 +24,7 @@ namespace Coscine.Api.Pid.Controllers public class PidController : Controller { private readonly ResourceModel _resourceModel; + private readonly ProjectModel _projectModel; private readonly IConfiguration _configuration; private readonly Emitter _emitter; @@ -35,6 +36,7 @@ namespace Coscine.Api.Pid.Controllers _configuration = Program.Configuration; _emitter = new Emitter(this._configuration); _resourceModel = new ResourceModel(); + _projectModel = new ProjectModel(); } /// <summary> @@ -46,6 +48,7 @@ namespace Coscine.Api.Pid.Controllers public IActionResult SendMailToOwner([FromBody] MessageObject messageObject) { var resource = _resourceModel.GetById(new Guid(messageObject.Guid)); + var project = _projectModel.GetById(new Guid(messageObject.Guid)); var user = new User() { DisplayName = messageObject.Name, @@ -53,19 +56,31 @@ namespace Coscine.Api.Pid.Controllers }; var placeholder = new JObject() { - ["resourceName"] = resource.DisplayName, ["requesterName"] = messageObject.Name, ["requesterMail"] = messageObject.Email, ["requestMessage"] = messageObject.Message, ["pid"] = messageObject.Pid }; - _emitter.EmitPIDOwnerContact(new PIDEventArgs(_configuration) + + PIDEventArgs pidEventArgs = new PIDEventArgs(_configuration) { Requester = user, - Resource = resource, SentCopy = messageObject.SendCopy, Placeholder = placeholder - }); + }; + + if (resource != null) + { + placeholder["resourceName"] = resource.DisplayName; + pidEventArgs.Resource = resource; + } + else + { + placeholder["projectName"] = project.DisplayName; + pidEventArgs.Project = project; + } + + _emitter.EmitPIDOwnerContact(pidEventArgs); return Json(new JObject { ["status"] = "ok" }); } } diff --git a/src/Pid/Pid.csproj b/src/Pid/Pid.csproj index 9978a9d..27c1e75 100644 --- a/src/Pid/Pid.csproj +++ b/src/Pid/Pid.csproj @@ -51,8 +51,8 @@ <Reference Include="Consul, Version=0.7.2.6, Culture=neutral, PublicKeyToken=20a6ad9a81df1d95, processorArchitecture=MSIL"> <HintPath>..\packages\Consul.0.7.2.6\lib\net45\Consul.dll</HintPath> </Reference> - <Reference Include="Coscine.Action, Version=1.17.0.0, Culture=neutral, processorArchitecture=AMD64"> - <HintPath>..\packages\Coscine.Action.1.17.0\lib\net461\Coscine.Action.dll</HintPath> + <Reference Include="Coscine.Action, Version=1.18.0.0, Culture=neutral, processorArchitecture=AMD64"> + <HintPath>..\packages\Coscine.Action.1.18.0-topic-1202-pidap0008\lib\net461\Coscine.Action.dll</HintPath> </Reference> <Reference Include="Coscine.ApiCommons, Version=1.11.0.0, Culture=neutral, PublicKeyToken=af4c1345df96546b, processorArchitecture=MSIL"> <HintPath>..\packages\Coscine.ApiCommons.1.11.0\lib\net461\Coscine.ApiCommons.dll</HintPath> diff --git a/src/Pid/packages.config b/src/Pid/packages.config index 3818c13..72c9a96 100644 --- a/src/Pid/packages.config +++ b/src/Pid/packages.config @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <packages> <package id="Consul" version="0.7.2.6" targetFramework="net461" /> - <package id="Coscine.Action" version="1.17.0" targetFramework="net461" /> + <package id="Coscine.Action" version="1.18.0-topic-1202-pidap0008" targetFramework="net461" /> <package id="Coscine.ApiCommons" version="1.11.0" targetFramework="net461" /> <package id="Coscine.Configuration" version="1.5.0" targetFramework="net461" /> <package id="Coscine.Database" version="1.27.0" targetFramework="net461" /> -- GitLab