Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
Loading items

Target

Select target project
  • coscine/backend/libraries/action
1 result
Select Git revision
Loading items
Show changes
Commits on Source (3)
......@@ -4,7 +4,7 @@
<RootNamespace>Coscine.Action</RootNamespace>
<AssemblyName>Coscine.Action</AssemblyName>
<TargetFramework>net5.0</TargetFramework>
<Version>2.1.0</Version>
<Version>2.1.1</Version>
</PropertyGroup>
<PropertyGroup>
<Authors>RWTH Aachen University</Authors>
......
using Coscine.Action.EventArgs;
using Coscine.Api.LegacySharePoint.Models;
namespace Coscine.Action.Implementations.Project
{
internal class SPGroupAction : IProjectAction
{
public int Priority { get { return 2; } }
public bool Enabled { get { return true; } }
public void OnProjectCreate(ProjectEventArgs projectEventArgs)
{
SharePointEventObject sharePointEventObject = new SharePointEventObject
{
Role = "Owner",
UserId = projectEventArgs.ProjectOwner.Id.ToString(),
ProjectDescription = projectEventArgs.Project.Description,
ProjectDisplayName = projectEventArgs.Project.DisplayName,
ProjectSlug = projectEventArgs.Project.Slug
};
SharePointEventUtil.TriggerSharePointEvent(projectEventArgs.Configuration, "Group", "onUserSet", sharePointEventObject);
}
public void OnProjectDelete(ProjectEventArgs projectEventArgs)
{
// Method for doing this would be to call the OnUserRemove method
// However since the site is already deleted in the SharePointSiteAction there is no need for it
}
}
}
......@@ -18,7 +18,8 @@ namespace Coscine.Action.Implementations.Project
ProjectDisplayName = projectEventArgs.Project.DisplayName,
ProjectSlug = projectEventArgs.Project.Slug
};
SharePointEventUtil.TriggerSharePointEvent(projectEventArgs.Configuration, "Site", "onProjectCreate", sharePointEventObject);
SharePointEventUtil.TriggerSharePointEvent(projectEventArgs.Configuration, "Site", "onProjectCreate", sharePointEventObject).Wait();
SharePointEventUtil.TriggerSharePointEvent(projectEventArgs.Configuration, "Group", "onUserSet", sharePointEventObject).Wait();
}
public void OnProjectDelete(ProjectEventArgs projectEventArgs)
......@@ -31,7 +32,10 @@ namespace Coscine.Action.Implementations.Project
ProjectDisplayName = projectEventArgs.Project.DisplayName,
ProjectSlug = projectEventArgs.Project.Slug
};
SharePointEventUtil.TriggerSharePointEvent(projectEventArgs.Configuration, "Site", "onProjectDelete", sharePointEventObject);
SharePointEventUtil.TriggerSharePointEvent(projectEventArgs.Configuration, "Site", "onProjectDelete", sharePointEventObject).Wait();
// Method for doing this would be to call the OnUserRemove method
// However since the site is already deleted in the SharePointSiteAction there is no need for it
}
}
......
......@@ -18,7 +18,7 @@ namespace Coscine.Action.Implementations.User
ProjectDisplayName = userEventArgs.Project.DisplayName,
ProjectSlug = userEventArgs.Project.Slug
};
SharePointEventUtil.TriggerSharePointEvent(userEventArgs.Configuration, "Group", "onUserSet", sharePointEventObject);
SharePointEventUtil.TriggerSharePointEvent(userEventArgs.Configuration, "Group", "onUserSet", sharePointEventObject).Wait();
}
public void OnUserDelete(UserEventArgs userEventArgs)
......@@ -30,7 +30,7 @@ namespace Coscine.Action.Implementations.User
ProjectDisplayName = userEventArgs.Project.DisplayName,
ProjectSlug = userEventArgs.Project.Slug
};
SharePointEventUtil.TriggerSharePointEvent(userEventArgs.Configuration, "Group", "onUserDelete", sharePointEventObject);
SharePointEventUtil.TriggerSharePointEvent(userEventArgs.Configuration, "Group", "onUserDelete", sharePointEventObject).Wait();
}
}
}
using Coscine.Configuration;
using Newtonsoft.Json;
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
namespace Coscine.Api.LegacySharePoint.Models
{
public class SharePointEventUtil
{
public static HttpClient httpClient = new HttpClient();
private static HttpClient _httpClient = null;
public static void TriggerSharePointEvent(IConfiguration configuration, string controller, string path, SharePointEventObject sharePointEventObject)
private static HttpClient GetHttpClient()
{
if(_httpClient == null)
{
_httpClient = new HttpClient
{
Timeout = TimeSpan.FromMinutes(30)
};
}
return _httpClient;
}
public async static Task<HttpResponseMessage> TriggerSharePointEvent(IConfiguration configuration, string controller, string path, SharePointEventObject sharePointEventObject)
{
sharePointEventObject.SharePointSite = configuration.GetStringAndWait("coscine/local/sharepoint/additional/url");
sharePointEventObject.StsPrefix = configuration.GetStringAndWait("coscine/local/sharepoint/stsprefix");
var uri = $"http://localhost:{configuration.GetStringAndWait("coscine/apis/Coscine.Api.LegacySharePoint/port")}/{controller}/{path}";
HttpContent content = new StringContent(JsonConvert.SerializeObject(sharePointEventObject), Encoding.UTF8, "application/json");
httpClient.PostAsync(uri, content).Wait();
return await GetHttpClient().PostAsync(uri, content);
}
}
......