public async Task CreateShare(SocialShareInfo info) { if (info == null) { throw new ArgumentNullException("info"); } if (string.IsNullOrWhiteSpace(info.Id)) { throw new ArgumentNullException("info.Id"); } using (WriteLock.Write()) { using (var connection = CreateConnection()) { connection.RunInTransaction(db => { var commandText = "replace into Shares (Id, ItemId, UserId, ExpirationDate) values (?, ?, ?, ?)"; db.Execute(commandText, info.Id.ToGuidParamValue(), info.ItemId, info.UserId, info.ExpirationDate.ToDateTimeParamValue()); }, TransactionMode); } } }
private SocialShareInfo GetSocialShareInfo(IReadOnlyList <IResultSetValue> reader) { var info = new SocialShareInfo(); info.Id = reader[0].ReadGuid().ToString("N"); info.ItemId = reader[1].ToString(); info.UserId = reader[2].ToString(); info.ExpirationDate = reader[3].ReadDateTime(); return(info); }
private SocialShareInfo GetSocialShareInfo(IDataReader reader) { var info = new SocialShareInfo(); info.Id = reader.GetGuid(0).ToString("N"); info.ItemId = reader.GetString(1); info.UserId = reader.GetString(2); info.ExpirationDate = reader.GetDateTime(3).ToUniversalTime(); return(info); }
private void AddShareInfo(SocialShareInfo info, string externalUrl) { info.ImageUrl = externalUrl + "/Social/Shares/Public/" + info.Id + "/Image"; info.Url = externalUrl + "/emby/web/shared.html?id=" + info.Id; var item = _libraryManager.GetItemById(info.ItemId); if (item != null) { info.Overview = item.Overview; info.Name = GetTitle(item); } }
private void AddShareInfo(SocialShareInfo info) { var externalUrl = _appHost.GetSystemInfo().WanAddress; info.ImageUrl = externalUrl + "/Social/Shares/Public/" + info.Id + "/Image"; info.Url = externalUrl + "/web/shared.html?id=" + info.Id; var item = _libraryManager.GetItemById(info.ItemId); if (item != null) { info.Overview = item.Overview; info.Name = GetTitle(item); } }
public void share(SocialShareInfo info) { Debug.Log("share: " + info.ToString()); #if !UNITY_EDITOR #if UNITY_ANDROID AndroidJavaObject activity = SocialShare._player.GetStatic <AndroidJavaObject>("currentActivity"); if (null == activity) { Debug.Log("share activity is null"); return; } activity.Call("runOnUiThread", new AndroidJavaRunnable(() => { sdkbox_socialshare_share(info.ToString()); })); #else sdkbox_socialshare_share(info.ToString()); #endif #endif // !UNITY_EDITOR }
public async Task <SocialShareInfo> CreateShare(string itemId, string userId) { if (string.IsNullOrWhiteSpace(itemId)) { throw new ArgumentNullException("itemId"); } if (string.IsNullOrWhiteSpace(userId)) { throw new ArgumentNullException("userId"); } var item = _libraryManager.GetItemById(itemId); if (item == null) { throw new ResourceNotFoundException(); } var externalUrl = (await _appHost.GetSystemInfo().ConfigureAwait(false)).WanAddress; if (string.IsNullOrWhiteSpace(externalUrl)) { throw new InvalidOperationException("No external server address is currently available."); } var info = new SocialShareInfo { Id = Guid.NewGuid().ToString("N"), ExpirationDate = DateTime.UtcNow.AddDays(_config.Configuration.SharingExpirationDays), ItemId = itemId, UserId = userId }; AddShareInfo(info, externalUrl); _repository.CreateShare(info); return(info); }
public async Task CreateShare(SocialShareInfo info) { if (info == null) { throw new ArgumentNullException("info"); } if (string.IsNullOrWhiteSpace(info.Id)) { throw new ArgumentNullException("info.Id"); } var cancellationToken = CancellationToken.None; cancellationToken.ThrowIfCancellationRequested(); await WriteLock.WaitAsync(cancellationToken).ConfigureAwait(false); IDbTransaction transaction = null; try { transaction = _connection.BeginTransaction(); _saveShareCommand.GetParameter(0).Value = new Guid(info.Id); _saveShareCommand.GetParameter(1).Value = info.ItemId; _saveShareCommand.GetParameter(2).Value = info.UserId; _saveShareCommand.GetParameter(3).Value = info.ExpirationDate; _saveShareCommand.Transaction = transaction; _saveShareCommand.ExecuteNonQuery(); transaction.Commit(); } catch (OperationCanceledException) { if (transaction != null) { transaction.Rollback(); } throw; } catch (Exception e) { Logger.ErrorException("Failed to save share:", e); if (transaction != null) { transaction.Rollback(); } throw; } finally { if (transaction != null) { transaction.Dispose(); } WriteLock.Release(); } }
public async Task CreateShare(SocialShareInfo info) { if (info == null) { throw new ArgumentNullException("info"); } if (string.IsNullOrWhiteSpace(info.Id)) { throw new ArgumentNullException("info.Id"); } var cancellationToken = CancellationToken.None; cancellationToken.ThrowIfCancellationRequested(); using (var connection = await CreateConnection().ConfigureAwait(false)) { using (var saveShareCommand = connection.CreateCommand()) { saveShareCommand.CommandText = "replace into Shares (Id, ItemId, UserId, ExpirationDate) values (@Id, @ItemId, @UserId, @ExpirationDate)"; saveShareCommand.Parameters.Add(saveShareCommand, "@Id"); saveShareCommand.Parameters.Add(saveShareCommand, "@ItemId"); saveShareCommand.Parameters.Add(saveShareCommand, "@UserId"); saveShareCommand.Parameters.Add(saveShareCommand, "@ExpirationDate"); IDbTransaction transaction = null; try { transaction = connection.BeginTransaction(); saveShareCommand.GetParameter(0).Value = new Guid(info.Id); saveShareCommand.GetParameter(1).Value = info.ItemId; saveShareCommand.GetParameter(2).Value = info.UserId; saveShareCommand.GetParameter(3).Value = info.ExpirationDate; saveShareCommand.Transaction = transaction; saveShareCommand.ExecuteNonQuery(); transaction.Commit(); } catch (OperationCanceledException) { if (transaction != null) { transaction.Rollback(); } throw; } catch (Exception e) { Logger.ErrorException("Failed to save share:", e); if (transaction != null) { transaction.Rollback(); } throw; } finally { if (transaction != null) { transaction.Dispose(); } } } } }