Пример #1
0
 public void t_Tick(object sender, EventArgs e)
 {
     if ((DateTime.Now - dt).Seconds >= 2)
     {
         if (gameListView.Items.Count != 0)
         {
             for (int i = 0; i < gameListView.Items.Count; i++)
             {
                 ContentPresenter c                 = (ContentPresenter)gameListView.ItemContainerGenerator.ContainerFromItem(gameListView.Items[i]);
                 TextBlock        title             = c.ContentTemplate.FindName("PosterGameTitle", c) as TextBlock;
                 Canvas           canvas            = c.ContentTemplate.FindName("canvasTitle", c) as Canvas;
                 MaterialDesignThemes.Wpf.Card card = c.ContentTemplate.FindName("gameCard", c) as MaterialDesignThemes.Wpf.Card;
                 if (card.IsMouseOver == true)
                 {
                     if (title.Text.ToString().Length > 22)
                     {
                         doubleAnimation.From           = 0;
                         doubleAnimation.To             = canvas.ActualWidth;
                         doubleAnimation.RepeatBehavior = RepeatBehavior.Forever;
                         doubleAnimation.Duration       = new Duration(TimeSpan.Parse("0:0:5"));
                         title.BeginAnimation(Canvas.RightProperty, doubleAnimation);
                     }
                 }
             }
         }
     }
 }
Пример #2
0
        private async void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            await loadChangelog();

            var rows = SessionData.changelog.Split(new string[] { "<<<<|||;;;|||>>>>" }, StringSplitOptions.RemoveEmptyEntries);

            foreach (var row in rows)
            {
                var x = new MaterialDesignThemes.Wpf.Card();
                x.Margin = new Thickness(5);
                x.Width  = 400;
                container.Children.Add(x);
                var insiderStackPanel = new StackPanel();
                var title             = new Label();
                title.FontSize = 17;
                var content = new TextBlock();
                content.TextWrapping = TextWrapping.Wrap;
                content.Margin       = new Thickness(5);
                var segment = row.Split(new string[] { "<<<||;;||>>>" }, StringSplitOptions.RemoveEmptyEntries);
                title.Content = segment[0] + " - " + segment[2];
                var lines = segment[1].Split(new string[] { "<<|;|>>" }, StringSplitOptions.RemoveEmptyEntries);
                foreach (var line in lines)
                {
                    content.Text += line;
                }
                insiderStackPanel.Children.Add(title);
                insiderStackPanel.Children.Add(content);
                x.Content = insiderStackPanel;
            }
        }
Пример #3
0
 public Board()
 {
     addIcon        = new MaterialDesignThemes.Wpf.PackIcon();
     addIcon.Kind   = MaterialDesignThemes.Wpf.PackIconKind.Add;
     addIcon.Width  = 50;
     addIcon.Height = 50;
     addButton      = new System.Windows.Controls.Button()
     {
         Width               = 60,
         Height              = 60,
         BorderBrush         = Brushes.White,
         Background          = Brushes.White,
         Foreground          = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFB9CBE4")),
         HorizontalAlignment = System.Windows.HorizontalAlignment.Center,
         VerticalAlignment   = System.Windows.VerticalAlignment.Center,
         Content             = addIcon
     };
     contentGrid = new System.Windows.Controls.Grid();
     contentGrid.Children.Add(addButton);
     backgroundCard            = new MaterialDesignThemes.Wpf.Card();
     backgroundCard.Background = Brushes.White;
     backgroundCard.Margin     = new System.Windows.Thickness(20);
     backgroundCard.MinHeight  = 150;
     backgroundCard.Content    = contentGrid;
 }
Пример #4
0
        private void GenerateGuesses(List <List <MasterMindLibrary.Colors> > guesses)
        {
            foreach (List <MasterMindLibrary.Colors> guess in guesses)
            {
                MaterialDesignThemes.Wpf.Card card = new MaterialDesignThemes.Wpf.Card();
                card.Padding = new Thickness(5);
                card.Margin  = new Thickness(5);
                Grid grid = new Grid();
                grid.ColumnDefinitions.Add(new ColumnDefinition());
                grid.ColumnDefinitions.Add(new ColumnDefinition());
                grid.ColumnDefinitions.Add(new ColumnDefinition());
                grid.ColumnDefinitions.Add(new ColumnDefinition());

                for (int i = 0; i < guess.Count; i++)
                {
                    Ellipse ellipse = new Ellipse();
                    ellipse.Height = 50;
                    ellipse.Width  = 50;
                    ellipse.Fill   = solidColors[guess[i]];
                    ellipse.Stroke = new SolidColorBrush(Colors.Black);
                    ellipse.Margin = new Thickness(5);
                    Grid.SetColumn(ellipse, i);
                    grid.Children.Add(ellipse);
                }

                card.Content = grid;
                this.container.Children.Add(card);
            }
        }
Пример #5
0
        private async void Page_Loaded(object senderx, RoutedEventArgs ee)
        {
            System.Collections.Specialized.StringCollection x = (System.Collections.Specialized.StringCollection)Properties.Settings.Default["bookmarks"];
            if (x.Count != 0)
            {
                foreach (var i in x)
                {
                    try
                    {
                        var     json    = System.IO.File.ReadAllText(i + "\\" + new DirectoryInfo(i).Name + ".json");
                        dynamic decoded = JsonConvert.DeserializeObject(json);
                        var     card    = new MaterialDesignThemes.Wpf.Card();
                        card.Height = 90;
                        card.Width  = 200;
                        Label lab = new Label();
                        lab.Content    = decoded.instanceName;
                        lab.FontWeight = FontWeights.ExtraBold;
                        Button play = new Button();
                        play.Content    = "Play";
                        play.Foreground = new SolidColorBrush(Colors.White);
                        play.Click     += new RoutedEventHandler((sender, e) => play_click(this, e, i));
                        bookmarksContainer.Children.Add(card);
                        StackPanel panel = new StackPanel();
                        play.Margin             = new Thickness(10, 20, 10, 0);
                        lab.HorizontalAlignment = HorizontalAlignment.Center;
                        panel.Children.Add(lab);
                        panel.Children.Add(play);
                        card.Content = panel;
                    }
                    catch (Exception ex)
                    {
                        x.Remove(i);
                        Label lab = new Label();
                        lab.FontSize = 15;
                        lab.Content  = "An error occurred. We fixed it. Reload this page";
                        bookmarksContainer.Children.Add(lab);
                        break;
                    }
                }
            }
            else
            {
                Label lab = new Label();
                lab.FontSize = 15;
                lab.Content  = "No bookmarks. Go to installed modpacks and bookmark some modpacks there";
                bookmarksContainer.Children.Add(lab);
            }
            transition.SelectedIndex = 1;
            if (Properties.Settings.Default["justUpdated"].ToString() == "true")
            {
                await Task.Delay(400);

                await MaterialDesignThemes.Wpf.DialogHost.Show(new Dialogs.Changelog(), "RootDialog");

                Properties.Settings.Default["justUpdated"] = "false";
                Properties.Settings.Default.Save();
            }
        }
Пример #6
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            // force load material desgn dll
            var card = new MaterialDesignThemes.Wpf.Card();
            var hue  = new MaterialDesignColors.Hue(
                "Dummy",
                System.Windows.Media.Colors.Black,
                System.Windows.Media.Colors.White);
        }
Пример #7
0
 public Board(string name)
 {
     boardName       = name;
     editIcon        = new MaterialDesignThemes.Wpf.PackIcon();
     editIcon.Kind   = MaterialDesignThemes.Wpf.PackIconKind.Pencil;
     deleteIcon      = new MaterialDesignThemes.Wpf.PackIcon();
     deleteIcon.Kind = MaterialDesignThemes.Wpf.PackIconKind.Bin;
     editButton      = new System.Windows.Controls.Button()
     {
         Width               = 50,
         Height              = 50,
         BorderBrush         = Brushes.White,
         Background          = Brushes.White,
         Foreground          = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FF3A6FBB")),
         HorizontalAlignment = System.Windows.HorizontalAlignment.Left,
         VerticalAlignment   = System.Windows.VerticalAlignment.Top,
         Content             = editIcon
     };
     deleteButton = new System.Windows.Controls.Button()
     {
         Width               = 50,
         Height              = 50,
         BorderBrush         = Brushes.White,
         Background          = Brushes.White,
         Foreground          = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFD13F3F")),
         HorizontalAlignment = System.Windows.HorizontalAlignment.Right,
         VerticalAlignment   = System.Windows.VerticalAlignment.Top,
         Content             = deleteIcon
     };
     titleLabel = new System.Windows.Controls.Label()
     {
         Content             = boardName,
         FontSize            = 50,
         HorizontalAlignment = System.Windows.HorizontalAlignment.Center,
         VerticalAlignment   = System.Windows.VerticalAlignment.Center,
         Foreground          = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FF464E64")),
         FontFamily          = new FontFamily("Freestyle Script")
     };
     contentGrid = new System.Windows.Controls.Grid();
     contentGrid.Children.Add(titleLabel);
     contentGrid.Children.Add(editButton);
     contentGrid.Children.Add(deleteButton);
     backgroundCard            = new MaterialDesignThemes.Wpf.Card();
     backgroundCard.Background = Brushes.White;
     backgroundCard.Margin     = new System.Windows.Thickness(20);
     backgroundCard.MinHeight  = 150;
     backgroundCard.Content    = contentGrid;
     backgroundCard.MouseDown += BoardClick;
 }
Пример #8
0
 public void Marquee_Stop(object sender, RoutedEventArgs e)
 {
     if (gameListView.Items.Count != 0)
     {
         for (int i = 0; i < gameListView.Items.Count; i++)
         {
             ContentPresenter c                 = (ContentPresenter)gameListView.ItemContainerGenerator.ContainerFromItem(gameListView.Items[i]);
             Label            title             = c.ContentTemplate.FindName("GameTitle", c) as Label;
             Canvas           canvas            = c.ContentTemplate.FindName("canvasTitle", c) as Canvas;
             MaterialDesignThemes.Wpf.Card card = c.ContentTemplate.FindName("gameCard", c) as MaterialDesignThemes.Wpf.Card;
             if (card.IsMouseOver != true)
             {
                 if (title.Content.ToString().Length > 20)
                 {
                     title.BeginAnimation(Canvas.RightProperty, null);
                 }
             }
         }
     }
 }
Пример #9
0
        public TheoryTestUserControl(BE.Trainee trainee, TextBlock st, StackPanel lt, StackPanel ct, StackPanel rt, StackPanel tt, Rectangle rec,
                                     MaterialDesignThemes.Wpf.Card card, MaterialDesignThemes.Wpf.Card theory, Button b)
        {
            InitializeComponent();

            Trainee = trainee;

            if (iBL_Imp.GetTheoryStatus(Trainee) == BE.Thery_status.Hold)
            {
                text_hold.Text = "אין באפשרותך לעשות מבחן כרגע, תוכל לעשות את המבחן הבא\nבתאריך " +
                                 Trainee.Last_theory.AddDays(1).ToShortDateString() + " בשעה " + Trainee.Last_theory.AddDays(1).ToShortTimeString();
                text_hold.Visibility = Visibility.Visible;
                return;
            }

            sub_title      = st;
            left_tab       = lt;
            center_tab     = ct;
            right_tab      = rt;
            theory_tab     = tt;
            center_tab_rec = rec;
            new_test_view  = card;
            theory_test    = theory;
            exit           = b;

            txtblk_rules.Text = "במבחן התאוריה יוצגו בפניך " + BE.Configuration.Amount_questions
                                + " שאלות שמתוכם תצטרך לענות נכונה לפחות על " + (BE.Configuration.Amount_questions - BE.Configuration.Fail_theory + 1)
                                + "\n למילוי המבחן יש הגבלת זמן של " + BE.Configuration.Timer_theory + " דקות, כמובן שלמסיימים מוקדם יותר יש אפשרות להגיש קודם"
                                + "\n אם לא עברת מבחן זה בהצלחה - תאלץ לחכות 24 שעות עד שתוכל לעשות מבחן חדש";


            // initialize timer
            time           = BE.Configuration.Timer_theory * 60;
            Timer          = new DispatcherTimer();
            Timer.Interval = new TimeSpan(0, 0, 1);
            Timer.Tick    += Timer_Tick;

            before_test.Visibility = Visibility.Visible;
        }
 async void mods_click(object sender, RoutedEventArgs e, string card, string modpackName)
 {
     MaterialDesignThemes.Wpf.Card actual = (MaterialDesignThemes.Wpf.Card)modpacksContainer.FindName(card);
     await MaterialDesignThemes.Wpf.DialogHost.Show(new Dialogs.ModpackFullScreen(modpackName, true), "RootDialog");
 }
Пример #11
0
        private void DrawCalendar(int Year, int Mount)
        {
            grdCalendar.Children.RemoveRange(7, grdCalendar.Children.Count - 7);

            CurrentMount      = Mount;
            txtMountName.Text = MountsName[Mount - 1];

            Style cardTemplate = this.FindResource("tpCard") as Style;

            int       days = _PC.GetDaysInMonth(Year, Mount);
            DayOfWeek dW   = _PC.GetDayOfWeek(_PC.ToDateTime(Year, Mount, 1, 0, 0, 0, 0));

            int row = 1; int col = (int)dW;

            if (dW == DayOfWeek.Saturday)
            {
                col = 0;
            }
            else
            {
                col++;
            }

            for (int i = 1; i <= days; i++)
            {
                string       pDate    = Year + "/" + Mount.ToString().PadLeft(2, '0') + "/" + i.ToString().PadLeft(2, '0');
                Calendarlist calendar = Common.Cache.CalendarDays?.FirstOrDefault(x => x.date == pDate);

                if (calendar == null)
                {
                    calendar = new Calendarlist()
                    {
                        date = Year + "/" + Mount + "/" + i, canEdit = false, status = -1
                    };
                }

                Color color = GetColor(CalendarColor.ColorName.NoDate);
                switch (calendar.status)
                {
                case -1:
                    color = GetColor(CalendarColor.ColorName.NoDate);
                    break;

                case 0:
                    color = GetColor(CalendarColor.ColorName.Readonly);
                    break;

                case 1:
                    color = GetColor(CalendarColor.ColorName.Editable);
                    break;

                default:
                    break;
                }

                MaterialDesignThemes.Wpf.Card card = new MaterialDesignThemes.Wpf.Card
                {
                    Style       = cardTemplate,
                    DataContext = calendar,
                    Content     = calendar,
                    Background  = new SolidColorBrush(color)
                };

                grdCalendar.Children.Add(card);
                Grid.SetRow(card, row);
                Grid.SetColumn(card, col);

                card.MouseLeftButtonUp += Card_MouseLeftButtonUp;

                if (col > 0 && col % 6 == 0)
                {
                    row++;
                    col = 0;
                }
                else
                {
                    col++;
                }
            }
        }
Пример #12
0
        public void Plot(string name, string directory, string icon, double size, PlotType type)
        {
            try
            {
                BitmapImage image = new BitmapImage();
                image.BeginInit();
                image.CacheOption = BitmapCacheOption.OnLoad;

                string capacity = Math.Round(ByteSizeLib.ByteSize.FromMegaBytes(size).LargestWholeNumberValue, 2) + " " + ByteSizeLib.ByteSize.FromMegaBytes(size).LargestWholeNumberSymbol;
                if (type == PlotType.Create)
                {
                    Directory.CreateDirectory(directory);
                    Properties.Settings.Default.core.Add(directory);
                    Properties.Settings.Default.core3.Add(size);
                    Properties.Settings.Default.core2.Add(name);
                    Properties.Settings.Default.core4.Add(icon);
                    Properties.Settings.Default.Save();
                }

                MaterialDesignThemes.Wpf.Card pr = new MaterialDesignThemes.Wpf.Card();

                Grid   par  = new Grid();
                Image  img  = new Image();
                Label  lbl  = new Label();
                Label  full = new Label();
                Button btn  = new Button();
                Button menu = new Button();
                full.HorizontalAlignment = HorizontalAlignment.Left;
                full.Margin            = new Thickness(106, 65, 0, 0);
                full.VerticalAlignment = VerticalAlignment.Top;
                full.FontSize          = 12;
                full.Name               = "size" + partnm;
                full.Content            = "0 / " + capacity;
                lbl.HorizontalAlignment = HorizontalAlignment.Left;
                lbl.Height              = 56;
                lbl.Margin              = new Thickness(105, 11, 0, 0);
                lbl.VerticalAlignment   = VerticalAlignment.Top;
                lbl.FontSize            = 17;
                lbl.Name = "lbl" + partnm;
                if (name == "")
                {
                    lbl.Content = Properties.strings.plot + " " + partnm;
                }
                else
                {
                    lbl.Content = name;
                }
                img.HorizontalAlignment = HorizontalAlignment.Left;
                img.Height            = 56;
                img.Margin            = new Thickness(26, 20, 0, 0);
                img.VerticalAlignment = VerticalAlignment.Top;
                img.Width             = 57;
                if (icon == "")
                {
                    image.UriSource = new Uri("ploticon.ico", UriKind.Relative);
                    image.EndInit();
                    img.Source = image;
                }
                else
                {
                    if (File.Exists(Properties.Settings.Default.mainfolder + @"\IconsLibrary\" + icon))
                    {
                        image.UriSource = new Uri(Properties.Settings.Default.mainfolder + @"\IconsLibrary\" + icon);
                        image.EndInit();
                        img.Source = image;
                    }
                    else
                    {
                        image.UriSource = new Uri("ploticon.ico", UriKind.Relative);
                        image.EndInit();
                        img.Source = image;
                    }
                }
                par.Height   = 130;
                btn.Margin   = new Thickness(200, 70, 0, 0);
                menu.Name    = "menu" + partnm;
                menu.Height  = 30;
                menu.Content = new MaterialDesignThemes.Wpf.PackIcon {
                    Kind = MaterialDesignThemes.Wpf.PackIconKind.SettingsOutline, Width = 18, Height = 18
                };
                menu.Click += Menu_Click;
                menu.Margin = new Thickness(-240, 70, 0, 0);
                menu.Width  = 50;
                menu.SetResourceReference(Control.StyleProperty, "MaterialDesignToolButton");
                btn.SetResourceReference(Control.StyleProperty, "MaterialDesignFlatButton");
                btn.Height = 30;
                btn.Width  = 90;
                //btn.Content = new MaterialDesignThemes.Wpf.PackIcon { Kind = MaterialDesignThemes.Wpf.PackIconKind.Launch, Width = 22, Height = 22};
                btn.Content = Properties.strings.open_lbl.ToUpper();
                btn.Name    = "btn" + partnm;
                //btn.HorizontalContentAlignment = HorizontalAlignment.Right;
                btn.Click += btn_Click;

                par.Width = 327;
                System.Windows.Controls.ProgressBar status = new ProgressBar
                {
                    Name = "status" + partnm
                };
                Thickness progressmargin = new Thickness(109, 46, 0, 0);
                status.Margin = progressmargin;
                status.Height = 18;
                status.Width  = 193;
                status.HorizontalAlignment = HorizontalAlignment.Left;
                status.VerticalAlignment   = VerticalAlignment.Top;
                if (size == 0)
                {
                    status.Visibility = Visibility.Collapsed;
                }
                else
                {
                    status.Maximum = size;
                }
                status.Minimum    = 0;
                status.Foreground = Brushes.Indigo;
                status.SetResourceReference(Control.StyleProperty, "");

                if (type == PlotType.ViewScreen)
                {
                    if (!Directory.Exists(directory))
                    {
                        btn.Foreground = Brushes.Gray;
                        btn.Content    = Properties.strings.lost_lbl.ToUpper();
                        full.Content   = Properties.strings.lost;
                    }
                    else
                    {
                        double s     = ByteSizeLib.ByteSize.FromBytes(GetDirectorySize(directory)).LargestWholeNumberValue;
                        double sizes = ByteSizeLib.ByteSize.FromBytes(GetDirectorySize(directory)).MegaBytes;
                        string ss    = ByteSizeLib.ByteSize.FromBytes(GetDirectorySize(directory)).LargestWholeNumberSymbol;
                        status.Value = sizes;
                        if (size != 0)
                        {
                            full.Content = Math.Round(s, 2) + " " + ss + " / " + capacity;
                        }
                        else
                        {
                            full.Content = Math.Round(s, 2) + " " + ByteSizeLib.ByteSize.FromBytes(GetDirectorySize(directory)).LargestWholeNumberSymbol;
                        }
                    }
                }

                par.Name = "part" + partnm;
                par.Children.Add(full);
                par.Children.Add(lbl);
                par.Children.Add(img);
                par.Children.Add(btn);
                par.Children.Add(status);
                par.Children.Add(menu);

                pr.Content = par;
                Label l = new Label
                {
                    Content  = "",
                    FontSize = 2
                };
                if (isright)
                {
                    cards.Children.Add(pr);
                    cards.Children.Add(l);

                    System.Windows.Controls.Label ll = new Label
                    {
                        Width = 400
                    };
                    cards.Children.Add(ll);
                }
                else
                {
                    cards.Children.Add(pr);
                    cards.Children.Add(l);
                }

                isright = !isright;
                partnm++;
            }
            catch (Exception h)
            {
                MessageBox.Show(Properties.strings.error_unexpected + "\n\n" + h.Message, "DiskPlot", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Пример #13
0
        public void CursosPorYear()
        {
            Dictionary <string, object> datosQuery = CodigoDeAdomd2DimensionSA(@" SELECT NON EMPTY { [Measures].[Hecho Curso Prog Count] } ON COLUMNS, 
            NON EMPTY { ([Dim Curso].[Curso Descripcion].[Curso Descripcion].ALLMEMBERS * [Dim Fecha].[Fecha Anho].[Fecha Anho].ALLMEMBERS  ) } 
            DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM ( SELECT ( -{ [Dim Curso].[Curso Descripcion].[All].UNKNOWNMEMBER }
            ) ON COLUMNS FROM [CuboCursoProg]) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, 
            FONT_FLAGS");

            Func <double, string> yFormateador;
            Func <double, string> xFormateador;

            yFormateador = val => val.ToString("N");
            xFormateador = val => new DateTime((long)val).ToString("yyyy");

            SeriesCollection sCollection = new SeriesCollection();

            //List<string> labels = (List<string>)datosQuery["listaNombres"];

            LiveCharts.Wpf.Axis axisY = new LiveCharts.Wpf.Axis();
            axisY.Title = (string)datosQuery["tituloX"];

            axisY.LabelFormatter = yFormateador;
            LiveCharts.Wpf.Axis axisX = new LiveCharts.Wpf.Axis();
            axisX.Title          = (string)datosQuery["tituloY"];
            axisX.LabelFormatter = xFormateador;



            sCollection.AddRange((List <LineSeries>)datosQuery["listaValores"]);
            CartesianChart cartesianChart = new CartesianChart();

            cartesianChart.Series            = sCollection;
            cartesianChart.LegendLocation    = LegendLocation.Right;
            cartesianChart.Height            = 250;
            cartesianChart.VerticalAlignment = VerticalAlignment.Center;
            cartesianChart.AxisX.Add(axisX);
            cartesianChart.AxisY.Add(axisY);

            Grid  grd = new Grid();
            Label lbl = new Label();

            lbl.Content             = "Cursos Por Año";
            lbl.HorizontalAlignment = HorizontalAlignment.Center;
            //MaterialDesignThemes.Wpf.MaterialDesignFontExtension font = new MaterialDesignThemes.Wpf.MaterialDesignFontExtension();
            //lbl.Style = font.;
            lbl.FontSize = fontSizeConst;
            grd.Children.Add(lbl);

            MaterialDesignThemes.Wpf.Card crd    = new MaterialDesignThemes.Wpf.Card();
            System.Windows.Thickness      margin = new Thickness();
            margin.Left   = 106;
            margin.Top    = 676;
            margin.Right  = 0;
            margin.Bottom = 0;
            crd.Margin    = margin;
            crd.Width     = 800;
            crd.Height    = 300;

            grd.Children.Add(cartesianChart);
            crd.Content = grd;
            //crd.Content = cartesianChart;
            crd.HorizontalAlignment = HorizontalAlignment.Left;
            crd.VerticalAlignment   = VerticalAlignment.Top;
            grdMain.Children.Add(crd);
            currentElements.Add(crd);
            DataContext = this;
        }
Пример #14
0
        private void loadCar()
        {
            int         price         = 0;
            string      brand         = "";
            string      specification = "";
            string      model         = "";
            BitmapImage image         = null;
            string      number        = "";
            bool        reserved      = false;
            string      clas          = "";
            int         discount      = 0;

            connectToDataBase();
            string loadCars = "SELECT * FROM Cars";

            SqlCommand commandBrands = new SqlCommand(loadCars, connection);

            using (SqlDataReader reader = commandBrands.ExecuteReader())
            {
                while (reader.Read())
                {
                    price         = Convert.ToInt32(reader["price"]);
                    brand         = reader["brand"].ToString();
                    specification = reader["specification"].ToString();
                    model         = reader["model"].ToString();

                    if (reader["reserved"] != null)
                    {
                        reserved = true;
                    }
                    else
                    {
                        reserved = false;
                    }
                    number   = reader["car_number"].ToString();
                    clas     = reader["class"].ToString();
                    discount = Convert.ToInt32(reader["discount"]);
                    image    = loadPicture(reader["image"] as byte[]);

                    StreamReader       mysr = new StreamReader(@"C:\Users\Даниил\Documents\Visual Studio 2015\Projects\AutoPark\AutoPark\ResourcesStyles.xaml");
                    ResourceDictionary rd   = XamlReader.Load(mysr.BaseStream) as ResourceDictionary;
                    Style style             = rd["style"] as Style;

                    StringBuilder strbld = new StringBuilder();
                    Button        btn    = new Button();

                    strbld.Append(@"<materialDesign:Card
                            xmlns:materialDesign = 'http://materialdesigninxaml.net/winfx/xaml/themes'
                            xmlns ='http://schemas.microsoft.com/winfx/2006/xaml/presentation'
                            xmlns:x ='http://schemas.microsoft.com/winfx/2006/xaml'>");
                    strbld.Append(@"<Grid><Grid.RowDefinitions><RowDefinition Height='140'/>
                            <RowDefinition Height = 'auto'/><RowDefinition Height = '*'/><RowDefinition Height = '*'/><RowDefinition Height = '*'/></Grid.RowDefinitions>
                            <Image Source='Resources/noCar.png' Height='140' Width='220' Stretch='UniformToFill'/>
                            <Button Grid.Row='0' x:Name='btn' Style='{ StaticResource MaterialDesignFloatingActionMiniAccentButton}' HorizontalAlignment = 'Right' VerticalAlignment = 'Bottom' Margin = '0 0 20 -20'><materialDesign:PackIcon Kind = 'Car'/></Button>
                            <StackPanel Grid.Row='1' Margin='8 30 8 0'><TextBlock Style = '{StaticResource MaterialDesignBody2TextBlock}' x:Name = 'textblock' VerticalAlignment = 'Center'/></StackPanel>                            
                            <Separator Grid.Row='2' Style='{ StaticResource MaterialDesignDarkSeparator}' Margin='8 0 8 0'/>
                            <Grid Grid.Row = '3'><Grid.ColumnDefinitions><ColumnDefinition Width = 'auto'/><ColumnDefinition/></Grid.ColumnDefinitions>
                            <materialDesign:PackIcon Kind = 'AvTimer' VerticalAlignment = 'Top' Margin = '8 5 4 4'/>
                            <ListBox Grid.Column = '1' Style = '{ StaticResource MaterialDesignToolToggleFlatListBox}' VerticalAlignment = 'Top' SelectedIndex = '0' Margin = '12 0 8 4' >
                            <ListBox.Resources><Style TargetType = '{x:Type ListBoxItem}' BasedOn = '{StaticResource MaterialDesignToolToggleListBoxItem}'><Setter Property = 'Padding' Value = '4 6 4 6'/></Style></ListBox.Resources>
                            <ListBoxItem><TextBlock Text = '1 д'/></ListBoxItem>
                            <ListBoxItem><TextBlock Text = '7 д'/></ListBoxItem>
                            <ListBoxItem><TextBlock Text = '30 д'/></ListBoxItem></ListBox></Grid>
                            <Grid Grid.Row='5'><Grid.ColumnDefinitions><ColumnDefinition Width = 'auto'/><ColumnDefinition Width = 'auto'/><ColumnDefinition Width = 'auto'/></Grid.ColumnDefinitions>
                            <Button Grid.Column='0' Style='{ StaticResource MaterialDesignFlatButton}' HorizontalAlignment='Left' VerticalAlignment='Top' Margin='8 0 4 8'>RESERVE</Button>
                            <TextBlock Grid.Column = '1' Style = '{StaticResource MaterialDesignBody2TextBlock}' VerticalAlignment = 'Top' HorizontalAlignment = 'Left' Margin = '25,5,4,8' FontSize = '16'/>
                            <TextBlock Grid.Column = '2' Style = '{StaticResource MaterialDesignBody2TextBlock}' VerticalAlignment = 'Top' HorizontalAlignment = 'Left' Margin = '2,4,4,8' FontSize = '16' Text = 'руб.'/></Grid></Grid></materialDesign:Card>");

                    BitmapImage img = new BitmapImage(new Uri(@"C:\Users\Даниил\Desktop\noCar.png"));
                    MaterialDesignThemes.Wpf.Card crd = (MaterialDesignThemes.Wpf.Card)XamlReader.Parse(strbld.ToString());
                    Grid       gridFirst = (crd.Content as Grid);
                    Grid       gridSecond;
                    StackPanel panel        = new StackPanel();
                    bool       firstGrFound = false;

                    TextBlock priceTextBlock             = new TextBlock();
                    TextBlock nameTextBlock              = new TextBlock();
                    System.Windows.Controls.Image carImg = new System.Windows.Controls.Image();
                    Car car = new Car(price, brand, specification, model, image, number, reserved, clas, discount);

                    wrapPanelCars.Children.Add(crd);
                    crd.Style = style;
                    cardsList.Add(crd);

                    foreach (var item in gridFirst.Children)
                    {
                        if (item is Button)
                        {
                            (item as Button).Click += car.CarButton_Click;
                        }

                        if (item is System.Windows.Controls.Image)
                        {
                            carImg = (item as System.Windows.Controls.Image);
                            if (image == null)
                            {
                                carImg.Source = img;
                            }
                            else
                            {
                                carImg.Source = image;
                            }
                        }

                        if (item is StackPanel)
                        {
                            panel              = item as StackPanel;
                            nameTextBlock      = panel.Children[0] as TextBlock;
                            nameTextBlock.Text = model;
                        }

                        if (item is Grid && !firstGrFound)
                        {
                            gridSecond = (item as Grid);
                            foreach (var j in gridSecond.Children)
                            {
                                if (j is TextBlock)
                                {
                                    priceTextBlock = (j as TextBlock);
                                    if (priceTextBlock.Text == "")
                                    {
                                        priceTextBlock.Text = price.ToString();
                                        carPriceForBook     = price;
                                        //priceTextBlock.Text = car.getCalculatedPrice().ToString();
                                    }
                                }
                                if (j is Button)
                                {
                                    (j as Button).Click += car.BookCarButton_Click;
                                }

                                if (j is ListBox)
                                {
                                    (j as ListBox).SelectionChanged += car.listBox_selectedItemChange;
                                }
                            }
                        }
                    }
                }
            }
            connection.Close();
        }
Пример #15
0
        private void AddCar_Click(object sender, RoutedEventArgs e)
        {
            StreamReader       mysr = new StreamReader(@"C:\Users\Даниил\Documents\Visual Studio 2015\Projects\AutoPark\AutoPark\ResourcesStyles.xaml");
            ResourceDictionary rd   = XamlReader.Load(mysr.BaseStream) as ResourceDictionary;
            Style style             = rd["style"] as Style;

            System.Windows.Controls.Image noImg = new System.Windows.Controls.Image();
            StringBuilder strbld = new StringBuilder();
            Button        btn    = new Button();

            strbld.Append(@"<materialDesign:Card
                            xmlns:materialDesign = 'http://materialdesigninxaml.net/winfx/xaml/themes'
                            xmlns ='http://schemas.microsoft.com/winfx/2006/xaml/presentation'
                            xmlns:x ='http://schemas.microsoft.com/winfx/2006/xaml'>");
            strbld.Append(@"<Grid><Grid.RowDefinitions><RowDefinition Height='140'/>
                            <RowDefinition Height = 'auto'/><RowDefinition Height = '*'/><RowDefinition Height = '*'/><RowDefinition Height = '*'/></Grid.RowDefinitions>
                            <Image Source='Resources/noCar.png' Height='140' Width='220' Stretch='UniformToFill'/>
                            <Button Grid.Row='0' x:Name='btn' Style='{ StaticResource MaterialDesignFloatingActionMiniAccentButton}' HorizontalAlignment = 'Right' VerticalAlignment = 'Bottom' Margin = '0 0 20 -20'><materialDesign:PackIcon Kind = 'Car'/></Button>
                            <StackPanel Grid.Row='1' Margin='8 30 8 0'><TextBlock Style = '{StaticResource MaterialDesignBody2TextBlock}' x:Name = 'textblock' VerticalAlignment = 'Center'/></StackPanel>                            
                            <Separator Grid.Row='2' Style='{ StaticResource MaterialDesignDarkSeparator}' Margin='8 0 8 0'/>
                            <Grid Grid.Row = '3'><Grid.ColumnDefinitions><ColumnDefinition Width = 'auto'/><ColumnDefinition/></Grid.ColumnDefinitions>
                            <materialDesign:PackIcon Kind = 'AvTimer' VerticalAlignment = 'Top' Margin = '8 5 4 4'/>
                            <ListBox Grid.Column = '1' Style = '{ StaticResource MaterialDesignToolToggleFlatListBox}' VerticalAlignment = 'Top' SelectedIndex = '0' Margin = '4 0 8 4' >
                            <ListBox.Resources><Style TargetType = '{x:Type ListBoxItem}' BasedOn = '{StaticResource MaterialDesignToolToggleListBoxItem}'><Setter Property = 'Padding' Value = '4 6 4 6'/></Style></ListBox.Resources>
                            <ListBoxItem><TextBlock Text = '1 д'/></ListBoxItem>
                            <ListBoxItem><TextBlock Text = '7 д'/></ListBoxItem>
                            <ListBoxItem><TextBlock Text = '30 д'/></ListBoxItem></ListBox></Grid>
                            <Grid Grid.Row='5'><Grid.ColumnDefinitions><ColumnDefinition Width = 'auto'/><ColumnDefinition Width = 'auto'/><ColumnDefinition Width = 'auto'/></Grid.ColumnDefinitions>
                            <Button Grid.Column='0' Style='{ StaticResource MaterialDesignFlatButton}' HorizontalAlignment='Left' VerticalAlignment='Top' Margin='8 0 4 8'>RESERVE</Button>
                            <TextBlock Grid.Column = '1' Style = '{StaticResource MaterialDesignBody2TextBlock}' VerticalAlignment = 'Top' HorizontalAlignment = 'Left' Margin = '25,5,4,8' FontSize = '16'/>
                            <TextBlock Grid.Column = '2' Style = '{StaticResource MaterialDesignBody2TextBlock}' VerticalAlignment = 'Top' HorizontalAlignment = 'Left' Margin = '2,4,4,8' FontSize = '16' Text = 'руб.'/></Grid></Grid></materialDesign:Card>");


            MaterialDesignThemes.Wpf.Card crd = (MaterialDesignThemes.Wpf.Card)XamlReader.Parse(strbld.ToString());
            Grid       gridFirst = (crd.Content as Grid);
            Grid       gridSecond;
            StackPanel panel          = new StackPanel();
            bool       firstGrFound   = false;
            Button     bookBtn        = new Button();
            TextBlock  priceTextBlock = new TextBlock();
            TextBlock  nameTextBlock  = new TextBlock();

            System.Windows.Controls.Image carImg = new System.Windows.Controls.Image();
            BitmapImage carImgBit = loadPicture(byteArray);

            Car car = new Car(Convert.ToInt32(CarPriceTextBox.Text), CarBrandComboBox.Text, CarSpecTextBox.Text, CarBrandComboBox.Text + " " + CarModelTextBox.Text + " " + CarTransmissionComboBox.Text, carImgBit, CarNumberTextBox.Text, false, CarClassTextBox.Text, Convert.ToInt32(CarDiscountTextBox.Text));

            wrapPanelCars.Children.Add(crd);
            crd.Style = style;
            cardsList.Add(crd);

            foreach (var item in gridFirst.Children)
            {
                if (item is Button)
                {
                    (item as Button).Click += car.CarButton_Click;
                }

                if (item is System.Windows.Controls.Image)
                {
                    if (byteArray == null)
                    {
                        (item as System.Windows.Controls.Image).Source = noImgBtm;
                    }
                    else
                    {
                        (item as System.Windows.Controls.Image).Source = carImgBit;
                    }
                }

                if (item is StackPanel)
                {
                    panel              = item as StackPanel;
                    nameTextBlock      = panel.Children[0] as TextBlock;
                    nameTextBlock.Text = CarBrandComboBox.Text + " " + CarModelTextBox.Text + " " + CarTransmissionComboBox.Text;
                }

                if (item is Grid && !firstGrFound)
                {
                    gridSecond = (item as Grid);
                    foreach (var j in gridSecond.Children)
                    {
                        if (j is TextBlock)
                        {
                            priceTextBlock = (j as TextBlock);
                            if (priceTextBlock.Text == "")
                            {
                                priceTextBlock.Text = CarPriceTextBox.Text;
                            }
                        }

                        if (j is Button)
                        {
                            (j as Button).Click += car.BookCarButton_Click;
                        }

                        if (j is ListBox)
                        {
                            (j as ListBox).SelectionChanged += car.listBox_selectedItemChange;
                            priceTextBlock.Text              = car.calculatedDics.ToString();
                        }
                    }
                }
            }

            connectToDataBase();
            int autopark_id = 0;

            string     retrieveAutoparkKey = "SELECT autopark_id FROM Autopark WHERE address = @address";
            SqlCommand commandAutoParkkey  = new SqlCommand(retrieveAutoparkKey, connection);

            commandAutoParkkey.Parameters.AddWithValue("@address", CarAutoParkComboBox.Text);
            using (SqlDataReader reader = commandAutoParkkey.ExecuteReader())
            {
                while (reader.Read())
                {
                    autopark_id = Convert.ToInt32(reader["autopark_id"]);
                }
            }

            string addCar = "INSERT INTO Cars VALUES(@car_number,@brand,@spec,@class,@autopark,@model,@reserved,@discount,@pic,@price)";

            SqlCommand commandAddCar = new SqlCommand(addCar, connection);

            try {
                if (byteArray == null)
                {
                    commandAddCar.Parameters.AddWithValue("@price", Convert.ToInt32(CarPriceTextBox.Text));
                    commandAddCar.Parameters.AddWithValue("@brand", CarBrandComboBox.Text);
                    commandAddCar.Parameters.AddWithValue("@car_number", CarNumberTextBox.Text);
                    commandAddCar.Parameters.AddWithValue("@spec", CarSpecTextBox.Text);
                    commandAddCar.Parameters.AddWithValue("@class", CarClassTextBox.Text);
                    commandAddCar.Parameters.AddWithValue("@autopark", autopark_id.ToString());
                    commandAddCar.Parameters.AddWithValue("@model", CarModelTextBox.Text + " " + CarTransmissionComboBox.Text);
                    commandAddCar.Parameters.AddWithValue("@reserved", "1");
                    commandAddCar.Parameters.AddWithValue("@discount", CarDiscountTextBox.Text);
                    commandAddCar.Parameters.AddWithValue("@pic", System.Data.SqlTypes.SqlBinary.Null);
                    commandAddCar.ExecuteNonQuery();
                }
                else
                {
                    commandAddCar.Parameters.AddWithValue("@price", Convert.ToInt32(CarPriceTextBox.Text));
                    commandAddCar.Parameters.AddWithValue("@brand", CarBrandComboBox.Text);
                    commandAddCar.Parameters.AddWithValue("@car_number", CarNumberTextBox.Text);
                    commandAddCar.Parameters.AddWithValue("@spec", CarSpecTextBox.Text);
                    commandAddCar.Parameters.AddWithValue("@class", CarClassTextBox.Text);
                    commandAddCar.Parameters.AddWithValue("@autopark", autopark_id.ToString());
                    commandAddCar.Parameters.AddWithValue("@model", CarModelTextBox.Text + " " + CarTransmissionComboBox.Text);
                    commandAddCar.Parameters.AddWithValue("@reserved", "1");
                    commandAddCar.Parameters.AddWithValue("@discount", CarDiscountTextBox.Text);
                    commandAddCar.Parameters.AddWithValue("@pic", byteArray);
                    commandAddCar.ExecuteNonQuery();
                }
            } catch (Exception ex)
            {
                MessageBox.Show("Havent managed to execute query");
                throw ex;
            } finally
            {
                MainTabControl.SelectedItem = CarTab;
                CarAutoParkComboBox.Text    = "";
                CarBrandComboBox.Text       = "";
                CarClassTextBox.Text        = "";
                CarDiscountTextBox.Text     = "";
                CarModelTextBox.Text        = "";
                CarPriceTextBox.Text        = "";
                CarSpecTextBox.Text         = "";
                CarNumberTextBox.Text       = "";
                var messageQueue = CarAddedSnackBar.MessageQueue;
                var message      = "Машина успешно добавлена";

                messageQueue.Enqueue(message);
            }

            connection.Close();
            fillUpDataGrids();
            AddCarCard.Visibility = Visibility.Collapsed;
        }
Пример #16
0
        public void AlumnosPorYearLineChart() // inscripciones
        {
            Dictionary <string, object> datosQuery = CodigoDeAdomd2Dimension(@"  SELECT NON EMPTY { [Measures].[Hecho Inscripcion Count] } ON COLUMNS, NON EMPTY { ([Dim Curso].[Curso Descripcion].[Curso Descripcion].ALLMEMBERS * [Dim Fecha].[Fecha Anho].[Fecha Anho].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM ( SELECT ( { [Dim Curso].[Curso Modulo Descripcion].&[MODULO 1 COTILLON], [Dim Curso].[Curso Modulo Descripcion].&[MODULO 1 DECORACIONES BASICAS Y TORTAS COMERCIALES], [Dim Curso].[Curso Modulo Descripcion].&[MODULO 1 DISEÑO DE UÑAS], [Dim Curso].[Curso Modulo Descripcion].&[MODULO 1 INTRODUCCION A LA BARBERIA], [Dim Curso].[Curso Modulo Descripcion].&[MODULO 1 INTRODUCCION A LA GASTRONOMIA], [Dim Curso].[Curso Modulo Descripcion].&[MODULO 1 INTRODUCION A LA GASTRONOMIA], [Dim Curso].[Curso Modulo Descripcion].&[MODULO 1 PANADERIA COMERCIAL Y ARTESANAL], [Dim Curso].[Curso Modulo Descripcion].&[MODULO 1 PASTELERIA COMERCIAL I], [Dim Curso].[Curso Modulo Descripcion].&[MODULO 1 COCINA SALUDABLE BASICA Y COMIDA RAPIDA] } ) ON COLUMNS FROM ( SELECT ( -{ [Dim Curso].[Curso Descripcion].&[Matricula] } ) ON COLUMNS FROM ( SELECT ( -{ [Dim Fecha].[Fecha Anho].&[2009] } ) ON COLUMNS FROM [CuboInscripcion]))) WHERE ( [Dim Curso].[Curso Modulo Descripcion].CurrentMember ) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS");
            Func <double, string>       yFormateador;

            yFormateador = value => value.ToString("N");
            SeriesCollection sCollection = new SeriesCollection();
            List <string>    labels      = (List <string>)datosQuery["listaNombres"];

            LiveCharts.Wpf.Axis axisY = new LiveCharts.Wpf.Axis();
            axisY.Title = (string)datosQuery["tituloY"];

            axisY.LabelFormatter = yFormateador;
            LiveCharts.Wpf.Axis axisX = new LiveCharts.Wpf.Axis();
            axisX.Title  = (string)datosQuery["tituloX"];
            axisX.Labels = labels;



            sCollection.AddRange((List <LineSeries>)datosQuery["listaValores"]);


            CartesianChart cartesianChart = new CartesianChart();

            cartesianChart.Series            = sCollection;
            cartesianChart.Tag               = "Inscripciones por anho";
            cartesianChart.LegendLocation    = LegendLocation.Right;
            cartesianChart.Height            = 168;
            cartesianChart.VerticalAlignment = VerticalAlignment.Center;
            cartesianChart.AxisX.Add(axisX);
            cartesianChart.AxisY.Add(axisY);

            Grid  grd = new Grid();
            Label lbl = new Label();

            lbl.Content             = "Alumnos Por Año";
            lbl.HorizontalAlignment = HorizontalAlignment.Center;
            //MaterialDesignThemes.Wpf.MaterialDesignFontExtension font = new MaterialDesignThemes.Wpf.MaterialDesignFontExtension();
            //lbl.Style = font.;
            lbl.FontSize = fontSizeConst;
            grd.Children.Add(lbl);

            MaterialDesignThemes.Wpf.Card crd    = new MaterialDesignThemes.Wpf.Card();
            System.Windows.Thickness      margin = new Thickness();
            margin.Left   = 105;
            margin.Top    = 86;
            margin.Right  = 0;
            margin.Bottom = 0;
            crd.Margin    = margin;
            crd.Width     = 1150;
            crd.Height    = 225;
            crd.Tag       = "Inscripciones por Year";

            grd.Children.Add(cartesianChart);
            crd.Content = grd;
            //crd.Content = cartesianChart;

            crd.HorizontalAlignment = HorizontalAlignment.Left;
            crd.VerticalAlignment   = VerticalAlignment.Top;
            grdMain.Children.Add(crd);
            currentElements.Add(crd);
            DataContext = this;
        }
        //Get forecasts and display them
        //Each date has a tab in the tabcontrol and each forecast has a card in each tab
        private void BtnGetForecasts_Click(object sender, RoutedEventArgs e)
        {
            if (!validInputs()) return;

            crdError.Visibility = Visibility.Hidden;
            tbctrlForecasts.Items.Clear();

            //List of all forecasts with same city and date
            List<UserForecast> matchingForecasts = getMatchingForecasts();

            tbctrlForecasts.Visibility = Visibility.Visible;

            DateTime dt = (DateTime)dtpFrom.SelectedDate;

            string fileTimeStamp = DateTime.UtcNow.ToFileTimeUtc()+"";

            var writeReport = MessageBox.Show("Would you like to save this report to file?",
                                     "Save Report",
                                     System.Windows.MessageBoxButton.YesNo);

            if(user.UserType == UserType.Forecaster && writeReport == System.Windows.MessageBoxResult.Yes)
            {
                startWritingToReportFile(fileTimeStamp);
            }

            while (dt.Date.CompareTo(((DateTime)dtpTo.SelectedDate).Date) <= 0)
            {
                var date = dt;
                TabItem tabItem = new TabItem();
                tabItem.Padding = new Thickness(5);
                tabItem.Header = dt.ToLongDateString();

                tbctrlForecasts.Items.Add(tabItem);

                ScrollViewer scrollViewer = new ScrollViewer();
                tabItem.Content = scrollViewer;

                StackPanel stackPanel = new StackPanel();
                scrollViewer.Content = stackPanel;

                //List of forecasts which match date, decides which forecast to put on the card
                List<UserForecast> fc = matchingForecasts.Where(o => o.ForecastDate.Date.Equals(date.Date)).OrderBy(f => codeCityDict[f.CityID].name).ToList();

                //List of cities that dont have forecasts for selected dates
                List<City> nm = getSelectedCities().Where(o => forecasts.Where(f => f.ForecastDate.Date.Equals(date.Date) && f.CityID == o.id).ToList().Count == 0).OrderBy(o => o.name).ToList();

                #region Make card for each forecast
                foreach (UserForecast forecast in fc)
                {
                    //Make objects to store the forecasts with the highest/lowest values
                    UserForecast maxTempObj;
                    UserForecast minTempObj;
                    UserForecast maxWindObj;
                    UserForecast maxHumidityObj;
                    UserForecast maxPrecipObj;

                    //Get extremes
                    maxTempObj = fc.Where(o => o.MaximumTemp == fc.Max(f => f.MaximumTemp)).ToList()[0];
                    minTempObj = fc.Where(o => o.MinimumTemp == fc.Min(f => f.MinimumTemp)).ToList()[0];
                    maxWindObj = fc.Where(o => o.WindSpeed == fc.Max(f => f.WindSpeed)).ToList()[0];
                    maxHumidityObj = fc.Where(o => o.Humidity == fc.Max(f => f.Humidity)).ToList()[0];
                    maxPrecipObj = fc.Where(o => o.Precipitation == fc.Max(f => f.Precipitation)).ToList()[0];

                    //Make card
                    MaterialDesignThemes.Wpf.Card card = new MaterialDesignThemes.Wpf.Card();
                    card.Background = new SolidColorBrush(Color.FromArgb(51, 0, 0, 0));
                    card.Foreground = new SolidColorBrush(Colors.White);
                    card.Margin = new Thickness(10);
                    card.Padding = new Thickness(10, 10, 0, 50);

                    Grid grid = new Grid();
                    grid.Background = new SolidColorBrush(Color.FromArgb(0, 0, 0, 0));

                    //nv = Non-value, not used to ouput values.....lbl used to output values
                    card.Content = grid;

                    //City output
                    TextBlock lblCity = new TextBlock();
                    lblCity.VerticalAlignment = VerticalAlignment.Top;
                    lblCity.HorizontalAlignment = HorizontalAlignment.Left;
                    lblCity.FontSize = 28;
                    lblCity.Margin = new Thickness(10, 10, 0, 0);
                    lblCity.TextAlignment = TextAlignment.Center;
                    lblCity.Text = codeCityDict[forecast.CityID].ToString();

                    //Date nv
                    TextBlock nvDate = new TextBlock();
                    nvDate.VerticalAlignment = VerticalAlignment.Top;
                    nvDate.HorizontalAlignment = HorizontalAlignment.Left;
                    nvDate.FontSize = 22;
                    nvDate.Margin = new Thickness(98, 97, 0, 0);
                    nvDate.Text = "Date:";

                    //Date output
                    TextBlock lblDate = new TextBlock();
                    lblDate.VerticalAlignment = VerticalAlignment.Top;
                    lblDate.HorizontalAlignment = HorizontalAlignment.Left;
                    lblDate.FontSize = 22;
                    lblDate.Margin = new Thickness(419, 97, 0, 0);
                    lblDate.Text = forecast.ForecastDate.ToLongDateString();
                    lblDate.FontStyle = FontStyles.Italic;


                    //Min value nv
                    TextBlock nvMin = new TextBlock();
                    nvMin.VerticalAlignment = VerticalAlignment.Top;
                    nvMin.HorizontalAlignment = HorizontalAlignment.Left;
                    nvMin.FontSize = 22;
                    nvMin.Margin = new Thickness(98, 129, 0, 0);
                    nvMin.Text = "Min:";

                    //Min temp output
                    TextBlock lblMin = new TextBlock();
                    lblMin.VerticalAlignment = VerticalAlignment.Top;
                    lblMin.HorizontalAlignment = HorizontalAlignment.Left;
                    lblMin.FontSize = 22;
                    lblMin.Margin = new Thickness(419, 129, 0, 0);
                    lblMin.Text = forecast.MinimumTemp + " °C";
                    lblMin.FontStyle = FontStyles.Italic;
                    lblMin.Foreground = (forecast.Equals(minTempObj) && fc.Count > 1) ? Brushes.Red : Brushes.White;


                    //Max value nv
                    TextBlock nvMax = new TextBlock();
                    nvMax.VerticalAlignment = VerticalAlignment.Top;
                    nvMax.HorizontalAlignment = HorizontalAlignment.Left;
                    nvMax.FontSize = 22;
                    nvMax.Margin = new Thickness(98, 160, 0, 0);
                    nvMax.Text = "Max:";

                    //Max temp output
                    TextBlock lblMax = new TextBlock();
                    lblMax.VerticalAlignment = VerticalAlignment.Top;
                    lblMax.HorizontalAlignment = HorizontalAlignment.Left;
                    lblMax.FontSize = 22;
                    lblMax.Margin = new Thickness(419, 160, 0, 0);
                    lblMax.Text = forecast.MaximumTemp + " °C";
                    lblMax.FontStyle = FontStyles.Italic;
                    lblMax.Foreground = (forecast.Equals(maxTempObj) && fc.Count > 1) ? Brushes.Red : Brushes.White;


                    //Wind nv
                    TextBlock nvWind = new TextBlock();
                    nvWind.VerticalAlignment = VerticalAlignment.Top;
                    nvWind.HorizontalAlignment = HorizontalAlignment.Left;
                    nvWind.FontSize = 22;
                    nvWind.Margin = new Thickness(98, 191, 0, 0);
                    nvWind.Text = "Wind Speed:";

                    //Wind speed output
                    TextBlock lblWind = new TextBlock();
                    lblWind.VerticalAlignment = VerticalAlignment.Top;
                    lblWind.HorizontalAlignment = HorizontalAlignment.Left;
                    lblWind.FontSize = 22;
                    lblWind.Margin = new Thickness(419, 191, 0, 0);
                    lblWind.Text = forecast.WindSpeed + " km/h";
                    lblWind.FontStyle = FontStyles.Italic;
                    lblWind.Foreground = (forecast.Equals(maxWindObj) && fc.Count > 1) ? Brushes.Red : Brushes.White;


                    //Humidity nv
                    TextBlock nvHumidity = new TextBlock();
                    nvHumidity.VerticalAlignment = VerticalAlignment.Top;
                    nvHumidity.HorizontalAlignment = HorizontalAlignment.Left;
                    nvHumidity.FontSize = 22;
                    nvHumidity.Margin = new Thickness(98, 222, 0, 0);
                    nvHumidity.Text = "Humidity:";

                    //Humidity output
                    TextBlock lblHumidity = new TextBlock();
                    lblHumidity.VerticalAlignment = VerticalAlignment.Top;
                    lblHumidity.HorizontalAlignment = HorizontalAlignment.Left;
                    lblHumidity.FontSize = 22;
                    lblHumidity.Margin = new Thickness(419, 222, 0, 0);
                    lblHumidity.Text = forecast.Humidity + " %";
                    lblHumidity.FontStyle = FontStyles.Italic;
                    lblHumidity.Foreground = (forecast.Equals(maxHumidityObj) && fc.Count > 1) ? Brushes.Red : Brushes.White;


                    //Precipitation nv
                    TextBlock nvPrecipitation = new TextBlock();
                    nvPrecipitation.VerticalAlignment = VerticalAlignment.Top;
                    nvPrecipitation.HorizontalAlignment = HorizontalAlignment.Left;
                    nvPrecipitation.FontSize = 22;
                    nvPrecipitation.Margin = new Thickness(98, 253, 0, 0);
                    nvPrecipitation.Text = "Precipitation:";

                    //Precipitation output
                    TextBlock lblPrecipitation = new TextBlock();
                    lblPrecipitation.VerticalAlignment = VerticalAlignment.Top;
                    lblPrecipitation.HorizontalAlignment = HorizontalAlignment.Left;
                    lblPrecipitation.FontSize = 22;
                    lblPrecipitation.Margin = new Thickness(419, 253, 0, 0);
                    lblPrecipitation.Text = forecast.Precipitation + " %";
                    lblPrecipitation.FontStyle = FontStyles.Italic;
                    lblPrecipitation.Foreground = (forecast.Equals(maxPrecipObj) && fc.Count > 1) ? Brushes.Red : Brushes.White;

                    //Edit button
                    Button btnEdit = new Button();
                    if (user.UserType == UserType.Forecaster)
                    {
                        btnEdit.VerticalAlignment = VerticalAlignment.Top;
                        btnEdit.HorizontalAlignment = HorizontalAlignment.Left;
                        btnEdit.FontSize = 22;
                        btnEdit.Padding = new Thickness(10, 10, 10, 10);
                        btnEdit.Margin = new Thickness(419, 10, 0, 0);
                        btnEdit.Height = double.NaN;
                        btnEdit.Content = "Edit Forecast";
                        btnEdit.Name = "btnEdit" + forecast.CityID + "_" + forecast.ForecastDate.ToShortDateString().Replace('/', '_');
                        btnEdit.Click += BtnEdit_Click;
                        btnEdit.Foreground = new SolidColorBrush(Colors.White);
                        btnEdit.Background = new SolidColorBrush(Color.FromArgb(51, 0, 0, 0));
                    }


                    //Adding controls to UI
                    grid.Children.Add(lblCity);
                    grid.Children.Add(lblDate);
                    grid.Children.Add(nvDate);
                    grid.Children.Add(lblMin);
                    grid.Children.Add(nvMin);
                    grid.Children.Add(lblMax);
                    grid.Children.Add(nvMax);
                    grid.Children.Add(lblWind);
                    grid.Children.Add(nvWind);
                    grid.Children.Add(lblHumidity);
                    grid.Children.Add(nvHumidity);
                    grid.Children.Add(lblPrecipitation);
                    grid.Children.Add(nvPrecipitation);
                    if (user.UserType == UserType.Forecaster)
                    {
                        grid.Children.Add(btnEdit);
                    }
                    stackPanel.Children.Add(card);
                }
                #endregion

                #region Make card for each city with no forecast
                foreach (City c in nm)
                {
                    //Make card
                    MaterialDesignThemes.Wpf.Card card = new MaterialDesignThemes.Wpf.Card();
                    card.Background = new SolidColorBrush(Color.FromArgb(51, 0, 0, 0));
                    card.Foreground = new SolidColorBrush(Colors.White);
                    card.Margin = new Thickness(10);
                    card.Padding = new Thickness(10, 10, 0, 50);

                    Grid grid = new Grid();
                    grid.Background = new SolidColorBrush(Color.FromArgb(0, 0, 0, 0));

                    card.Content = grid;

                    //City output
                    TextBlock lblCity = new TextBlock();
                    lblCity.VerticalAlignment = VerticalAlignment.Top;
                    lblCity.HorizontalAlignment = HorizontalAlignment.Left;
                    lblCity.FontSize = 28;
                    lblCity.Margin = new Thickness(10, 10, 0, 0);
                    lblCity.TextAlignment = TextAlignment.Center;
                    lblCity.Text = c.ToString();

                    //No forecast message
                    TextBlock nvNoForecast = new TextBlock();
                    nvNoForecast.VerticalAlignment = VerticalAlignment.Top;
                    nvNoForecast.HorizontalAlignment = HorizontalAlignment.Left;
                    nvNoForecast.FontSize = 22;
                    nvNoForecast.Margin = new Thickness(98, 97, 0, 0);
                    nvNoForecast.Text = "No forecast for " + date.ToLongDateString();

                    //Add controls to UI
                    grid.Children.Add(lblCity);
                    grid.Children.Add(nvNoForecast);
                    stackPanel.Children.Add(card);

                }
                #endregion

                if (user.UserType == UserType.Forecaster && writeReport==System.Windows.MessageBoxResult.Yes)
                {
                    writeForecastToFile(fileTimeStamp, dt, fc, nm);
                }

                dt = dt.AddDays(1);
                Console.WriteLine("");
            }

            tbctrlForecasts.SelectedIndex = 0;
            if (user.UserType == UserType.Forecaster && writeReport == System.Windows.MessageBoxResult.Yes)
            {
                MessageBox.Show("Report saved as Report - " + fileTimeStamp + ".txt");
            }

        }
Пример #18
0
        private void DoughnutChart() //Cursos
        {
            Dictionary <string, object> datosQuery = CodigoDeAdomd1Dimension(@"SELECT NON EMPTY { [Measures].[Hecho Inscripcion Count] } ON COLUMNS, 
            NON EMPTY { ([Dim Fecha].[Fecha Hora].[Fecha Hora].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME 
            ON ROWS FROM [CuboInscripcion] CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, 
            FONT_FLAGS");
            int width  = 350;
            int height = 250;

            PointLabel = ChartPoint => string.Format("({1:P})", ChartPoint.Y, ChartPoint.Participation);
            PieChart pc = new PieChart();


            int           contador     = 0;
            List <string> listaNombres = (List <string>)datosQuery["listaNombres"];
            var           ValoresPie   = new PieSeries[listaNombres.Count];

            foreach (var cv in (List <double>)datosQuery["listaValores"])
            {
                ValoresPie[contador] = new PieSeries {
                    Title = listaNombres.ElementAt(contador), Values = new ChartValues <double>()
                    {
                        cv
                    }, LabelPoint = PointLabel, DataLabels = true
                };
                contador++;
            }
            SeriesCollection sc = new SeriesCollection();

            sc.AddRange(ValoresPie);

            pc.Series         = sc;
            pc.InnerRadius    = 100;
            pc.LegendLocation = LegendLocation.Right;

            pc.Width  = 280;
            pc.Height = 80;
            System.Windows.Thickness margin = new Thickness();
            margin.Left = 10;
            margin.Top  = 100;

            pc.Margin              = margin;
            pc.VerticalAlignment   = VerticalAlignment.Top;
            pc.HorizontalAlignment = HorizontalAlignment.Left;


            MaterialDesignThemes.Wpf.Card crd = new MaterialDesignThemes.Wpf.Card();

            margin.Left   = 923;
            margin.Top    = 400;
            margin.Right  = 0;
            margin.Bottom = 0;
            crd.Margin    = margin;
            crd.Width     = width;
            crd.Height    = height;



            Grid  grd = new Grid();
            Label lbl = new Label();

            lbl.Content             = "Horarios Mas Concurridos";
            lbl.HorizontalAlignment = HorizontalAlignment.Center;
            //System.Windows.Thickness margin = new Thickness();

            //MaterialDesignThemes.Wpf.MaterialDesignFontExtension font = new MaterialDesignThemes.Wpf.MaterialDesignFontExtension();
            //lbl.Style = font.;
            lbl.FontSize = fontSizeConst;
            grd.Children.Add(lbl);

            grd.Children.Add(pc);
            crd.Content = grd;
            //crd.Content = pc;
            //crd.Padding = padding;
            crd.HorizontalAlignment = HorizontalAlignment.Left;
            crd.VerticalAlignment   = VerticalAlignment.Top;
            crd.Uid = "dcWEBA";
            grdMain.Children.Add(crd);
            currentElements.Add(crd);
            DataContext = this;
        }
Пример #19
0
        /// <summary>
        /// Card create method, XAML
        /// </summary>
        public void cardAdapter()
        {
            foreach (RecipeModel model in rootModel.results)
            {
                // Create Card
                MaterialDesignThemes.Wpf.Card card = new MaterialDesignThemes.Wpf.Card
                {
                    Width             = 200,
                    VerticalAlignment = VerticalAlignment.Top,
                    Margin            = new Thickness(10),
                };

                wrap.Children.Add(card);

                // Create Grid
                Grid grid = new Grid();
                grid.Height = 288;

                RowDefinition row1 = new RowDefinition();
                RowDefinition row2 = new RowDefinition();
                RowDefinition row3 = new RowDefinition();

                row1.Height = new GridLength(140);
                row2.Height = new GridLength(1, GridUnitType.Star);
                row3.Height = new GridLength(1, GridUnitType.Auto);

                grid.RowDefinitions.Add(row1);
                grid.RowDefinitions.Add(row2);
                grid.RowDefinitions.Add(row3);

                card.Content = grid;



                //Create image
                Image       image  = new Image();
                BitmapImage bitmap = new BitmapImage();
                bitmap.BeginInit();
                if (string.IsNullOrWhiteSpace(model.thumbnail))
                {
                    bitmap.UriSource = new Uri("background.jpg", UriKind.Relative);
                }
                else
                {
                    bitmap.UriSource = new Uri(model.thumbnail, UriKind.Absolute);
                }
                bitmap.EndInit();
                image.Stretch = Stretch.UniformToFill;
                image.Source  = bitmap;
                image.Height  = 140;

                grid.Children.Add(image);

                // Create Button
                Button button = new Button
                {
                    HorizontalAlignment = HorizontalAlignment.Right,
                    VerticalAlignment   = VerticalAlignment.Bottom,
                    Margin = new Thickness(0, 0, 16, -20)
                };
                Style style = this.FindResource("MaterialDesignFloatingActionMiniAccentButton") as Style;
                button.Style       = style;
                button.Foreground  = new SolidColorBrush(Color.FromRgb(225, 225, 225));
                button.Background  = new SolidColorBrush(Color.FromRgb(77, 41, 145));
                button.BorderBrush = new SolidColorBrush(Color.FromRgb(225, 225, 225));
                MaterialDesignThemes.Wpf.PackIcon icon = new MaterialDesignThemes.Wpf.PackIcon();
                icon.Kind      = MaterialDesignThemes.Wpf.PackIconKind.Food;
                button.Content = icon;
                Grid.SetRow(button, 0);
                grid.Children.Add(button);

                StackPanel stackPanel = new StackPanel();
                stackPanel.Margin = new Thickness(8, 24, 8, 0);

                Grid.SetRow(stackPanel, 1);
                grid.Children.Add(stackPanel);
                TextBlock textBlock1 = new TextBlock
                {
                    FontWeight = FontWeights.Bold,
                    Text       = model.title,
                };
                stackPanel.Children.Add(textBlock1);

                TextBlock textBlock2 = new TextBlock
                {
                    Text = model.ingredients,
                    VerticalAlignment = VerticalAlignment.Center,
                    TextWrapping      = TextWrapping.Wrap
                };
                stackPanel.Children.Add(textBlock2);


                StackPanel stackPanel2 = new StackPanel
                {
                    HorizontalAlignment = HorizontalAlignment.Right,
                    Orientation         = Orientation.Horizontal,
                    Margin = new Thickness(8),
                };
                Grid.SetRow(stackPanel2, 2);
                grid.Children.Add(stackPanel2);

                Button buttonMore = new Button();
                Style  style2     = this.FindResource("MaterialDesignRaisedButton") as Style;
                buttonMore.Style    = style2;
                buttonMore.Height   = 35;
                buttonMore.FontSize = 11;
                buttonMore.Content  = "See more";
                buttonMore.Click   += new RoutedEventHandler(btn_Click);
                buttonMore.Tag      = model.href;

                stackPanel2.Children.Add(buttonMore);
            }
        }
 async void installModpack_click(object sender, RoutedEventArgs e, string card, string modpackName)
 {
     MaterialDesignThemes.Wpf.Card actual = (MaterialDesignThemes.Wpf.Card)modpacksContainer.FindName(card);
     await MaterialDesignThemes.Wpf.DialogHost.Show(new Dialogs.InstallModpack(modpackName), "RootDialog", null, ExtendedClosingEventHandler);
 }
Пример #21
0
        public void AlumnosPorMesLineChart() // inscripciones
        {
            Dictionary <string, object> datosQuery = CodigoDeAdomd1Dimension(@"SELECT NON EMPTY { [Measures].[Hecho Inscripcion Count] } ON COLUMNS, 
            NON EMPTY ORDER( ([Dim Fecha].[Fecha Mes].[Fecha Mes].ALLMEMBERS ), [Dim Fecha].[Fecha Mes].CurrentMember.MEMBERValue, ASC)
            DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS
            FROM [CuboInscripcion] CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS");

            Func <double, string> yFormateador;

            yFormateador = value => value.ToString("N");
            SeriesCollection sCollection = new SeriesCollection();
            List <string>    labels      = (List <string>)datosQuery["listaNombres"];

            LiveCharts.Wpf.Axis axisY = new LiveCharts.Wpf.Axis();
            axisY.Title = (string)datosQuery["tituloY"];

            axisY.LabelFormatter = yFormateador;
            LiveCharts.Wpf.Axis axisX = new LiveCharts.Wpf.Axis();
            axisX.Title  = (string)datosQuery["tituloX"];
            axisX.Labels = labels;
            ChartValues <double> myChartValues = new ChartValues <double>();
            List <double>        listaValores  = (List <double>)datosQuery["listaValores"];

            foreach (double value in listaValores)
            {
                myChartValues.Add(value);
            }
            sCollection = new SeriesCollection
            {
                new LineSeries
                {
                    Title = "Inscripciones", Values = myChartValues
                }
            };

            Grid  grd = new Grid();
            Label lbl = new Label();

            lbl.Content             = "Inscripciones por mes";
            lbl.HorizontalAlignment = HorizontalAlignment.Center;
            //MaterialDesignThemes.Wpf.MaterialDesignFontExtension font = new MaterialDesignThemes.Wpf.MaterialDesignFontExtension();
            //lbl.Style = font.;
            lbl.FontSize = fontSizeConst;
            grd.Children.Add(lbl);

            CartesianChart cartesianChart = new CartesianChart();

            cartesianChart.Series            = sCollection;
            cartesianChart.Tag               = "Inscripciones por mes";
            cartesianChart.LegendLocation    = LegendLocation.Right;
            cartesianChart.Height            = 168;
            cartesianChart.VerticalAlignment = VerticalAlignment.Center;
            cartesianChart.AxisX.Add(axisX);
            cartesianChart.AxisY.Add(axisY);


            MaterialDesignThemes.Wpf.Card crd    = new MaterialDesignThemes.Wpf.Card();
            System.Windows.Thickness      margin = new Thickness();
            margin.Left   = 105;
            margin.Top    = 86;
            margin.Right  = 0;
            margin.Bottom = 0;
            crd.Margin    = margin;
            crd.Width     = 800;
            crd.Height    = 225;
            crd.Tag       = "Inscripciones por mes";

            grd.Children.Add(cartesianChart);
            crd.Content = grd;
            //crd.Content = cartesianChart;

            crd.HorizontalAlignment = HorizontalAlignment.Left;
            crd.VerticalAlignment   = VerticalAlignment.Top;
            grdMain.Children.Add(crd);
            currentElements.Add(crd);
            DataContext = this;
        }
Пример #22
0
        public void CursosMasBaratosPieChart() //analisis de inscripciones
        {
            Dictionary <string, object> datosQuery = CodigoDeAdomd1Dimension(@"SELECT NON EMPTY { [Measures].[Metrica Pago] } ON COLUMNS, 
            NON EMPTY { ([Dim Curso].[Curso Descripcion].[Curso Descripcion].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, 
            MEMBER_UNIQUE_NAME ON ROWS FROM [CuboInscripcion] CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, 
            FONT_NAME, FONT_SIZE, FONT_FLAGS");

            int width  = 350;
            int height = 300;

            PointLabel = ChartPoint => string.Format("({1:P})", ChartPoint.Y, ChartPoint.Participation);
            PieChart pc = new PieChart();

            int           contador     = 0;
            List <string> listaNombres = (List <string>)datosQuery["listaNombres"];
            var           ValoresPie   = new PieSeries[listaNombres.Count];

            foreach (var cv in (List <double>)datosQuery["listaValores"])
            {
                ValoresPie[contador] = new PieSeries {
                    Title = listaNombres.ElementAt(contador), Values = new ChartValues <double>()
                    {
                        cv
                    }, LabelPoint = PointLabel, DataLabels = true
                };
                contador++;
            }
            SeriesCollection sc = new SeriesCollection();

            sc.AddRange(ValoresPie);

            pc.LegendLocation = LegendLocation.Bottom;
            pc.Series         = sc;
            pc.Width          = width;
            pc.Height         = height;
            object tmp = pc.ChartLegend;


            Grid  grd = new Grid();
            Label lbl = new Label();

            lbl.Content             = "Curso mas barato";
            lbl.HorizontalAlignment = HorizontalAlignment.Center;
            System.Windows.Thickness margin = new Thickness();
            margin.Top = 20;
            pc.Margin  = margin;
            //MaterialDesignThemes.Wpf.MaterialDesignFontExtension font = new MaterialDesignThemes.Wpf.MaterialDesignFontExtension();
            //lbl.Style = font.;
            lbl.FontSize = fontSizeConst;
            grd.Children.Add(lbl);

            MaterialDesignThemes.Wpf.Card crd = new MaterialDesignThemes.Wpf.Card();
            //System.Windows.Thickness margin = new Thickness();
            margin.Left   = 923;
            margin.Top    = 86;
            margin.Right  = 0;
            margin.Bottom = 0;
            crd.Margin    = margin;
            crd.Width     = width;
            crd.Height    = height;
            //crd.Tag = "Utilidades por curso";

            grd.Children.Add(pc);
            crd.Content = grd;
            //crd.Content = pc;

            crd.HorizontalAlignment = HorizontalAlignment.Left;
            crd.VerticalAlignment   = VerticalAlignment.Top;
            grdMain.Children.Add(crd);
            currentElements.Add(crd);
            DataContext = this;
        }
Пример #23
0
        private void TendeciaAlumnosXDocentesBarra() //Inscripciones
        {
            Dictionary <string, object> datosQuery = CodigoDeAdomd1Dimension(@" SELECT NON EMPTY { [Measures].[Hecho Inscripcion Count] } ON COLUMNS, 
            NON EMPTY { ([Dim Profesor].[Porfesor Nombre].[Porfesor Nombre].ALLMEMBERS ) } DIMENSION PROPERTIES 
            MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM [CuboInscripcion] CELL PROPERTIES VALUE, BACK_COLOR, 
            FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS");
            SeriesCollection            SeriesCollectionc;
            List <string>         Labelsc   = (List <string>)datosQuery["listaNombres"];
            Func <double, string> Formatter = value => value.ToString("N");

            LiveCharts.Wpf.Axis axisY = new LiveCharts.Wpf.Axis();
            axisY.Title = (string)datosQuery["tituloY"];

            axisY.LabelFormatter = Formatter;
            LiveCharts.Wpf.Axis axisX = new LiveCharts.Wpf.Axis();
            axisX.Title  = (string)datosQuery["tituloX"];
            axisX.Labels = Labelsc;



            ChartValues <double> myChartValues = new ChartValues <double>();
            List <double>        listaValores  = (List <double>)datosQuery["listaValores"];

            foreach (double value in listaValores)
            {
                myChartValues.Add(value);
            }
            SeriesCollectionc = new SeriesCollection
            {
                new ColumnSeries
                {
                    Values = myChartValues
                }
            };

            Grid  grd = new Grid();
            Label lbl = new Label();

            lbl.Content             = "Tendencia de Alumnos Por Docentes";
            lbl.HorizontalAlignment = HorizontalAlignment.Center;
            //MaterialDesignThemes.Wpf.MaterialDesignFontExtension font = new MaterialDesignThemes.Wpf.MaterialDesignFontExtension();
            //lbl.Style = font.;
            lbl.FontSize = fontSizeConst;
            grd.Children.Add(lbl);

            CartesianChart cartesianChart = new CartesianChart();

            cartesianChart.Series = SeriesCollectionc;

            cartesianChart.LegendLocation    = LegendLocation.Right;
            cartesianChart.Height            = 250;
            cartesianChart.VerticalAlignment = VerticalAlignment.Center;
            cartesianChart.AxisX.Add(axisX);
            cartesianChart.AxisY.Add(axisY);


            MaterialDesignThemes.Wpf.Card crd    = new MaterialDesignThemes.Wpf.Card();
            System.Windows.Thickness      margin = new Thickness();
            margin.Left   = 105;
            margin.Top    = 350;
            margin.Right  = 0;
            margin.Bottom = 0;
            crd.Margin    = margin;
            crd.Width     = 800;
            crd.Height    = 300;

            grd.Children.Add(cartesianChart);
            crd.Content = grd;
            //crd.Content = cartesianChart;

            crd.HorizontalAlignment = HorizontalAlignment.Left;
            crd.VerticalAlignment   = VerticalAlignment.Top;
            grdMain.Children.Add(crd);
            currentElements.Add(crd);
            DataContext = this;
        }
        protected void CreateModpackCard(string name, string description)
        {
            var card = new MaterialDesignThemes.Wpf.Card();

            card.Name = "card" + name.Replace(" ", "");
            try
            {
                modpacksContainer.RegisterName(card.Name, card);
            }
            catch (Exception e)
            {
                modpacksContainer.UnregisterName(card.Name);
                modpacksContainer.RegisterName(card.Name, card);
            }
            card.Height = 320;
            card.Width  = 300;
            card.Margin = new Thickness(4);
            card.HorizontalAlignment = HorizontalAlignment.Left;

            var insiderStackPanel = new StackPanel();

            card.Content = insiderStackPanel;

            //INSIDE STACKPANEL
            Style buttonstyle = Application.Current.FindResource("MaterialDesignFloatingActionMiniAccentButton") as Style;

            var fullscreenbutton = new Button();

            fullscreenbutton.ToolTip = "Fullscreen";
            var iconpackfullscreen = new MaterialDesignThemes.Wpf.PackIcon();

            iconpackfullscreen.Kind              = MaterialDesignThemes.Wpf.PackIconKind.Fullscreen;
            fullscreenbutton.Content             = iconpackfullscreen;
            fullscreenbutton.Style               = buttonstyle;
            fullscreenbutton.HorizontalAlignment = HorizontalAlignment.Right;
            fullscreenbutton.VerticalAlignment   = VerticalAlignment.Bottom;
            fullscreenbutton.Margin              = new Thickness(0, 0, 16, -130);
            Panel.SetZIndex(fullscreenbutton, 10);
            fullscreenbutton.Click += new RoutedEventHandler((sender, e) => fullscreen_click(this, e, card.Name, name));

            var sharebutton = new Button();

            sharebutton.ToolTip = "Share";
            var iconpackshare = new MaterialDesignThemes.Wpf.PackIcon();

            iconpackshare.Kind              = MaterialDesignThemes.Wpf.PackIconKind.ShareVariant;
            sharebutton.Content             = iconpackshare;
            sharebutton.Style               = buttonstyle;
            sharebutton.HorizontalAlignment = HorizontalAlignment.Right;
            sharebutton.VerticalAlignment   = VerticalAlignment.Bottom;
            sharebutton.Margin              = new Thickness(0, 0, 66, -130);
            Panel.SetZIndex(sharebutton, 10);
            insiderStackPanel.Children.Add(fullscreenbutton);
            insiderStackPanel.Children.Add(sharebutton);

            var image = new Image();

            image.Source  = new BitmapImage(new Uri(@"/Images/modpacks.jpg", UriKind.Relative));
            image.Stretch = Stretch.Fill;
            image.Width   = 300;
            image.Height  = 120;
            insiderStackPanel.Children.Add(image);

            var title = new Label();

            title.FontWeight          = FontWeights.ExtraBold;
            title.Content             = name;
            title.Margin              = new Thickness(0, 10, 0, 0);
            title.FontSize            = 15;
            title.HorizontalAlignment = HorizontalAlignment.Center;
            insiderStackPanel.Children.Add(title);

            var scrollviewer = new ScrollViewer();

            scrollviewer.Height = 70;
            var textblock = new TextBlock();

            textblock.TextWrapping = TextWrapping.Wrap;
            textblock.Text         = description;
            scrollviewer.Content   = textblock;
            insiderStackPanel.Children.Add(scrollviewer);

            var ratingStackPanel = new StackPanel();

            ratingStackPanel.Orientation         = Orientation.Horizontal;
            ratingStackPanel.HorizontalAlignment = HorizontalAlignment.Center;
            var ratingtitle = new Label();

            ratingtitle.VerticalAlignment = VerticalAlignment.Center;
            ratingtitle.Content           = "Rate this modpack";
            var ratingbar = new MaterialDesignThemes.Wpf.RatingBar();

            ratingbar.Margin = new Thickness(10);
            ratingStackPanel.Children.Add(ratingtitle);
            ratingStackPanel.Children.Add(ratingbar);
            insiderStackPanel.Children.Add(ratingStackPanel);

            var buttonStackPanel = new StackPanel();

            buttonStackPanel.Orientation = Orientation.Horizontal;
            var button1 = new Button();
            var button2 = new Button();
            var button3 = new Button();

            button1.Foreground = new SolidColorBrush(Colors.White);
            button2.Foreground = new SolidColorBrush(Colors.White);
            button3.Foreground = new SolidColorBrush(Colors.White);
            button1.Margin     = new Thickness(15, 0, 3, 0);
            button3.Margin     = new Thickness(3, 0, 0, 0);
            button1.Content    = "Install";
            button2.Content    = "View Mods";
            button3.Content    = "Website";
            buttonStackPanel.Children.Add(button1);
            buttonStackPanel.Children.Add(button2);
            buttonStackPanel.Children.Add(button3);
            button1.Click += new RoutedEventHandler((sender, e) => installModpack_click(this, e, card.Name, name));
            button2.Click += new RoutedEventHandler((sender, e) => mods_click(this, e, card.Name, name));
            insiderStackPanel.Children.Add(buttonStackPanel);

            modpacksContainer.Children.Add(card);
        }
Пример #25
0
    public void RefreshDesign ()
    {
      m_Grid.Children.Clear ();

      // Result - Property
      // Propery (row 0)

      // Gadget Name
      var gadgetName = new TextBlock ()
      {
        Padding = new Thickness (2),
        FontWeight = FontWeights.SemiBold,
        Text = Model.ControlModel.GadgetName,
      };

      gadgetName.SetValue (Grid.ColumnProperty, 0); // col 0

      // Gadget Date
      var date = new TextBlock ()
      {
        Padding = new Thickness (2),
        FontWeight = FontWeights.SemiBold,
        Text = Model.ControlModel.Date.ToString ("dd-MMM-yy", CultureInfo.InvariantCulture),
        HorizontalAlignment = HorizontalAlignment.Right,
      };

      date.SetValue (Grid.ColumnProperty, 1); // col 1

      var gridTop = new Grid ();
      gridTop.ColumnDefinitions.Add (new ColumnDefinition () { Width = new GridLength (1, GridUnitType.Star) }); // col 0 Info
      gridTop.ColumnDefinitions.Add (new ColumnDefinition () { Width = new GridLength (1, GridUnitType.Star) }); // col 1 Date
      gridTop.SetValue (Grid.RowProperty, 0); // row 0
      gridTop.Children.Add (gadgetName); // col 0
      gridTop.Children.Add (date); // col 1


      // description 
      var description = new TextBox ()
      {
        Margin = new Thickness (3),
        Padding = new Thickness (3),
        MaxWidth = 400,
        MaxHeight = 100,
        TextWrapping = TextWrapping.Wrap,
        TextAlignment = TextAlignment.Center,
        VerticalAlignment = VerticalAlignment.Top,
        VerticalScrollBarVisibility = ScrollBarVisibility.Auto,
        Text = Model.ControlModel.Description,
      };

      description.SetValue (Grid.RowProperty, 1); // row 1

      var gridCard = new Grid ();
      m_Grid.RowDefinitions.Add (new RowDefinition () { Height = new GridLength (1, GridUnitType.Auto) }); // row 0 
      m_Grid.RowDefinitions.Add (new RowDefinition () { Height = new GridLength (1, GridUnitType.Auto) }); // row 1 
      gridCard.Children.Add (gridTop);
      gridCard.Children.Add (description);

      var card = new MaterialDesignThemes.Wpf.Card
      {
        Margin = new Thickness (1, 0, 1, 10),
        Padding = new Thickness (2),
        HorizontalAlignment = HorizontalAlignment.Stretch,
        Content = gridCard,
      };

      card.SetValue (Grid.RowProperty, 0); // row 0
      m_Grid.Children.Add (card); // row 0

      // Result - Registration
      // Test (row 1 )
      var grid1 = new Grid ()
      {
        HorizontalAlignment = HorizontalAlignment.Stretch
      };

      grid1.ColumnDefinitions.Add (new ColumnDefinition () { Width = new GridLength (1, GridUnitType.Star) }); // col 0 Result Test
      grid1.ColumnDefinitions.Add (new ColumnDefinition () { Width = new GridLength (1, GridUnitType.Auto) }); // col 1 Result - Registration
      grid1.SetValue (Grid.RowProperty, 1); // row 1
      m_Grid.Children.Add (grid1); // row 1

      #region Test List
      // Test col 0
      // TestList 
      var gadgets = new Collection<GadgetTest> ();
      Model.ControlModel.RequestContent (gadgets);

      var testInfo = new TextBlock
      {
        FontWeight = FontWeights.SemiBold,
        Text = $"test list [{gadgets.Count}]",
      };

      var testStack = new StackPanel ();
      testStack.SetValue (Grid.ColumnProperty, 0); // col 0
      testStack.Children.Add (testInfo);
      grid1.Children.Add (testStack); // col  0

      string itemTemplate = @"
          <DataTemplate
              xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'
              xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
              xmlns:converters='clr-namespace:rr.Library.Converter;assembly=rr.Library.Converter' >

              <DataTemplate.Resources>
                <converters:TCollectionToBitmapImageConverter  x:Key='CollectionToBitmapImageConverter' />
              </DataTemplate.Resources>

                <StackPanel>
                  <StackPanel Orientation='Horizontal'>
                        <Image Width='16'
                               Height='16'
                               ToolTip='{Binding Material}'
                                Source='{Binding GadgetImage, Converter={StaticResource CollectionToBitmapImageConverter}}' />

                        <ContentControl  Visibility='{Binding ContentTestVisibility}'
                                         Style='{DynamicResource GadgetTestMiniIcon}' />

                        <ContentControl  Visibility='{Binding ContentTargetVisibility}'
                                         Style='{DynamicResource GadgetTargetMiniIcon}' />

                        <TextBlock Margin='5 0 0 0'
                                   Text='{Binding GadgetName}'
                                   FontWeight='Bold' 
                                   Foreground='DarkBlue'
                                   VerticalAlignment='Center' />
                  </StackPanel>

                  <TextBox FontSize='10px' IsReadOnly='true' MaxWidth='400' TextWrapping='Wrap' Text='{Binding Description}' />

                  <ItemsControl Margin='10 5 0 0'
                                ItemsSource='{Binding ContentNamesFull}' />
                </StackPanel>
          </DataTemplate>"
      ;

      using (var sr = new System.IO.MemoryStream (System.Text.Encoding.UTF8.GetBytes (itemTemplate))) {
        var testList = new ListBox ()
        {
          Margin = new Thickness (0, 5, 0, 0),
          ItemsSource = gadgets,
          HorizontalAlignment = HorizontalAlignment.Left,
          ItemTemplate = System.Windows.Markup.XamlReader.Load (sr) as DataTemplate,
        };

        var scroll = new ScrollViewer ()
        {
          Margin = new Thickness (0, 0, 10, 0),
          Height = 230,
          HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled,
          VerticalScrollBarVisibility = ScrollBarVisibility.Visible,
          Padding = new Thickness (5),
          Content = testList
        };

        testStack.Children.Add (scroll);
      }
      #endregion

      #region Registration
      // Registration col 1
      var component = TActionComponent.Create (Server.Models.Infrastructure.TCategory.Registration);
      Model.ControlModel.RequestContent (component.Models.GadgetRegistrationModel);

      var componentControlModel = Registration.TComponentControlModel.CreateDefault;
      componentControlModel.SelectModel (component);

      var componentControl = new Registration.TComponentDisplayControl ()
      {
        Model = componentControlModel,
        HorizontalAlignment = HorizontalAlignment.Right,
      };

      componentControl.SetValue (Grid.ColumnProperty, 1); // col 1
      grid1.Children.Add (componentControl); // col  1 
      #endregion
    }