/// <summary>Runs the processor.</summary> /// <param name="args">The arguments.</param> public async Task Process(WorkflowPipelineArgs args) { Assert.ArgumentNotNull((object)args, nameof(args)); var processorItem = args.ProcessorItem; if (processorItem == null) { return; } var item = args.DataItem; var site = _siteResolver.ResolveSite(item); var teamsMessage = new TeamsMessage { HostUrl = $"{HttpContext.Current.Request.Url.Scheme}://{HttpContext.Current.Request.Url.Host}", ItemId = HttpUtility.UrlEncode(item.ID.ToString()), ItemName = item.DisplayName, ItemPath = item.Paths.FullPath, Language = item.Language.Name, ItemUrl = GetItemUrl(item, site), Site = site.Name, Command = processorItem.InnerItem.Parent.Name, Comments = args.CommentFields["Comments"] }; teamsMessage.FillTeamsMessage(item); await new FunctionService().DoPostAsync(teamsMessage); }
public void SendNotification(object sender, EventArgs args) { var sitecoreArgs = args as Sitecore.Events.SitecoreEventArgs; if (!(sitecoreArgs?.Parameters[0] is Publisher publisher)) { return; } var rootItem = publisher.Options.RootItem; var publishJobs = Sitecore.Jobs.JobManager.GetJobs().Where(x => x.Name.Equals(publisher.GetJobName())).ToList(); var site = _siteResolver.ResolveSite(rootItem); var hostUrl = "https://" + (site != null ? site.HostName : $"{HttpContext.Current?.Request.Url.Scheme}://{HttpContext.Current?.Request.Url.Host}"); var ItemId = HttpUtility.UrlEncode(rootItem.ID.ToString()); foreach (var j in publishJobs.Where(p => p.Handle.IsLocal)) { var teamsMessage = new MessageCard(); var facts = new List <Fact> { new Fact { Name = "User: "******"{messageSplit[0]}: ", Value = messageSplit[1] }; facts.Add(fact); } var section = new Section { ActivityTitle = $"{j.Name} Done!", ActivitySubtitle = $"Version: {rootItem.Version}, Language: {rootItem.Language}, Target DB: {publisher.Options.TargetDatabase}. Subitems: {publisher.Options.Deep}", ActivityImage = "https://sitecorecdn.azureedge.net/-/media/sitecoresite/images/global/logo/favicon.png", Facts = facts }; var sitecoreRedirectAction = new OpenUriAction { Type = ActionType.OpenUri, Name = "Go to Sitecore", Targets = new [] { new Target { OS = TargetOs.Default, Uri = $"{hostUrl}/sitecore/shell/sitecore/content/Applications/Content Editor.aspx?id={ItemId}&la={rootItem.Language}&fo={ItemId}" } } }; var publicRedirectAction = new OpenUriAction { Type = ActionType.OpenUri, Name = "Go to website", Targets = new [] { new Target { OS = TargetOs.Default, Uri = $"{hostUrl}/?sc_itemid={ItemId}&sc_mode=normal&sc_lang={rootItem.Language}" } } }; teamsMessage.Context = "https://schema.org/extensions"; teamsMessage.Type = "MessageCard"; teamsMessage.Summary = "Publish Notification"; teamsMessage.ThemeColor = "008000"; teamsMessage.Sections = new [] { section }; teamsMessage.Actions = new [] { sitecoreRedirectAction, publicRedirectAction }; _msTeamsConnectorService.ProcessAsync(teamsMessage).ConfigureAwait(false).GetAwaiter().GetResult(); } }