private void LinkLabelGroup_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            IEnumerable <Group> groups = SelectedMachines
                                         .Select(machine => ConnectionStore.Connections.Values
                                                 .First(connection => ProcessManager.DataObjects.Comparers.Comparer <Machine> .IDObjectsEqual(connection.Machine, machine))
                                                 .Configuration)
                                         .SelectMany(configuration => configuration.Groups)
                                         .Distinct(new GroupEqualityComparer());

            Picker.ShowMenu(linkLabelGroup, groups, ContextMenu_SelectGroup_GroupClicked);
        }
 private void UpdateSelectedGroup()
 {
     if (SelectedGroup != null)
     {
         SelectedGroup = SelectedMachines?.SelectMany(machine => ConnectionStore.Connections.Values
                                                      .First(connection => ProcessManager.DataObjects.Comparers.Comparer <Machine> .IDObjectsEqual(connection.Machine, machine))
                                                      .Configuration
                                                      .Groups)
                         .FirstOrDefault(group => Comparer.GroupsEqual(group, SelectedGroup));
     }
     UpdateLinkLabelGroup();
 }
 private void UpdateSelectedMachines()
 {
     SelectedMachines = SelectedMachines?
                        .Select(selectedMachine => ConnectionStore.Connections.Values
                                .Where(connection => connection.Configuration != null)
                                .Select(connection => connection.Machine)
                                .FirstOrDefault(machine => Comparer.MachinesEqual(machine, selectedMachine)))
                        .Where(machine => machine != null)
                        .Distinct(new MachineEqualityComparer())
                        .ToList();
     UpdateLinkLabelMachines();
 }
        private void UpdateMacroActionBundle()
        {
            ActionBundle.Actions.Clear();
            if (HasValidSelections)
            {
                ActionBundle.Actions.AddRange(SelectedMachines.SelectMany(machine => SelectedApplications
                                                                          .Select(application =>
                {
                    Configuration configuration   = ConnectionStore.Connections[machine].Configuration;
                    Group actualGroup             = configuration.Groups.FirstOrDefault(x => Comparer.GroupsEqual(x, SelectedGroup));
                    Application actualApplication = configuration.Applications.FirstOrDefault(x => Comparer.ApplicationsEqual(x, application));
                    return(actualGroup != null && actualApplication != null ? new MacroProcessAction(ActionBundle.Type, machine.ID, actualGroup.ID, actualApplication.ID) : null);
                })
                                                                          .Where(action => action != null)));
            }

            RaiseMacroActionItemChangedEvent();
        }
        private void LinkLabelApplications_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            IEnumerable <Tuple <Application, bool> > applications = SelectedMachines
                                                                    .Select(machine => ConnectionStore.Connections.Values
                                                                            .First(connection => ProcessManager.DataObjects.Comparers.Comparer <Machine> .IDObjectsEqual(connection.Machine, machine))
                                                                            .Configuration)
                                                                    .SelectMany(configuration => configuration
                                                                                .Applications
                                                                                .Where(application => configuration
                                                                                       .Groups
                                                                                       .Where(group => Comparer.GroupsEqual(group, SelectedGroup))
                                                                                       .SelectMany(group => group.Applications)
                                                                                       .Any(applicationID => ProcessManager.DataObjects.Comparers.Comparer <Application> .IDObjectsEqual(application, applicationID))))
                                                                    .Distinct(new ApplicationEqualityComparer())
                                                                    .Select(application => new Tuple <Application, bool>(application, SelectedApplications != null &&
                                                                                                                         SelectedApplications.Any(x => Comparer.ApplicationsEqual(application, x))));

            Picker.ShowMultiSelectMenu(linkLabelApplications, applications, ContextMenu_SelectApplications_MenuClosed);
        }
 private void UpdateSelectedApplications()
 {
     if (SelectedApplications != null)
     {
         SelectedApplications = SelectedMachines == null ? null : SelectedApplications
                                .Select(selectedApplication => SelectedMachines
                                        .Select(machine => ConnectionStore.Connections.Values
                                                .First(connection => ProcessManager.DataObjects.Comparers.Comparer <Machine> .IDObjectsEqual(connection.Machine, machine))
                                                .Configuration)
                                        .SelectMany(configuration => configuration
                                                    .Applications
                                                    .Where(application => configuration
                                                           .Groups
                                                           .Where(group => Comparer.GroupsEqual(group, SelectedGroup))
                                                           .SelectMany(group => group.Applications)
                                                           .Any(appID => ProcessManager.DataObjects.Comparers.Comparer <Application> .IDObjectsEqual(application, appID))))
                                        .FirstOrDefault(application => Comparer.ApplicationsEqual(application, selectedApplication)))
                                .Where(application => application != null)
                                .Distinct(new ApplicationEqualityComparer())
                                .ToList();
     }
     UpdateLinkLabelApplications();
 }
Example #7
0
        public void BindingAvailableMachineList()
        {
            if (IsAllowSelectAll)
            {
                lbMachines.SelectionMode = SelectionMode.Multiple;
                ckbSelectAll.IsEnabled   = true;
            }
            else
            {
                lbMachines.SelectionMode = SelectionMode.Single;
                ckbSelectAll.IsEnabled   = false;
            }


            availableMachines      = (Owner as MainWindow).m_machineVM.MachineCollection;
            lbMachines.ItemsSource = availableMachines;
            if (SelectedMachines != null)
            {
                if (SelectedMachines.Count > 0)
                {
                    foreach (OctopusLib.Machine am in lbMachines.Items)
                    {
                        if (SelectedMachines.Where(o => o.Name.Equals(am.Name, StringComparison.InvariantCultureIgnoreCase)).Count() == 1)
                        {
                            if (IsAllowSelectAll)
                            {
                                lbMachines.SelectedItems.Add(am);
                            }
                            else
                            {
                                lbMachines.SelectedItem = am;
                            }
                        }
                    }
                }
            }
        }
Example #8
0
        public void UpdateWorks(bool bMachines, bool bUsers, bool bNew, bool bConfirm, bool bInProduciton, bool bEnd,
                                bool bDate, int dateType, DateTime from, DateTime to)
        {
            var filter       = "";
            var filterStatus = "";

            if (bMachines)
            {
                if (SelectedMachines.Count > 0)
                {
                    filter = " WHERE MachineID IN (" + string.Join(",", SelectedMachines.OfType <Int32>().ToArray()) + ")";
                }
                else
                {
                    filter = " WHERE PlannedWorkID =-1";
                }
            }
            if (bUsers)
            {
                if (SelectedUsers.Count > 0)
                {
                    if (filter.Length > 0)
                    {
                        filter +=
                            " AND PlannedWorkID IN (SELECT PlannedWorkID FROM PlannedWorkUsers WHERE UserID IN (" +
                            string.Join(",", SelectedUsers.OfType <Int32>().ToArray()) + "))";
                    }
                    else
                    {
                        filter =
                            " WHERE PlannedWorkID IN (SELECT PlannedWorkID FROM PlannedWorkUsers WHERE UserID IN (" +
                            string.Join(",", SelectedUsers.OfType <Int32>().ToArray()) + "))";
                    }
                }
                else
                {
                    filter = " WHERE PlannedWorkID =-1";
                }
            }
            if (!bNew && !bConfirm && !bInProduciton && !bEnd)
            {
                filterStatus = "PlannedWorkStatusID=-1";
            }
            else
            {
                if (bNew)
                {
                    filterStatus = "PlannedWorkStatusID=1";
                }
                if (bConfirm)
                {
                    if (filterStatus.Length > 0)
                    {
                        filterStatus += " OR PlannedWorkStatusID=2";
                    }
                    else
                    {
                        filterStatus = "PlannedWorkStatusID=2";
                    }
                }
                if (bInProduciton)
                {
                    if (filterStatus.Length > 0)
                    {
                        filterStatus += " OR PlannedWorkStatusID=3";
                    }
                    else
                    {
                        filterStatus = "PlannedWorkStatusID=3";
                    }
                }
                if (bEnd)
                {
                    if (filterStatus.Length > 0)
                    {
                        filterStatus += " OR PlannedWorkStatusID=4";
                    }
                    else
                    {
                        filterStatus = "PlannedWorkStatusID=4";
                    }
                }
            }
            if (bDate)
            {
                if (dateType == 0)
                {
                    if (filter.Length > 0)
                    {
                        filter += " AND CAST(StartDate AS DATE) >= '" + from.ToString("yyyy-MM-dd") +
                                  "' AND CAST(StartDate AS DATE) <= '" + to.ToString("yyyy-MM-dd") + "' ";
                    }
                    else
                    {
                        filter = " WHERE CAST(StartDate AS DATE) >= '" + from.ToString("yyyy-MM-dd") +
                                 "' AND CAST(StartDate AS DATE) <= '" + to.ToString("yyyy-MM-dd") + "' ";
                    }
                }
                if (dateType == 1)
                {
                    if (filter.Length > 0)
                    {
                        filter += " AND CAST(CreateDate AS DATE) >= '" + from.ToString("yyyy-MM-dd") +
                                  "' AND CAST(CreateDate AS DATE) <= '" + to.ToString("yyyy-MM-dd") + "' ";
                    }
                    else
                    {
                        filter = " WHERE CAST(CreateDate AS DATE) >= '" + from.ToString("yyyy-MM-dd") +
                                 "' AND CAST(CreateDate AS DATE) <= '" + to.ToString("yyyy-MM-dd") + "' ";
                    }
                }
                if (dateType == 2)
                {
                    if (filter.Length > 0)
                    {
                        filter += " AND CAST(EndDate AS DATE) >= '" + from.ToString("yyyy-MM-dd") +
                                  "' AND CAST(EndDate AS DATE) <= '" + to.ToString("yyyy-MM-dd") + "' ";
                    }
                    else
                    {
                        filter = " WHERE CAST(EndDate AS DATE) >= '" + from.ToString("yyyy-MM-dd") +
                                 "' AND CAST(EndDate AS DATE) <= '" + to.ToString("yyyy-MM-dd") + "' ";
                    }
                }
            }
            if (filter.Length > 0)
            {
                filter += " AND (" + filterStatus + ")";
            }
            else
            {
                filter = " WHERE " + filterStatus;
            }

            var selectCommand = @"SELECT * FROM PlannedWorks " + filter;

            using (var da = new SqlDataAdapter(selectCommand, ConnectionStrings.LightConnectionString))
            {
                _plannedWorksDt.Clear();
                da.Fill(_plannedWorksDt);
            }
        }
        private void LinkLabelMachines_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            IEnumerable <Tuple <Machine, bool> > machines = ConnectionStore.Connections.Values
                                                            .Where(connection => connection.Configuration != null)
                                                            .Select(connection => connection.Machine)
                                                            .Distinct(new MachineEqualityComparer())
                                                            .Select(machine => new Tuple <Machine, bool>(machine, SelectedMachines != null &&
                                                                                                         SelectedMachines.Any(x => Comparer.MachinesEqual(machine, x))));

            Picker.ShowMultiSelectMenu(linkLabelMachines, machines, ContextMenu_SelectMachines_MenuClosed);
        }