private async Task <string> CreateFieldForTemplate(FieldTemplatesProvider fieldTemplatesProvider, string templateId)
        {
            var fieldRequest = new FieldRequest
            {
                Name   = "IntegerFieldTest",
                Type   = FieldRequest.TypeEnum.Integer,
                Values = new List <string>()
            };

            var fieldId = await fieldTemplatesProvider.CreateFieldForTemplate(templateId, fieldRequest);

            return(fieldId);
        }
        private async Task <string> CreateFieldTempalate(FieldTemplatesProvider fieldTemplatesProvider)
        {
            var newFieldTemplate = new FieldTemplate
            {
                OwnerId      = TemplateOwnerId.Text,
                Location     = TemplateLocation.Text,
                Name         = TemplateName.Text,
                Description  = "Dev. Testing",
                IsTmSpecific = false
            };

            var fieldTemplateId = await fieldTemplatesProvider.CreateFieldTempalate(newFieldTemplate);

            return(fieldTemplateId);
        }
 private async Task DeleteFieldForTemplate(FieldTemplatesProvider fieldTemplatesProvider, string templateId, string fieldId)
 {
     await fieldTemplatesProvider.DeleteFieldForTemplate(templateId, fieldId);
 }
        private async Task <Field> GetFieldForTemplate(FieldTemplatesProvider fieldTemplatesProvider, string templateId, string fieldId)
        {
            var field = await fieldTemplatesProvider.GetFieldForTemplate(templateId, fieldId);

            return(field);
        }
        private async Task <IReadOnlyList <Field> > GetFieldsForTemplate(FieldTemplatesProvider fieldTemplatesProvider, string templateId)
        {
            var fields = await fieldTemplatesProvider.GetFieldsForTemplate(templateId);

            return(fields);
        }
        private async void RunTests()
        {
            try
            {
                IsEnabled = false;

                var millisecondsDelay = 2000;

                var userName         = UserName.Text;
                var password         = Password.Text;
                var uri              = URI.Text;
                var templateOwnerId  = TemplateOwnerId.Text;
                var templateLocation = TemplateLocation.Text;
                var templateName     = TemplateName.Text;

                if (!IsValidParameters(userName, password, uri, templateOwnerId, templateLocation, templateName))
                {
                    IsEnabled = true;
                    return;
                }

                ClearTextBlock();

                var fieldTemplatesProvider = new FieldTemplatesProvider(userName, password, uri);

                var templateId = await CreateFieldTempalate(fieldTemplatesProvider);

                UpdateTextBlock("CreateFieldTempalate");
                UpdateTextBlock($"Added Template: {templateId}");
                UpdateTextBlock(string.Empty);
                await Task.Delay(millisecondsDelay);

                var fieldTemplate01 = await GetFieldTemplateById(fieldTemplatesProvider, templateId);

                UpdateTextBlock("GetFieldsForTemplate");
                UpdateTextBlock(fieldTemplate01 != null
                                        ? $"Found Template: {templateId}"
                                        : $"Unable to locate Template: {templateId}");
                UpdateTextBlock(string.Empty);

                var fieldsTest01 = await GetFieldsForTemplate(fieldTemplatesProvider, templateId);

                UpdateTextBlock("GetFieldsForTemplate");
                UpdateTextBlock($"Found {fieldsTest01.Count} fields in Template: {templateId}");
                UpdateTextBlock(string.Empty);

                var fieldId = await CreateFieldForTemplate(fieldTemplatesProvider, templateId);

                UpdateTextBlock("CreateFieldForTemplate");
                UpdateTextBlock($"Added Field: {fieldId} in Template {templateId}");
                UpdateTextBlock(string.Empty);

                await Task.Delay(millisecondsDelay);

                var fieldsTest02 = await GetFieldsForTemplate(fieldTemplatesProvider, templateId);

                UpdateTextBlock("GetFieldsForTemplate");
                UpdateTextBlock($"Found {fieldsTest02.Count} fields in Template: {templateId}");
                UpdateTextBlock(string.Empty);

                var fieldTest01 = await GetFieldForTemplate(fieldTemplatesProvider, templateId, fieldId);

                UpdateTextBlock("GetFieldForTemplate");
                UpdateTextBlock(fieldTest01 != null
                                        ? $"Found Field: {fieldId}"
                                        : $"Unable to locate Field: {fieldId}");
                UpdateTextBlock(string.Empty);

                await Task.Delay(millisecondsDelay);

                await DeleteFieldForTemplate(fieldTemplatesProvider, templateId, fieldId);

                UpdateTextBlock("DeleteFieldForTemplate");
                UpdateTextBlock($"Removed Field: {fieldId} from Template: {templateId}");
                UpdateTextBlock(string.Empty);

                await Task.Delay(millisecondsDelay);

                var fieldsTest03 = await GetFieldsForTemplate(fieldTemplatesProvider, templateId);

                UpdateTextBlock("GetFieldsForTemplate");
                UpdateTextBlock($"Found {fieldsTest03.Count} fields in Template: {templateId}");
                UpdateTextBlock(string.Empty);

                var fieldTest02 = await GetFieldForTemplate(fieldTemplatesProvider, templateId, fieldId);

                UpdateTextBlock("GetFieldForTemplate");
                UpdateTextBlock(fieldTest02 != null
                                        ? $"Found Field: {fieldId}"
                                        : $"Unable to locate Field: {fieldId}");
                UpdateTextBlock(string.Empty);

                await DeleteFieldTempalate(fieldTemplatesProvider, templateId);

                UpdateTextBlock("DeleteFieldTempalate");
                UpdateTextBlock($"Removed Template: {templateId}");
                UpdateTextBlock(string.Empty);

                await Task.Delay(millisecondsDelay);

                var fieldTemplate02 = await GetFieldTemplateById(fieldTemplatesProvider, templateId);

                UpdateTextBlock("GetFieldTemplateById");
                UpdateTextBlock(fieldTemplate02 != null
                                        ? $"Found Template: {templateId}"
                                        : $"Unable to locate Template: {templateId}");
                UpdateTextBlock(string.Empty);

                UpdateTextBlock("Done");
            }
            catch (Exception e)
            {
                UpdateTextBlock("Exception: " + e.Message);
            }
            finally
            {
                IsEnabled = true;
            }
        }
        private async Task <FieldTemplate> GetFieldTemplateById(FieldTemplatesProvider fieldTemplatesProvider, string templateId)
        {
            var fieldTemplate = await fieldTemplatesProvider.GetFieldTemplateById(templateId);

            return(fieldTemplate);
        }