diff --git a/terminalAtlassian/Activities/Get_Jira_Issue_v1.cs b/terminalAtlassian/Activities/Get_Jira_Issue_v1.cs index 585d13d513..ddad0885f4 100644 --- a/terminalAtlassian/Activities/Get_Jira_Issue_v1.cs +++ b/terminalAtlassian/Activities/Get_Jira_Issue_v1.cs @@ -67,6 +67,30 @@ public Get_Jira_Issue_v1(ICrateManager crateManager, AtlassianService atlassianS _atlassianService = atlassianService; } + protected override async Task Validate() + { + var issueKey = ActivityUI.IssueNumber.TextValue; + if (string.IsNullOrEmpty(issueKey)) + { + ValidationManager.SetError("Issue number must be specified", ActivityUI.IssueNumber); + } + else + { + try + { + var curJiraIssue = await _atlassianService.GetJiraIssue(issueKey, AuthorizationToken); + } + catch (Exception e) + { + var m = "Response Content:"; + var message = e.Message.Substring(e.Message.IndexOf(m) + m.Length, e.Message.Length - m.Length); + var j = Newtonsoft.Json.JsonConvert.DeserializeAnonymousType(message, new { errorMessages = new string[1], errors = new { } }); + + ValidationManager.SetError(j.errorMessages[0], ActivityUI.IssueNumber); + } + } + } + public override async Task Initialize() { CrateSignaller.MarkAvailableAtRuntime(RunTimeCrateLabel); diff --git a/terminalAtlassian/Activities/Save_Jira_Issue_v1.cs b/terminalAtlassian/Activities/Save_Jira_Issue_v1.cs index d36d834966..c31adbaf02 100644 --- a/terminalAtlassian/Activities/Save_Jira_Issue_v1.cs +++ b/terminalAtlassian/Activities/Save_Jira_Issue_v1.cs @@ -13,6 +13,7 @@ using Fr8.TerminalBase.Services; using Newtonsoft.Json; using terminalAtlassian.Interfaces; +using Fr8.TerminalBase.Infrastructure; namespace terminalAtlassian.Actions { @@ -250,6 +251,30 @@ public Save_Jira_Issue_v1(ICrateManager crateManager, IAtlassianService atlassia _pushNotificationService = pushNotificationService; } + protected override Task Validate() + { + if (string.IsNullOrEmpty(ActivityUI.AvailableProjects.Value)) + { + ValidationManager.SetError("Project is not specified", ActivityUI.AvailableProjects); + } + + if (string.IsNullOrEmpty(ActivityUI.AvailableIssueTypes.Value) && ActivityUI.AvailableIssueTypes.IsHidden != true) + { + ValidationManager.SetError("Issue Type is not specified", ActivityUI.AvailableIssueTypes); + } + + if (string.IsNullOrEmpty(ActivityUI.AvailablePriorities.Value) && ActivityUI.AvailablePriorities.IsHidden != true) + { + ValidationManager.SetError("Issue Priority is not specified", ActivityUI.AvailablePriorities); + } + if(ActivityUI.Summary.IsHidden != true) + { + ValidationManager.ValidateTextSourceNotEmpty(ActivityUI.Summary, "Issue Summary is not specified"); + } + + return Task.FromResult(0); + } + #region Configuration public override async Task Initialize()