Beispiel #1
0
        public static LastUser GetLastRegistration()
        {
            using (var site = new SCBWIContext()) {
                var us = (from u in site.Users
                          orderby u.Cleared descending
                          select u).FirstOrDefault();

                LastUser toReturn;

                if (us == null)
                {
                    toReturn = new LastUser {
                        Created = DateTime.UtcNow,
                        Name    = "No registrations yet :("
                    };
                }
                else
                {
                    toReturn = new LastUser {
                        Created = us.Created,
                        Name    = us.FullName
                    };
                }

                return(toReturn);
            }
        }
Beispiel #2
0
        public async Task <bool> Login(string username, string password)
        {
            LastResponse response = await Client.Auth.GetSessionTokenAsync(username, password);

            if (response.Success)
            {
                LastUserSession us = Client.Auth.UserSession;

                var userResponse = await Client.User.GetInfoAsync(us.Username);

                LastUser user = userResponse.Content;

                if (user != null)
                {
                    //MessageDialog md = new MessageDialog($"Welcome, {user.FullName}");
                    //await md.ShowAsync();
                    ApplicationSettings.LastFmSessionToken        = us.Token;
                    ApplicationSettings.LastFmSessionUsername     = us.Username;
                    ApplicationSettings.LastFmSessionUserImageUri = user.Avatar.Large.AbsoluteUri;

                    this.Connected?.Invoke(user);
                }
            }

            return(response.Success);
        }
Beispiel #3
0
        public Login(bool autoLogin)
        {
            InitializeComponent();

            MaxHeight = SystemParameters.MaximizedPrimaryScreenHeight;
            MaxWidth  = SystemParameters.MaximizedPrimaryScreenWidth;

            LastUser lastUser = Settings.LoadLastUser();

            if (autoLogin &&
                lastUser.Remember &&
                !string.IsNullOrEmpty(lastUser.User) &&
                !string.IsNullOrEmpty(lastUser.Server) &&
                !string.IsNullOrEmpty(lastUser.Pass))
            {
                AuthorizationAsync(lastUser.Server, lastUser.User, lastUser.Pass, lastUser.Remember);
            }

            if (lastUser.Remember)
            {
                //AuthorizationAsync(Settings.Server.AbsoluteUri, Settings.User, Settings.Pass);
                Server_TextBox.Text         = lastUser.Server;
                Login_TextBox.Text          = lastUser.User;
                Password_TextBox.Password   = lastUser.Pass;
                Remember_CheckBox.IsChecked = lastUser.Remember;
            }
        }
Beispiel #4
0
 private void SetPrevious()
 {
     if (LastUser.IsNotEmpty())
     {
         lst_users.SelectedIndex = lst_users.FindStringExact(LastUser);
     }
     FormDirty = false;
 }
Beispiel #5
0
 public bool IsLastKnownUser(string fromname)
 {
     if (LastUser != null && LastUser.IsNamed(fromname))
     {
         return(false);
     }
     return(string.IsNullOrEmpty(fromname) || fromname.Trim() == "null");
 }
Beispiel #6
0
        /// <summary>
        /// Запись файла конфигурации
        /// </summary>
        public void SaveIniFile()
        {
            string[] s = { DBDataSource,
                           DBDatabase,
                           LastUser.ToString(),
                           PathReport };
            string   path = String.Empty;

            path  = Application.StartupPath;
            path += @"\taskmanager.ini";
            System.IO.File.WriteAllLines(path, s);
        }
Beispiel #7
0
        public static void SaveLastUser()
        {
            LastUser lastUser = new LastUser
            {
                User     = User,
                Pass     = Pass,
                Remember = true
            };

            lastUser.SetServerFromUri(Server);

            XmlParser.SaveLastUser(lastUser);
        }
Beispiel #8
0
        private void LoadUserInfo(LastUser user)
        {
            this.DataContext  = user;
            progress.IsActive = true;

            if (LastFm.Current.IsAuthenticated)
            {
                this.IsAuthenticatedUserPage = user.Name.ToLower() == ApplicationSettings.LastFmSessionUsername.ToLower();

                header.SetContext(user);
                LoadRecentScrobbles();
            }
        }
        public void UpdateLastUser(string email)
        {
            _con.DropTable <LastUser>();
            _con.CreateTable <LastUser>();
            List <Users> users = _con.Table <Users>().ToList();

            for (int i = 0; i < users.Count; i++)
            {
                if (users[i].Email == email)
                {
                    LastUser user = new LastUser(users[i].Id, users[i].Email);
                    _con.Insert(user);
                }
            }
        }
Beispiel #10
0
        public static LastUser LoadLastUser()
        {
            LastUser lastUser = new LastUser();

            try
            {
                XmlDocument lastUseDoc = new XmlDocument
                {
                    PreserveWhitespace = true
                };
                string filePath = Settings.FilesSavePath + "LastUser.xml";
                lastUseDoc.Load(filePath);

                XmlElement      encryptedElement = lastUseDoc.GetElementsByTagName("EncryptedData")[0] as XmlElement;
                RijndaelManaged Key = new RijndaelManaged
                {
                    Key = key,
                    IV  = iv
                };
                Decrypt(Key, encryptedElement);

                XmlElement server = lastUseDoc.GetElementsByTagName("Сервер")[0] as XmlElement;
                lastUser.Server = server.FirstChild.Value;
                XmlElement user = lastUseDoc.GetElementsByTagName("Логин")[0] as XmlElement;
                lastUser.User = user.FirstChild.Value;
                XmlElement pass = lastUseDoc.GetElementsByTagName("Пароль")[0] as XmlElement;
                lastUser.Pass     = pass.FirstChild.Value;
                lastUser.Remember = true;

                //lastUser.Server = lastUseDoc.Root.Element("Сервер").Value;
                //lastUser.User = lastUseDoc.Root.Element("Логин").Value;
                //lastUser.Pass = lastUseDoc.Root.Element("Пароль").Value;

                LogController.Info(logger, "Файл LastUser.xml успешно загружен");
            }
            catch (Exception e)
            {
                LogController.Error(logger, e, "Не удалось загрузить данные последнего пользователя");
            }

            return(lastUser);
        }
Beispiel #11
0
        public async void SetContext(LastUser user)
        {
            this.DataContext = LastUser = user;

            buttonsArea.Visibility = Visibility.Collapsed;
            //MessageDialog md = new MessageDialog(user.Avatar.Medium.AbsoluteUri);
            //await md.ShowAsync();

            //color = await ImageHelper.GetDominantColor(stream);
            BitmapImage b = new BitmapImage();

            rootBrush.ImageSource = b;
            b.UriSource           = LastUser.Avatar.Large;

            ellipse.SetSource(LastUser.Avatar.Large, CircleImage.ImageType.LastFmUser);

            title.Text     = user.Name.ToLower();
            subtitle1.Text = user.FullName;
            playCount.Text = Convert.ToString(user.Playcount) + " " + ApplicationInfo.Current.Resources.GetString("Scrobbles").ToUpper();
        }
Beispiel #12
0
        private async void lastFmUserButton_Click(object sender, RoutedEventArgs e)
        {
            LastUser user;

            //LastTrack track = new LastTrack();
            //track.Images.Medium
            if (ApplicationInfo.Current.HasInternetConnection)
            {
                if (LastFm.Current.Client.Auth.Authenticated)
                {
                    user = await LastFm.Current.GetUserInfo(ApplicationSettings.LastFmSessionUsername);
                }
                else
                {
                    user = new LastUser();
                }

                ((Button)sender).ShowLastFmPopupMenu(user);
            }
            else
            {
            }
        }
Beispiel #13
0
        public static LastUser LoadLastUser()
        {
            LastUser lastUser = XmlParser.LoadLastUser();

            return(lastUser);
        }
Beispiel #14
0
 private void LoggedIn(LastUser loggedUser)
 {
     LoadUserInfo();
 }
Beispiel #15
0
 private void LastFm_Connected(LastUser loggedUser)
 {
     LoggedIn(loggedUser);
 }
Beispiel #16
0
        private async void lastFmProfileButton_Click(object sender, RoutedEventArgs e)
        {
            LastUser user = await LastFm.Current.GetUserInfo(ApplicationSettings.LastFmSessionUsername);

            PageHelper.MainPage.Navigate(typeof(ProfilePage), user);
        }
Beispiel #17
0
        public static void SaveLastUser(LastUser lastUser)
        {
            if (!lastUser.Remember)
            {
                return;
            }

            XmlDocument lastUserDoc = new XmlDocument
            {
                PreserveWhitespace = true
            };
            XmlNode    xmlDeclaration = lastUserDoc.CreateXmlDeclaration("1.0", "UTF-8", null);
            XmlElement root           = lastUserDoc.DocumentElement;

            lastUserDoc.InsertBefore(xmlDeclaration, root);

            XmlElement xRoot    = lastUserDoc.CreateElement("Последний_пользователь");
            XmlElement server   = lastUserDoc.CreateElement("Сервер");
            XmlElement login    = lastUserDoc.CreateElement("Логин");
            XmlElement password = lastUserDoc.CreateElement("Пароль");

            xRoot.AppendChild(server);
            xRoot.AppendChild(login);
            xRoot.AppendChild(password);
            server.AppendChild(lastUserDoc.CreateTextNode(lastUser.Server));
            login.AppendChild(lastUserDoc.CreateTextNode(lastUser.User));
            password.AppendChild(lastUserDoc.CreateTextNode(lastUser.Pass));
            lastUserDoc.AppendChild(xRoot);

            try
            {
                RijndaelManaged Key = new RijndaelManaged
                {
                    Key = key,
                    IV  = iv
                };
                Encrypt(Key, password);
            }
            catch (Exception e)
            {
                LogController.Error(logger, e, "Не удалось cоздать симметричный ключ");
            }

            //XDocument lastUserDoc1 = new XDocument(
            //    new XElement("Последний_пользователь",
            //    new XElement("Сервер", lastUser.Server),
            //    new XElement("Логин", lastUser.User),
            //    new XElement("Пароль", lastUser.Pass)
            //    ));

            try
            {
                string path = Settings.FilesSavePath + "LastUser.xml";
                if (!Directory.Exists(Settings.FilesSavePath))
                {
                    Directory.CreateDirectory(Settings.FilesSavePath);
                }
                using (Stream file = new FileStream(path, FileMode.Truncate, FileAccess.ReadWrite))
                    using (XmlTextWriter writer = new XmlTextWriter(file, null))
                    {
                        writer.Formatting = Formatting.Indented;
                        lastUserDoc.Save(writer);
                        LogController.Info(logger, "Файл LastUser.xml успешно сохранен");
                    }
            }
            catch (Exception e)
            {
                LogController.Error(logger, e, $"Не удалось сохранить файл LastUser.xml");
            }
        }
Beispiel #18
0
        private async void LoadRecentScrobbles()
        {
            LastUser user = this.DataContext as LastUser;

            if (!ApplicationInfo.Current.HasInternetConnection)
            {
                return;
            }

            DateTimeOffset dateTime = DateTimeOffset.Now.ToUniversalTime();

            dateTime = dateTime.AddDays(-7);
            List <LastTrack>  list;
            List <LastArtist> artList;

            var result = await LastFm.Current.Client.User.GetRecentScrobbles(user.Name, dateTime, 1, 200);

            if (result.Success)
            {
                list = result.Content.ToList();
                if (list.Count > 0)
                {
                    //if (content[0].IsNowPlaying == true)
                    //    content.RemoveAt(0);

                    if (this.IsAuthenticatedUserPage)
                    {
                        recentScroblles.ItemsSource = list.Take(20);
                    }
                    else
                    {
                        recentScroblles.ItemsSource = list.Take(10);
                    }
                    recentScroblles.Visibility = Visibility.Visible;

                    LoadTopTracks(list);
                }
            }

            var artResult = await LastFm.Current.Client.User.GetTopArtists(user.Name, IF.Lastfm.Core.Api.Enums.LastStatsTimeSpan.Overall, 1, 10);

            if (artResult.Success)
            {
                artList = artResult.Content.ToList();

                LoadTopArtists(artList);
            }

            var resultALB = await LastFm.Current.Client.User.GetTopAlbums(user.Name, IF.Lastfm.Core.Api.Enums.LastStatsTimeSpan.Overall, 1, 10);

            if (resultALB.Success)
            {
                var listALB = resultALB.Content.ToList();
                if (listALB.Count > 0)
                {
                    LoadTopAlbums(listALB);
                }
            }

            progress.IsActive = false;
        }
        public static void ShowLastFmPopupMenu(this FrameworkElement fwe, LastUser user)
        {
            MenuFlyout mf = new MenuFlyout();

            if (LastFm.Current.IsAuthenticated == false)
            {
                MenuFlyoutItem mfi = new MenuFlyoutItem()
                {
                    Text = ApplicationInfo.Current.Resources.GetString("SignInLastFm"),
                };

                mfi.Click += (s, a) =>
                {
                    PageHelper.MainPage.CreateLastFmLogin();
                };

                mf.Items.Add(mfi);
            }
            else
            {
                if (user.Name.ToLower() == ApplicationSettings.LastFmSessionUsername.ToLower())
                {
                    MenuFlyoutItem mfi = new MenuFlyoutItem()
                    {
                        Text = user.Name,
                    };

                    mfi.Click += (s, a) =>
                    {
                        PageHelper.MainPage.Navigate(typeof(ProfilePage), user);
                    };

                    mf.Items.Add(mfi);

                    MenuFlyoutItem mfi2 = new MenuFlyoutItem()
                    {
                        Text = ApplicationInfo.Current.Resources.GetString("ScrobbleSettings"),
                    };

                    mfi2.Click += (s, a) =>
                    {
                        PageHelper.MainPage.Navigate(typeof(Settings), "path=playback");
                    };

                    mf.Items.Add(mfi2);

                    MenuFlyoutItem mfi3 = new MenuFlyoutItem()
                    {
                        Text = ApplicationInfo.Current.Resources.GetString("SignOut"),
                    };

                    mfi3.Click += (s, a) =>
                    {
                        LastFm.Current.Logout();
                    };

                    mf.Items.Add(mfi3);
                }
                else
                {
                    MenuFlyoutItem mfi = new MenuFlyoutItem()
                    {
                        Text = ApplicationInfo.Current.Resources.GetString("VisitProfile"),
                    };

                    mfi.Click += (s, a) =>
                    {
                        PageHelper.MainPage.Navigate(typeof(ProfilePage), user);
                    };

                    mf.Items.Add(mfi);
                }
            }

            mf.ShowAt(fwe);
        }