public AddCardForm(LoginCard Card)
 {
     InitializeComponent();
     Login.Text    = Card.Login;
     Password.Text = Card.Password;
     Site.Text     = Card.SiteURL;
     Logo.Source   = new BitmapImage(new Uri(Card.PictureURL, UriKind.Relative));
 }
        static public List <LoginCard> ReadCardList(string path)
        {
            List <LoginCard> CardList = new List <LoginCard>();

            //cryptor.DecryptFile(path,path+"D");
            //File.Delete(path);
            //File.Move(path +"D", path);

            if (!File.Exists(path))
            {
                File.Create(path);
            }

            string[] Text = new string[0];
            try
            {
                Text = File.ReadAllLines(path);
            }
            catch
            { }

            if (Text.Length < 5)
            {
                return(null);
            }

            for (int i = 0; i < Text.Length; i += 6)
            {
                bool flag;
                if (Text[i + 5] == "True")
                {
                    flag = true;
                }
                else
                {
                    flag = false;
                }

                LoginCard card = new LoginCard(
                    Text[i + 1],
                    Text[i + 2],
                    Text[i + 3],
                    Text[i + 4],
                    flag
                    );
                CardList.Add(card);
            }

            return(CardList);
        }
        private void ApplyImgBtn_MouseDown(object sender, MouseButtonEventArgs e)
        {
            string URL;

            if (Logo.Source != null)
            {
                URL = System.IO.Path.GetFileNameWithoutExtension(Logo.Source.ToString()) + ".png";
            }
            else
            {
                URL = "Resources/no-logo.png";
            }

            var card =
                new LoginCard(Login.Text, Password.Text, Site.Text, URL);

            Card.SendCard(card);
            this.Close();
        }
        public List <LoginCard> MakeCardList(string browser)
        {
            List <LoginCard> list = new List <LoginCard>();
            var tmp = BrowserDB[browser];

            for (int i = 0; i < tmp.Count; i++)
            {
                LoginCard card = new LoginCard(
                    tmp[i][0],
                    tmp[i][1],
                    tmp[i][2],
                    browser + ".png",
                    false,
                    tmp[i][3],
                    tmp[i][4]
                    );
                list.Add(card);
            }

            return(list);
        }
        public void BrowserAutoComplete(LoginCard card)
        {
            string browser     = IdentifyDefaultBrowser();
            string target_name = "";

            OpenQA.Selenium.IWebDriver driver = null;

            switch (browser)
            {
            case "Firefox": { driver = new OpenQA.Selenium.Firefox.FirefoxDriver(); target_name = "geckodriver"; break; }

            case "Chrome": { driver = new OpenQA.Selenium.Chrome.ChromeDriver(); target_name = "chromedriver"; break; }

            case "Edge": { driver = new OpenQA.Selenium.Edge.EdgeDriver(); target_name = "MicrosoftWebDriver"; break; }

            default: { driver = new OpenQA.Selenium.IE.InternetExplorerDriver(); target_name = "IEDriverServer"; break; }
            }

            try
            {
                driver.Navigate().GoToUrl(card.SiteURL);
                driver.FindElement(By.Name(card.LogElem)).Clear();
                driver.FindElement(By.Name(card.LogElem)).SendKeys(card.Login);
                driver.FindElement(By.Name(card.PassElem)).Clear();
                driver.FindElement(By.Name(card.PassElem)).SendKeys(card.Password);
            }
            catch
            { }

            try
            {
                System.Diagnostics.Process[] local_procs = System.Diagnostics.Process.GetProcesses();
                System.Diagnostics.Process   target_proc = local_procs.First(p => p.ProcessName == target_name);
                target_proc.Kill();
            }
            catch { }
        }
        public void AddCard(LoginCard Card, int index)
        {
            Grid grid = new Grid();

            int deltaX = 0, deltaY = 0;

            if (index % 2 == 0)
            {
                deltaX = 0;
                deltaY = 200 * index / 2;
            }
            else
            {
                deltaX = 340;
                deltaY = (index - 1) / 2 * 200;
            }

            grid.Margin = new Thickness(
                StartMargin.Left + deltaX,
                StartMargin.Top + deltaY,
                StartMargin.Right - deltaX,
                0
                );

            CurrenCard.Add(Card);

            Border br = new Border()
            {
                BorderBrush         = new SolidColorBrush(Color.FromRgb(62, 62, 66)),
                HorizontalAlignment = HorizontalAlignment.Left,
                Height            = 175,
                VerticalAlignment = VerticalAlignment.Top,
                Width             = 315,
                Margin            = new Thickness(0, 0, 0, 0),
                BorderThickness   = new Thickness(2, 2, 2, 2)
            };

            br.CornerRadius = new CornerRadius(3);
            br.Background   = new SolidColorBrush(Color.FromRgb(62, 62, 66));
            grid.Children.Add(br);

            //Rectangle rect = new Rectangle()
            //{

            //    HorizontalAlignment = HorizontalAlignment.Left,
            //    Height = 170,
            //    VerticalAlignment = VerticalAlignment.Top,
            //    Width = 32,
            //    Margin = new Thickness(5, 5, 5, 0),


            //};
            //rect.Fill = new SolidColorBrush(Color.FromRgb(62, 62, 66));
            // rect.Background = new SolidColorBrush(Color.FromRgb(62, 62, 66));
            // grid.Children.Add(rect);


            System.Windows.Controls.Label label = new System.Windows.Controls.Label()
            {
                Content             = "Логин",
                HorizontalAlignment = HorizontalAlignment.Left,
                Margin            = new Thickness(128, 22, 0, 0),
                VerticalAlignment = VerticalAlignment.Top,
                Foreground        = new SolidColorBrush(Color.FromRgb(181, 181, 184)),
                FontSize          = 13,
                FontFamily        = new FontFamily("Segoe UI Semibold"),
                Height            = 27,
                Width             = 56
            };
            grid.Children.Add(label);

            System.Windows.Controls.Button btn = new System.Windows.Controls.Button()
            {
                Content             = Card.SiteURL,
                HorizontalAlignment = HorizontalAlignment.Left,
                Margin            = new Thickness(10, 132, 0, 10),
                VerticalAlignment = VerticalAlignment.Top,
                Background        = new SolidColorBrush(Color.FromRgb(181, 181, 184)),
                BorderBrush       = new SolidColorBrush(Color.FromRgb(41, 38, 38)),
                FontSize          = 14,
                FontFamily        = new FontFamily("Segoe UI Semibold"),
                Name = "Button_" + index
            };
            btn.MouseDown        += BtnWeb_Click;
            btn.PreviewMouseDown += BtnWeb_Click;
            btn.Height            = 36;
            btn.Width             = 294;
            grid.Children.Add(btn);

            label = new System.Windows.Controls.Label()
            {
                Content             = "Пароль",
                HorizontalAlignment = HorizontalAlignment.Left,
                Margin            = new Thickness(128, 72, 120, 0),
                VerticalAlignment = VerticalAlignment.Top,
                Foreground        = new SolidColorBrush(Color.FromRgb(181, 181, 184)),
                FontSize          = 13,
                FontFamily        = new FontFamily("Segoe UI Semibold"),
                Height            = 27,
                Width             = 56
            };
            grid.Children.Add(label);

            TextBox pass_tb = new TextBox()
            {
                HorizontalAlignment = HorizontalAlignment.Left,
                Height       = 23,
                Width        = 172,
                Margin       = new Thickness(132, 97, 0, 0),
                TextWrapping = TextWrapping.Wrap,
                Text         = Card.Password
            };

            pass_tb.VerticalAlignment = pass_tb.VerticalAlignment = VerticalAlignment.Top;
            pass_tb.Background        = new SolidColorBrush(Color.FromRgb(104, 104, 104));
            pass_tb.BorderBrush       = new SolidColorBrush(Color.FromRgb(62, 62, 66));
            pass_tb.Foreground        = new SolidColorBrush(Color.FromRgb(181, 181, 184));
            pass_tb.FontSize          = 14;
            pass_tb.Visibility        = Visibility.Hidden;
            pass_tb.Name              = "PassBox" + index;
            pass_tb.PreviewMouseDown += Passbox_MouseDown;
            //grid.Children.Add(pass_tb);

            PasswordBox passbox = new PasswordBox()
            {
                HorizontalAlignment = label.HorizontalAlignment = HorizontalAlignment.Left,
                Margin            = new Thickness(132, 97, 0, 0),
                VerticalAlignment = VerticalAlignment.Top,
                Width             = 172,
                Height            = 23,
                Background        = new SolidColorBrush(Color.FromRgb(104, 104, 104)),
                BorderBrush       = new SolidColorBrush(Color.FromRgb(62, 62, 66)),
                Foreground        = new SolidColorBrush(Color.FromRgb(181, 181, 184)),

                Password = Card.Password,
                Name     = "PassBox" + index
            };
            //passbox.PreviewMouseDown += Passbox_MouseDown;
            //grid.Children.Add(passbox);

            TextBlock block = new TextBlock()
            {
                HorizontalAlignment = HorizontalAlignment.Left,
                VerticalAlignment   = VerticalAlignment.Top,
                Width      = 172,
                Height     = 23,
                Margin     = new Thickness(132, 97, 0, 0),
                Background = new SolidColorBrush(Color.FromRgb(104, 104, 104)),
                Foreground = new SolidColorBrush(Color.FromRgb(181, 181, 184)),
                Name       = "PassLbl_" + index,
                Text       = "     Скопировать пароль",
                FontSize   = 13
            };

            block.MouseEnter += Block_MouseEnter;
            block.MouseLeave += Block_MouseLeave;
            //Label l = new Label()
            //{
            //    HorizontalAlignment = HorizontalAlignment.Left,
            //    VerticalAlignment = VerticalAlignment.Top,
            //    Width = 172,
            //    Height = 23,
            //    Margin = new Thickness(132, 97, 0, 0),
            //    Background = new SolidColorBrush(Color.FromRgb(104, 104, 104)),
            //    BorderBrush = new SolidColorBrush(Color.FromRgb(62, 62, 66)),
            //    Foreground = new SolidColorBrush(Color.FromRgb(181, 181, 184)),
            //    Name = "PassLbl_" + index,
            //    Content = "Copy password",


            //};
            // l.FontSize = 10;
            block.PreviewMouseDown += LabelCopy_PreviewMouseDown;
            grid.Children.Add(block);


            TextBox tb = new TextBox()
            {
                HorizontalAlignment = HorizontalAlignment.Left,
                Height       = 23,
                Width        = 172,
                Margin       = new Thickness(132, 49, 0, 0),
                TextWrapping = TextWrapping.Wrap,
                Text         = Card.Login
            };

            tb.VerticalAlignment = tb.VerticalAlignment = VerticalAlignment.Top;
            tb.Background        = new SolidColorBrush(Color.FromRgb(104, 104, 104));
            tb.Foreground        = new SolidColorBrush(Color.FromRgb(181, 181, 184));
            tb.BorderBrush       = new SolidColorBrush(Color.FromRgb(62, 62, 66));
            tb.FontSize          = 14;
            grid.Children.Add(tb);

            Ellipse Elps = new Ellipse()
            {
                HorizontalAlignment = HorizontalAlignment.Left,
                VerticalAlignment   = VerticalAlignment.Top,
                Width  = 90,
                Height = 90,
                Margin = new Thickness(21, 30, 0, 0),
            };

            Elps.Fill              = new ImageBrush(new BitmapImage(new Uri("Resources/" + Card.PictureURL, UriKind.Relative)));
            Elps.PreviewMouseDown += Img_MouseDownChangePic;
            grid.Children.Add(Elps);


            System.Windows.Controls.Image img = new System.Windows.Controls.Image();
            //{
            //    HorizontalAlignment = HorizontalAlignment.Left,
            //    Height = 90,
            //    Width = 120,
            //    VerticalAlignment = VerticalAlignment.Top,
            //    Margin = new Thickness(21, 10, 0, 0),
            //    Source = new BitmapImage(new Uri("Resources/" + Card.PictureURL, UriKind.Relative))
            //};
            //img.MouseDown += Img_MouseDownChangePic;


            img = new System.Windows.Controls.Image()
            {
                HorizontalAlignment = HorizontalAlignment.Left,
                VerticalAlignment   = VerticalAlignment.Top,
                Height = 29,
                Width  = 25,
                Margin = new Thickness(258, 133, 0, 0),
                Source = new BitmapImage(new Uri("Resources/browser.ico", UriKind.Relative))
            };
            //grid.Children.Add(img);


            img = new System.Windows.Controls.Image()
            {
                HorizontalAlignment = HorizontalAlignment.Left,
                VerticalAlignment   = VerticalAlignment.Top,
                Height = 14,
                Width  = 14,
                Margin = new Thickness(290, 10, 0, 0),
                Source = new BitmapImage(new Uri("Resources/cross.png", UriKind.Relative))
            };
            img.PreviewMouseDown += ImgCross_PreviewMouseDown;
            img.Name              = "Cross_" + index.ToString();
            img.MouseEnter       += ImgCross_MouseEnter;
            img.MouseLeave       += ImgCross_MouseLeave;
            grid.Children.Add(img);

            img = new System.Windows.Controls.Image()
            {
                HorizontalAlignment = HorizontalAlignment.Left,
                VerticalAlignment   = VerticalAlignment.Top,
                Height = 14,
                Width  = 14,
                Margin = new Thickness(271, 10, 0, 0),
                Source = new BitmapImage(new Uri("Resources/edit.png", UriKind.Relative))
            };
            img.PreviewMouseDown += ImgEdit_PreviewMouseDown;;
            img.Name              = "Edit_" + index.ToString();
            grid.Children.Add(img);


            img = new System.Windows.Controls.Image()
            {
                HorizontalAlignment = HorizontalAlignment.Left,
                VerticalAlignment   = VerticalAlignment.Top,
                Height = 20,
                Width  = 20,
                Margin = new Thickness(276, 98, 0, 0),
                Source = new BitmapImage(new Uri("Resources/clipboard.png", UriKind.Relative))
            };
            img.MouseLeftButtonDown += Img_MouseDown;
            img.MouseLeftButtonUp   += Img_MouseLeftButtonUp;
            img.Name = "PassBox" + index;
            //grid.Children.Add(img);

            string url = "";

            // if (! (FavorCards.Any(card => card.SiteURL == Card.SiteURL) && FavorCards.Any(card => card.Login == Card.Login) && FavorCards.Any(card => card.PictureURL == Card.PictureURL)))
            //{
            //    url = "Resources/star-curved-outline.png";
            //}
            // else
            //{
            //    url = "Resources/star_gold.png";
            //}

            if (Card.Favor)
            {
                url = "Resources/star_gold.png";
            }
            else
            {
                url = "Resources/star-curved-outline.png";
            }

            img = new System.Windows.Controls.Image()
            {
                HorizontalAlignment = HorizontalAlignment.Left,
                VerticalAlignment   = VerticalAlignment.Top,
                Height = 14,
                Width  = 14,
                Margin = new Thickness(252, 10, 0, 0),
                Source = new BitmapImage(new Uri(url, UriKind.Relative))
            };
            img.MouseDown += ImgStar_MouseDown;
            img.Name       = "Star_" + index.ToString();
            grid.Children.Add(img);


            // grid.Background = new SolidColorBrush(Color.FromRgb(62, 62, 66));
            MainGrid.Children.Add(grid);

            MainGrid.Height += (index % 2) * 190;

            CurrentGrid.Add(grid);
        }
 public void SendCard(LoginCard card)
 {
     VirtualBuffer.TmpLoginCard = card;
 }