public ItemByCreate MapItem(DirectumRegistryItem directumRegistryItem, LogHelper logHelper) { var issueType = _cache.GetObjectFromCache("IssueType", _issueTypeCacheTime, () => _jiraProvider.GetTypes().First(t => t.Name.ToUpper() == "ИЗМЕНЕНИЕ")); var employees = _cache.GetObjectFromCache(nameof(_employeeProvider), _employeeCacheTime, _employeeProvider.GetEmployees); var projects = _cache.GetObjectFromCache(nameof(_jiraProvider), _jiraProjectCacheTime, _jiraProvider.GetProjects); var catalog = CheckAndReturnCatalogs(directumRegistryItem.ProjectId, directumRegistryItem, issueType, logHelper); var assignee = employees.FirstOrDefault(x => x.LoginAd == directumRegistryItem.AssigneeLoginAd); var changeManager = employees.FirstOrDefault(x => x.LoginAd == directumRegistryItem.ChangeManager); var item = new ItemByCreate { Project = projects.FirstOrDefault(e => e.Key == directumRegistryItem.ProjectId)?.Id, IssueType = catalog.issueType, Assignee = assignee?.LoginJira, ChangeManager = changeManager?.LoginJira, Priority = catalog.priorityInitiator, Initiator = directumRegistryItem.Initiator, Summary = $"{directumRegistryItem.Number} {directumRegistryItem.Summary}", Description = directumRegistryItem.Description, SourceNumber = directumRegistryItem.AssignmentID.ToString(), DepartmentId = catalog.department, ReasonImplementation = directumRegistryItem.Number, ConsequencesFailureImplement = directumRegistryItem.ConsequencesFailureImplement, DeadLine = directumRegistryItem.Deadline }; return(item); }
private (string issueType, string priorityInitiator, string department) CheckAndReturnCatalogs(string project, DirectumRegistryItem directumRegistryItem, IssueType issueType, LogHelper logHelper) { var catalog = _jiraProvider.GetCataloges(project); var catalogIssueTypeResult = catalog.Issuetype.FirstOrDefault(i => i.Name == issueType.Name)?.Id.ToString(); if (catalogIssueTypeResult == null) { logHelper.Error(new ArgumentException($"Тип запроса \"{issueType.Name}\" не определён в справочнике JIRA")); } var catalogPriorityResult = catalog.PriorityInitiator.FirstOrDefault(p => p.Name == directumRegistryItem.PriorityInitiatorId)?.Id.ToString(); if (catalogPriorityResult == null) { logHelper.Error(new ArgumentException($"Приоритет \"{directumRegistryItem.PriorityInitiatorId}\" не определён в справочнике JIRA")); } var catalogDepartmentResult = catalog.DepartIt.FirstOrDefault(d => d.Name == directumRegistryItem.DepartmentITId)?.Id.ToString(); if (catalogDepartmentResult == null) { logHelper.Error(new ArgumentException($"Подразделение ИТ \"{directumRegistryItem.DepartmentITId}\" не определено в справочнике JIRA")); } return(catalogIssueTypeResult, catalogPriorityResult, catalogDepartmentResult); //return (null, null, null); }