-
Notifications
You must be signed in to change notification settings - Fork 4
/
AttrBase.cs
88 lines (86 loc) · 3.8 KB
/
AttrBase.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Metadata;
namespace FieldCreator.TyCorcoran
{
public class AttrBase
{
public AttrBase (Attribute attribute)
{
_attribute = attribute;
}
private Attribute _attribute;
private const string _regexSanitizedSchemaName = "[^a-zA-Z0-9_]";
public bool AttrAuditEnabled => _attribute.AuditEnabled.ToLower() == "true" ? true : false;
public string AttrEntitySchemaName => Regex.Replace(_attribute.EntitySchemaName.ToLower(), _regexSanitizedSchemaName, string.Empty);
public string AttrSolution => _attribute.SolutionUniqueName;
public string AttrDescription => _attribute.Description;
public string AttrSchemaName => Regex.Replace(_attribute.FieldSchemaName.ToLower(), _regexSanitizedSchemaName, string.Empty);
public string AttrFieldLabel => _attribute.FieldLabel;
public AttributeRequiredLevel AttrRequiredLevel
{
get
{
var reqlevel = new AttributeRequiredLevel();
switch (_attribute.RequiredLevel)
{
case "None":
reqlevel = AttributeRequiredLevel.None;
return reqlevel;
case "System Required":
reqlevel = AttributeRequiredLevel.ApplicationRequired;
return reqlevel;
case "Recommended":
reqlevel = AttributeRequiredLevel.Recommended;
return reqlevel;
default:
reqlevel = 0;
return reqlevel;
}
}
}
public OptionSetMetadata GenerateOptionSetMetadata()
{
var osMetaDataCollection = CreateOptionMetaDataCollection();
return new OptionSetMetadata(osMetaDataCollection)
{
IsGlobal = false,
OptionSetType = (_attribute.FieldType == "FieldCreator.TyCorcoran.AttrOptionSet") ? OptionSetType.Picklist : default
};
}
public OptionMetadataCollection CreateOptionMetaDataCollection()
{
string optionSetValueString = _attribute.OptionSetValues;
var optionSetMetadataCollection = new List<OptionMetadata>();
if (!string.IsNullOrWhiteSpace(optionSetValueString))
{
var optionSetStringList = new List<string>(optionSetValueString.Split('|'));
foreach (var option in optionSetStringList)
{
var osMeta = new OptionMetadata(new Label(option, 1033), null);
optionSetMetadataCollection.Add(osMeta);
}
};
var optionMetaCollection = new OptionMetadataCollection(optionSetMetadataCollection);
return optionMetaCollection;
}
public static OptionMetadataCollection CreateOptionMetaDataCollection(Attribute attribute)
{
string optionSetValueString = attribute.OptionSetValues;
var optionSetMetadataCollection = new List<OptionMetadata>();
if (!string.IsNullOrWhiteSpace(optionSetValueString))
{
var optionSetStringList = new List<string>(optionSetValueString.Split('|'));
foreach (var option in optionSetStringList)
{
var osMeta = new OptionMetadata(new Label(option, 1033), null);
optionSetMetadataCollection.Add(osMeta);
}
};
var optionMetaCollection = new OptionMetadataCollection(optionSetMetadataCollection);
return optionMetaCollection;
}
}
}