aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Converters/UsersRolesToStringConverter.cs
blob: e607b13d5f5fec20c8d5e0d4c774913de923e8fa (plain)
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
using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using Tango.BL.Entities;
using Tango.MachineStudio.DB.ViewModels;

namespace Tango.MachineStudio.DB.Converters
{
    /// <summary>
    /// Converts user role to string.
    /// </summary>
    /// <seealso cref="System.Windows.Data.IValueConverter" />
    public class UsersRolesToStringConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value == null) return "";

            if (value is IEnumerable<UsersRole>)
            {
                IEnumerable<UsersRole> userRoles = value as IEnumerable<UsersRole>;
                return String.Join(", ", userRoles.Select(x => x.Role.Name));
            }
            else
            {
                IEnumerable<MultiComboVM<Role>> userRoles = value as IEnumerable<MultiComboVM<Role>>;
                return String.Join(", ", userRoles.Where(x => x.IsSelected).Select(x => x.Entity.Name));
            }
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}
span class="o">*message, ProtobufCBuffer *buffer) { assert(message->base.descriptor == &hardware_configuration__descriptor); return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); } HardwareConfiguration * hardware_configuration__unpack (ProtobufCAllocator *allocator, size_t len, const uint8_t *data) { return (HardwareConfiguration *) protobuf_c_message_unpack (&hardware_configuration__descriptor, allocator, len, data); } void hardware_configuration__free_unpacked (HardwareConfiguration *message, ProtobufCAllocator *allocator) { if(!message) return; assert(message->base.descriptor == &hardware_configuration__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } static const ProtobufCFieldDescriptor hardware_configuration__field_descriptors[6] = { { "Dancers", 1, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, offsetof(HardwareConfiguration, n_dancers), offsetof(HardwareConfiguration, dancers), &hardware_dancer__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { "Dispensers", 2, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, offsetof(HardwareConfiguration, n_dispensers), offsetof(HardwareConfiguration, dispensers), &hardware_dispenser__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { "Motors", 3, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, offsetof(HardwareConfiguration, n_motors), offsetof(HardwareConfiguration, motors), &hardware_motor__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { "PidControls", 4, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, offsetof(HardwareConfiguration, n_pidcontrols), offsetof(HardwareConfiguration, pidcontrols), &hardware_pid_control__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { "Winders", 5, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, offsetof(HardwareConfiguration, n_winders), offsetof(HardwareConfiguration, winders), &hardware_winder__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, { "SpeedSensors", 6, PROTOBUF_C_LABEL_REPEATED, PROTOBUF_C_TYPE_MESSAGE, offsetof(HardwareConfiguration, n_speedsensors), offsetof(HardwareConfiguration, speedsensors), &hardware_speed_sensor__descriptor, NULL, 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, }; static const unsigned hardware_configuration__field_indices_by_name[] = { 0, /* field[0] = Dancers */ 1, /* field[1] = Dispensers */ 2, /* field[2] = Motors */ 3, /* field[3] = PidControls */ 5, /* field[5] = SpeedSensors */ 4, /* field[4] = Winders */ }; static const ProtobufCIntRange hardware_configuration__number_ranges[1 + 1] = { { 1, 0 }, { 0, 6 } }; const ProtobufCMessageDescriptor hardware_configuration__descriptor = { PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, "HardwareConfiguration", "HardwareConfiguration", "HardwareConfiguration", "", sizeof(HardwareConfiguration), 6, hardware_configuration__field_descriptors, hardware_configuration__field_indices_by_name, 1, hardware_configuration__number_ranges, (ProtobufCMessageInit) hardware_configuration__init, NULL,NULL,NULL /* reserved[123] */ };