Ejemplo n.º 1
0
        public static IGroupContainer <T, TField> AddDescription <T, TField>(this IGroupContainer <T> root, TField fieldDescription)
            where TField : IFieldDescription
        {
            root.GroupDescription.FieldDescriptions.Add(fieldDescription);

            return(new GroupAdapter <T, TField>(root.GroupDescription, fieldDescription));
        }
Ejemplo n.º 2
0
 public static IGroupContainer <T, DateRangeDescription> DateRange <T>(this IGroupContainer <T> root, String displayName, Expression <PropertyGetter <T, DateTime?> > startDate, Expression <PropertyGetter <T, DateTime?> > endDate)
 {
     return(root.AddDescription(new DateRangeDescription(
                                    displayName,
                                    PropertyPath.GetPropertyPath(startDate),
                                    PropertyPath.GetPropertyPath(endDate))));
 }
Ejemplo n.º 3
0
        private GetGroupResult GetGroup(Guid groupId, IGroupContainer parent)
        {
            if (parent.Groups == null)
            {
                return(null);
            }

            var foundGroup = parent.Groups.FirstOrDefault(x => x.Id == groupId);

            if (foundGroup != null)
            {
                return(new GetGroupResult(foundGroup, parent));
            }

            foreach (var group in parent.Groups)
            {
                var result = GetGroup(groupId, group);
                if (result != null)
                {
                    return(result);
                }
            }

            return(null);
        }
Ejemplo n.º 4
0
        public static IGroupContainer <T, TField> AddExtension <T, TField>(this IGroupContainer <T, TField> root, IFieldExtensionDescription fieldDescription)
            where TField : IFieldDescription
        {
            root.LastDescription.Extensions.Add(fieldDescription);

            return(root);
        }
Ejemplo n.º 5
0
        private void AssignIds(IGroupContainer node)
        {
            //Assign IDs to all groups directly descending from this node
            foreach (var group in node.Groups)
            {
                group.Id     = factory.GetGroupId();
                group.Parent = node;
            }

            //Assogm IDs to all devices directly descending from this node
            foreach (var device in node.Devices)
            {
                device.Id     = factory.GetDeviceId();
                device.Parent = node;

                //Assign IDs to all sensors directly descending from each device
                foreach (var sensor in device.Sensors)
                {
                    sensor.Id     = factory.GetSensorId();
                    sensor.Parent = device;
                }
            }

            foreach (var group in node.Groups)
            {
                AssignIds(group);
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Button
        /// </summary>
        /// <param name="displayName"></param>
        /// <param name="command"></param>
        /// <returns></returns>
        public static IGroupContainer <T, ButtonDescription> Button <T>(this IGroupContainer <T> root, String displayName, Expression <PropertyGetter <T, ICommand> > command)
        {
            var item = new ButtonDescription(
                displayName,
                PropertyPath.GetPropertyPath(command));

            return(root.AddDescription(item));
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Date
        /// </summary>
        /// <param name="displayName"></param>
        /// <param name="selectedDate"></param>
        /// <returns></returns>
        public static IGroupContainer <T, DateDescription> Date <T>(this IGroupContainer <T> root, String displayName, Expression <PropertyGetter <T, DateTime?> > selectedDate)
        {
            var item = new DateDescription(
                displayName,
                PropertyPath.GetPropertyPath(selectedDate));

            return(root.AddDescription(item));
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Id
        /// </summary>
        /// <returns></returns>
        public static IGroupContainer <T, IdDescription> Id <T>(this IGroupContainer <T> root, String displayName, Expression <PropertyGetter <T> > text, String stringFormat = null)
        {
            var item = new IdDescription(
                displayName,
                PropertyPath.GetPropertyPath(text),
                stringFormat);

            return(root.AddDescription(item));
        }
Ejemplo n.º 9
0
        public static IGroupContainer <T, TreeViewDescription> TreeView <T>(this IGroupContainer <T> root, String displayName, Expression <PropertyGetter <T> > itemsSource, DataTemplate itemTemplate = null)
        {
            var item = new TreeViewDescription(
                displayName,
                PropertyPath.GetPropertyPath(itemsSource),
                itemTemplate);

            return(root.AddDescription(item));
        }
Ejemplo n.º 10
0
        public static IGroupContainer <T, CustomDescription> Custom <T>(this IGroupContainer <T> root, String displayName, Type controlType, Action <FrameworkElementFactory> action)
        {
            var item = new CustomDescription(
                displayName,
                controlType,
                action);

            return(root.AddDescription(item));
        }
Ejemplo n.º 11
0
        /// <summary>
        /// ComboBox
        /// </summary>
        public static IGroupContainer <T, ComboBoxDescription> ComboBox <T>(this IGroupContainer <T> root, String displayName, Expression <PropertyGetter <T> > selectedItem, Expression <PropertyGetter <T, IEnumerable> > itemsSource)
        {
            var item = new ComboBoxDescription(
                displayName,
                PropertyPath.GetPropertyPath(selectedItem),
                PropertyPath.GetPropertyPath(itemsSource));

            return(root.AddDescription(item));
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Text
        /// </summary>
        /// <param name="displayName"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public static IGroupContainer <T, TextBoxDescription> Text <T>(this IGroupContainer <T> root, String displayName, Expression <PropertyGetter <T> > text, String stringFormat = null, Expression <PropertyGetter <T> > command = null)
        {
            var item = new TextBoxDescription(
                displayName,
                PropertyPath.GetPropertyPath(text),
                stringFormat,
                true,
                PropertyPath.GetPropertyPath(command));

            return(root.AddDescription(item));
        }
Ejemplo n.º 13
0
        /// <summary>
        /// ItemsControl
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="root"></param>
        /// <param name="itemsSource"></param>
        /// <param name="itemTemplate"></param>
        /// <param name="rows"></param>
        /// <param name="columns"></param>
        /// <param name="itemDefinition"></param>
        /// <returns></returns>
        public static IGroupContainer <T, ItemsControlDescription> ItemsControl <T>(this IGroupContainer <T> root, Expression <PropertyGetter <T> > itemsSource, DataTemplate itemTemplate = null, int?rows = null, int?columns = null, FieldDescription itemDefinition = null)
        {
            var item = new ItemsControlDescription(
                PropertyPath.GetPropertyPath(itemsSource),
                itemTemplate,
                rows,
                columns,
                itemDefinition
                );

            return(root.AddDescription(item));
        }
Ejemplo n.º 14
0
        public async Task ValidateAsync(IGroupContainer groupContainer)
        {
            if (groupContainer == null)
            {
                throw new ArgumentNullException(nameof(groupContainer));
            }

            var reservation = await this.GetBy(groupContainer);

            if (groupContainer.GroupId.HasValue && reservation == null)
            {
                throw new InvalidOperationException($"Reservation not found by id {groupContainer.GroupId}");
            }
        }
Ejemplo n.º 15
0
        private GetEntryResult GetEntry(Guid entryId, IGroupContainer groupContainer)
        {
            if (groupContainer.Groups == null)
            {
                return(null);
            }
            foreach (var group in groupContainer.Groups)
            {
                var foundEntry = group.Entries.FirstOrDefault(x => x.Id == entryId);
                if (foundEntry != null)
                {
                    return(new GetEntryResult(foundEntry, group));
                }

                var result = GetEntry(entryId, group);
                if (result != null)
                {
                    return(result);
                }
            }

            return(null);
        }
 public GetGroupResult(Group group, IGroupContainer parent)
 {
     this.Group  = group;
     this.Parent = parent;
 }
Ejemplo n.º 17
0
 /// <summary>
 /// StaticText
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="root"></param>
 /// <param name="text"></param>
 /// <param name="background"></param>
 /// <returns></returns>
 public static IGroupContainer <T, StaticTextDescription> StaticText <T>(this IGroupContainer <T> root, String text)
 {
     return(root.AddDescription(new StaticTextDescription(text)));
 }
Ejemplo n.º 18
0
 protected int GetTotalDevices(IGroupContainer node)
 {
     return(node.Devices.Count + node.Groups.Sum(GetTotalDevices));
 }
Ejemplo n.º 19
0
 private Task <Group> GetBy(IGroupContainer departmentContainer)
 {
     return(this.GroupDataAccess.GetByAsync(departmentContainer));
 }
Ejemplo n.º 20
0
 /// <summary>
 /// Label
 /// </summary>
 /// <returns></returns>
 public static IGroupContainer <T, TextBoxDescription> WithBorder <T>(this IGroupContainer <T, TextBoxDescription> root, Color color)
 {
     return(root.AddExtension(new BorderExtensionDescription(color)));
 }
Ejemplo n.º 21
0
 public async Task <Group> GetByAsync(IGroupContainer group)
 {
     return(group.GroupId.HasValue
         ? this.Mapper.Map <Group>(await this.Context.Group.FirstOrDefaultAsync(x => x.Id == group.GroupId))
         : null);
 }
Ejemplo n.º 22
0
 protected int GetTotalSensors(IGroupContainer node)
 {
     return(node.Devices.Sum(d => d.Sensors.Count) + node.Groups.Sum(GetTotalSensors));
 }
Ejemplo n.º 23
0
        /// <summary>
        /// MultiLineText
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="root"></param>
        /// <param name="displayName"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public static IGroupContainer <T, MultiLineTextDescription> MultiLineText <T>(this IGroupContainer <T> root, String displayName, Expression <PropertyGetter <T, String> > text)
        {
            var item = new MultiLineTextDescription(
                displayName,
                PropertyPath.GetPropertyPath(text));

            return(root.AddDescription(item));
        }
Ejemplo n.º 24
0
        /// <summary>
        /// CheckBox
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="root"></param>
        /// <param name="displayName"></param>
        /// <param name="selectedItem"></param>
        /// <returns></returns>
        public static IGroupContainer <T, CheckBoxDescription> CheckBox <T>(this IGroupContainer <T> root, String displayName, Expression <PropertyGetter <T> > selectedItem)
        {
            var item = new CheckBoxDescription(displayName, PropertyPath.GetPropertyPath(selectedItem));

            return(root.AddDescription(item));
        }
Ejemplo n.º 25
0
        /// <summary>
        /// Image
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="root"></param>
        /// <param name="displayName"></param>
        /// <param name="image"></param>
        /// <param name="stretch"></param>
        /// <returns></returns>
        public static IGroupContainer <T, ImageDescription> Image <T>(this IGroupContainer <T> root, String displayName, Expression <PropertyGetter <T> > image, Stretch stretch = Stretch.None)
        {
            var item = new ImageDescription(displayName, PropertyPath.GetPropertyPath(image), stretch);

            return(root.AddDescription(item));
        }
Ejemplo n.º 26
0
        public static IGroupContainer <T> WithConfig <T>(this IGroupContainer <T> root, Action <IFieldDescription> config)
        {
            config(root.LastDescription);

            return(root);
        }