using Autofac; using GreenTree.Nachtragsmanagement.Core; using GreenTree.Nachtragsmanagement.Services.Appendix; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace GreenTree.Nachtragsmanagement.Services.Configuration { public class StateConfigurationReference : IConfigurationReference { /// /// Id /// public Guid Id { get { return Guid.Parse("DF5E3C83-357C-458D-AA03-9BF7C5C49203"); } } /// /// Internal name /// public string Name { get { return "ConfigurationReference.StateConfigurationReference"; } } /// /// Display name /// public string DisplayName { get { return "Nachtragsstatus"; } } /// /// Determines if mutiple values are selectable /// public bool IsMultipleSelection { get { return true; } } /// /// Get available values /// public ConfigurationReferenceElement[] GetAvailableValues() { var appendixService = Singleton.Instance.Resolve(); return appendixService .GetAllStates() .Select(s => new ConfigurationReferenceElement { Value = s.Id, Text = s.Description }) .ToArray(); } /// /// Transforms mutiple selected values into a single line value /// /// Selected values. public string TransformValueCollectionToValue(string[] values) { return String.Join(", ", values); } /// /// Transforms the single line value into a mutiple selected values /// /// Single line value. public string[] TransformValueToValueCollection(string value) { return String.IsNullOrEmpty(value) ? new string[0] : value.Split(',') .Select(s => s.Trim()) .ToArray(); } /// /// Converts the string converted value into strongly typed value /// /// The selected value. public T GetValue(string value) { return (T)((object)Convert.ToInt32(value)); } /// /// Converts the string converted values into strongly typed values /// /// The selected values. public T GetValues(string[] values) { if (values == null) return default(T); return (T)( (object) (values .Select(v => Convert.ToInt32(v)) .ToArray())); } } }