Skip to content
Snippets Groups Projects

Update: Owner of a project can be contacted (coscine/issues#1202)

3 files
+ 22
7
Compare changes
  • Side-by-side
  • Inline

Files

@@ -24,6 +24,7 @@ namespace Coscine.Api.Pid.Controllers
@@ -24,6 +24,7 @@ namespace Coscine.Api.Pid.Controllers
public class PidController : Controller
public class PidController : Controller
{
{
private readonly ResourceModel _resourceModel;
private readonly ResourceModel _resourceModel;
 
private readonly ProjectModel _projectModel;
private readonly IConfiguration _configuration;
private readonly IConfiguration _configuration;
private readonly Emitter _emitter;
private readonly Emitter _emitter;
@@ -35,6 +36,7 @@ namespace Coscine.Api.Pid.Controllers
@@ -35,6 +36,7 @@ namespace Coscine.Api.Pid.Controllers
_configuration = Program.Configuration;
_configuration = Program.Configuration;
_emitter = new Emitter(this._configuration);
_emitter = new Emitter(this._configuration);
_resourceModel = new ResourceModel();
_resourceModel = new ResourceModel();
 
_projectModel = new ProjectModel();
}
}
/// <summary>
/// <summary>
@@ -46,6 +48,7 @@ namespace Coscine.Api.Pid.Controllers
@@ -46,6 +48,7 @@ namespace Coscine.Api.Pid.Controllers
public IActionResult SendMailToOwner([FromBody] MessageObject messageObject)
public IActionResult SendMailToOwner([FromBody] MessageObject messageObject)
{
{
var resource = _resourceModel.GetById(new Guid(messageObject.Guid));
var resource = _resourceModel.GetById(new Guid(messageObject.Guid));
 
var project = _projectModel.GetById(new Guid(messageObject.Guid));
var user = new User()
var user = new User()
{
{
DisplayName = messageObject.Name,
DisplayName = messageObject.Name,
@@ -53,19 +56,31 @@ namespace Coscine.Api.Pid.Controllers
@@ -53,19 +56,31 @@ namespace Coscine.Api.Pid.Controllers
};
};
var placeholder = new JObject()
var placeholder = new JObject()
{
{
["resourceName"] = resource.DisplayName,
["requesterName"] = messageObject.Name,
["requesterName"] = messageObject.Name,
["requesterMail"] = messageObject.Email,
["requesterMail"] = messageObject.Email,
["requestMessage"] = messageObject.Message,
["requestMessage"] = messageObject.Message,
["pid"] = messageObject.Pid
["pid"] = messageObject.Pid
};
};
_emitter.EmitPIDOwnerContact(new PIDEventArgs(_configuration)
 
PIDEventArgs pidEventArgs = new PIDEventArgs(_configuration)
{
{
Requester = user,
Requester = user,
Resource = resource,
SentCopy = messageObject.SendCopy,
SentCopy = messageObject.SendCopy,
Placeholder = placeholder
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" });
return Json(new JObject { ["status"] = "ok" });
}
}
}
}
Loading