示例#1
0
        /// <summary>
        /// Populates the fields for multiple objects from the columns found in an open reader.
        /// </summary>
        ///
        /// <param name="rdr" type="IDataReader">An object that implements the IDataReader interface</param>
        ///
        /// <returns>Object of FieldMaps</returns>
        ///
        /// <remarks>
        ///
        /// <RevisionHistory>
        /// Author				Date			Description
        /// DLGenerator			11/21/2009 4:19:24 PM		Created function
        /// 
        /// </RevisionHistory>
        ///
        /// </remarks>
        ///
        internal static FieldMaps PopulateObjectsFromReader(IDataReader rdr, string ConnectionString)
        {
            FieldMaps list = new FieldMaps();

            while (rdr.Read())
            {
                FieldMap obj = new FieldMap(ConnectionString);
                PopulateObjectFromReader(obj,rdr);
                list.Add(obj);
            }
            return list;
        }
示例#2
0
        /// <summary>
        /// Populates the fields for multiple objects from the columns found in an open reader.
        /// </summary>
        ///
        /// <param name="rdr" type="IDataReader">An object that implements the IDataReader interface</param>
        ///
        /// <returns>Object of FieldMaps</returns>
        ///
        /// <remarks>
        ///
        /// <RevisionHistory>
        /// Author				Date			Description
        /// DLGenerator			11/21/2009 4:19:24 PM		Created function
        /// 
        /// </RevisionHistory>
        ///
        /// </remarks>
        ///
        internal static FieldMaps PopulateObjectsFromReaderWithCheckingReader(IDataReader rdr, DatabaseHelper oDatabaseHelper, string ConnectionString)
        {
            FieldMaps list = new FieldMaps();

            if (rdr.Read())
            {
                FieldMap obj = new FieldMap(ConnectionString);
                PopulateObjectFromReader(obj, rdr);
                list.Add(obj);
                while (rdr.Read())
                {
                    obj = new FieldMap(ConnectionString);
                    PopulateObjectFromReader(obj, rdr);
                    list.Add(obj);
                }
                oDatabaseHelper.Dispose();
                return list;
            }
            else
            {
                oDatabaseHelper.Dispose();
                return null;
            }
        }
示例#3
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            expanderGrid.Visibility = Visibility.Collapsed;
            errorMessage.Content    = "";
            var credential = CredentialManager.Instance.Credentials.FirstOrDefault(x => x?.BaseURL == Config.BaseURL);

            if (credential == null)
            {
                errorMessage.Content = $"No credentials exists for that URL";
                return;
            }
            var jira         = new Jira(Config.BaseURL, credential.Username, credential.Password);
            var issueService = jira.GetIssueService();
            var fieldService = jira.GetFieldService();

            try
            {
                errorMessage.Content = $"Attempting connection...";
                issues = issueService.Search(Config.JQLFilter);
                var fields = fieldService.GetFields();
                Dictionary <string, FieldMapViewModel> fieldMaps = new Dictionary <string, FieldMapViewModel>();
                foreach (var issue in issues)
                {
                    var properties      = ((JObject)issue.InternalObject.SelectTokens("$").First()).Properties().Where(x => x.Value is JValue);
                    var fieldsContainer = issue.InternalObject.SelectToken("$.fields") as JObject;
                    var issueFields     = fieldsContainer.Properties();
                    foreach (var prop in properties)
                    {
                        if (!fieldMaps.ContainsKey(prop.Path))
                        {
                            fieldMaps.Add(prop.Path, new FieldMapViewModel {
                                DisplayedName = prop.Name, JiraJSONPath = prop.Path, Map = false, ToscaFields = toscaFields, ExampleValues = new HashSet <string>()
                            });
                        }
                        fieldMaps[prop.Path].ExampleValues.Add(prop.Value.ToString());
                    }
                    foreach (var issueField in issueFields)
                    {
                        var    field     = fields.FirstOrDefault(x => x.id == issueField.Name);
                        string fieldName = (field != null ? field.name : issueField.Name);
                        if (issueField.Value is JValue)
                        {
                            if (!fieldMaps.ContainsKey(issueField.Path))
                            {
                                fieldMaps.Add(issueField.Path, new FieldMapViewModel
                                {
                                    DisplayedName = fieldName,
                                    ExampleValues = new HashSet <string>(),
                                    JiraJSONPath  = issueField.Path,
                                    Map           = false,
                                    ToscaFields   = toscaFields
                                });
                            }
                            fieldMaps[issueField.Path].ExampleValues.Add(issueField.Value.ToString());
                        }
                        else
                        {
                            JObject fieldValue = issueField.Value as JObject;
                            if (fieldValue == null || fieldValue.Properties() == null)
                            {
                                continue;
                            }
                            var fieldValueProps = fieldValue.Properties().Where(x => x.Value is JValue);
                            foreach (var fieldValueProp in fieldValueProps)
                            {
                                if (!fieldMaps.ContainsKey(fieldValueProp.Path))
                                {
                                    fieldMaps.Add(fieldValueProp.Path, new FieldMapViewModel
                                    {
                                        DisplayedName = $"{fieldName} -> {fieldValueProp.Name}",
                                        ExampleValues = new HashSet <string>(),
                                        JiraJSONPath  = fieldValueProp.Path,
                                        Map           = false,
                                        ToscaFields   = toscaFields
                                    });
                                }
                                fieldMaps[fieldValueProp.Path].ExampleValues.Add(fieldValueProp.Value.ToString());
                            }
                        }
                    }
                }
                foreach (var map in fieldMaps.OrderBy(x => x.Value.DisplayedName))
                {
                    if (Config.Config.parentLocatorPropertyOverride == map.Value.JiraJSONPath)
                    {
                        map.Value.ParentLocator = true;
                    }
                    FieldMaps.Add(map.Value);
                }
                foreach (var configMap in Config.Config.fieldMaps)
                {
                    if (FieldMaps.Any(x => x.JiraJSONPath == configMap.jiraJsonPath))
                    {
                        var matchingFM = FieldMaps.First(x => x.JiraJSONPath == configMap.jiraJsonPath);
                        matchingFM.Map        = true;
                        matchingFM.ToscaField = configMap.toscaField;
                    }
                }
                errorMessage.Content    = $"Success - {issues.Length} issues match";
                expanderGrid.Visibility = Visibility.Visible;
            }
            catch (Exception ex)
            {
                errorMessage.Content = $"Error: {ex.Message}";
            }
        }