public async Task <AlbumSearchResult> AlbumSearchAsync(string artist, string album) { try { return(await _serviceClient.GetAsync <AlbumSearchResult>(_urlBuilder.BuildAlbumSearchUrl(artist, album))); } catch (Exception ex) { _logFactory.GetLogger(typeof(SearchService)) .ErrorFormat(AlbumSearchErrorMessageFormat, artist, album, ex.Message); throw new SpotifyServiceException( string.Format(AlbumSearchErrorMessageFormat, artist, album, ex.Message), ex); } }
public async Task <bool> DownloadAttachment(AttachmentMold data) { try { //Тут надо убрать префикс получаемого файла var pref = "attachment/"; var attachment = await serviceClient.GetAsync(new GetAttachment { Id = data.Id.Replace(pref, string.Empty) }); if (attachment == null) { return(false); } var savePath = Path.Combine(settings?.AttachmentDefaultPath, data.FileName); var saveFileInfo = new FileInfo(savePath); if (!saveFileInfo.Directory.Exists) { saveFileInfo.Directory.Create(); } if (!string.IsNullOrEmpty(savePath)) { await using (var fileStream = File.Create(savePath, (int)attachment.Length)) { const int bufferSize = 4194304; var buffer = new byte[bufferSize]; attachment.Seek(0, SeekOrigin.Begin); while (attachment.Position < attachment.Length) { var read = await attachment.ReadAsync(buffer, 0, bufferSize); await fileStream.WriteAsync(buffer, 0, read); } await fileStream.FlushAsync(); } } return(true); } catch (Exception e) { //TODO вывести ошибку в будущем return(false); } }
public async Task Open(string userId) { var lastProfileId = ProfileId; if (lastProfileId == userId) { if (IsOpened) { Close(); } } else { ResetEditMode(); UpdateProfileProps(await _serviceClient.GetAsync(new GetProfile { UserId = userId })); IsOpened = true; IsOpenProfileEvent?.Invoke(); } }
/// <summary> /// Finds users with matching usernames. /// </summary> /// <param name="username"> The username to search for. </param> /// <returns> Users matching the username search criteria. </returns> public async Task<IEnumerable<UserModel>> GetUsersWithUsername(string username) { return await _jsonClient.GetAsync<IEnumerable<UserModel>>($"/User/Search?username={username}"); }
public SettingsViewModel(IJsonServiceClient serviceClient) { ChatSettings = new UserChatSettings(); LoginAuditCollection = new ObservableCollection <LoginAuditViewModel>(); ContextMenuCommand = ReactiveCommand.CreateFromTask(async() => { IsContextMenu = !IsContextMenu; ContextMenuSettingsActiveEvent?.Invoke(IsContextMenu); }); OpenSettingsCommand = ReactiveCommand.CreateFromTask(async() => { IsOpened = !IsOpened; CloseContextMenu(); GetSettingsCommand.Execute(null); OpenSettingsActiveEvent?.Invoke(IsOpened); }); GetSettingsCommand = ReactiveCommand.CreateFromTask(async() => { SetSelectedMenuItem(SelectedMenuItem.Settings); var settingsUser = await serviceClient.GetAsync(new GetMySettings()); if (settingsUser.SendingMessageByEnterKey) { TypeEnter = settingsUser.SendingMessageByEnterKey; TypeEnterEvent?.Invoke(TypeEnter); } }); SaveSettingsCommand = ReactiveCommand.CreateFromTask(async() => { var settingsUser = await serviceClient.PostAsync(new SetSettings { SendingMessageByEnterKey = TypeEnter }); ChatSettings = settingsUser; }); MorePointerPressedCommand = ReactiveCommand.Create <object>(obj => { IsContextMenu = false; }); GetHistoryLoginAuditCommand = ReactiveCommand.CreateFromTask(async() => { SetSelectedMenuItem(SelectedMenuItem.Audit); LoginAuditCollection.Clear(); LoginHistoryCollection = await serviceClient.GetAsync(new GetLoginAudit()); foreach (var item in LoginHistoryCollection.History.Take(100)) { LoginAuditView = new LoginAuditViewModel { Id = item.Id, IpAddress = item.IpAddress, OperatingSystem = item.OperatingSystem, NameVersionClient = item.NameVersionClient, DateOfEntry = item.DateOfEntry.Date == DateTime.Now.Date ? $"{item.DateOfEntry:HH:mm}" : $"{item.DateOfEntry:dd.MM.yyyy HH:mm}", IsActive = item.SessionId == LoginHistoryCollection.UniqueSessionUser ? "Активный" : "" }; LoginAuditCollection.Add(LoginAuditView); } }); }