public static FileContentResult Download(string guid) { var dataRow = Rds.ExecuteTable(statements: Rds.SelectBinaries( column: Rds.BinariesColumn() .Guid() .BinaryType() .Bin() .FileName() .ContentType(), join: Rds.BinariesJoinDefault() .Add(new SqlJoin( tableBracket: "[Items]", joinType: SqlJoin.JoinTypes.Inner, joinExpression: "[Binaries].[ReferenceId]=[Items].[ReferenceId]")) .Add(new SqlJoin( tableBracket: "[Sites]", joinType: SqlJoin.JoinTypes.Inner, joinExpression: "[Items].[SiteId]=[Sites].[SiteId]")), where : Rds.BinariesWhere() .TenantId(Sessions.TenantId()) .Guid(guid) .CanRead("[Binaries].[ReferenceId]"))) .AsEnumerable() .FirstOrDefault(); return(dataRow != null ? new ResponseFile( new MemoryStream(Bytes(dataRow), false), dataRow.String("FileName"), dataRow.String("ContentType")).FileStream() : null); }
/// <summary> /// Fixed: /// </summary> public static bool ExistsTenantImage( Context context, SiteSettings ss, long referenceId, Libraries.Images.ImageData.SizeTypes sizeType) { var invalid = BinaryValidators.OnGetting( context: context, ss: ss); switch (invalid.Type) { case Error.Types.None: break; default: return(false); } switch (Parameters.BinaryStorage.Provider) { case "Local": return(new Libraries.Images.ImageData( referenceId, Libraries.Images.ImageData.Types.TenantImage) .Exists(sizeType)); default: return(Rds.ExecuteScalar_int( context: context, statements: Rds.SelectBinaries( column: Rds.BinariesColumn().BinariesCount(), where : Rds.BinariesWhere() .ReferenceId(referenceId) .BinaryType("TenantImage"))) == 1); } }
/// <summary> /// Fixed: /// </summary> public static (byte[] bytes, string contentType) TenantImageLogo(Context context, TenantModel tenantModel) { var ss = SiteSettingsUtilities.TenantsSiteSettings(context); var invalid = BinaryValidators.OnGetting( context: context, ss: ss); switch (invalid.Type) { case Error.Types.None: break; default: return(null, null); } var binaryModel = new BinaryModel( context: context, referenceId: tenantModel.TenantId, binaryType: "TenantImage"); return( binaryModel.TenantImage( context: context, sizeType: Libraries.Images.ImageData.SizeTypes.Logo, column: Rds.BinariesColumn().Bin()), binaryModel.ContentType.IsNullOrEmpty() ? "image/bmp" : binaryModel.ContentType); }
/// <summary> /// Fixed: /// </summary> public static (byte[] bytes, string contentType) SiteImageIcon(Context context, SiteModel siteModel) { siteModel.SiteSettings = SiteSettingsUtilities.Get( context: context, siteModel: siteModel, referenceId: siteModel.SiteId); var invalid = BinaryValidators.OnGetting( context: context, ss: siteModel.SiteSettings); switch (invalid.Type) { case Error.Types.None: break; default: return(null, null); } var binaryModel = new BinaryModel( context: context, referenceId: siteModel.SiteId, binaryType: "SiteImage"); return( binaryModel.SiteImage( context: context, sizeType: Libraries.Images.ImageData.SizeTypes.Icon, column: Rds.BinariesColumn().Icon()), binaryModel.ContentType.IsNullOrEmpty() ? "image/bmp" : binaryModel.ContentType); }
public static long GetReferenceId(Context context, string guid) { var referenceId = Rds.ExecuteScalar_long( context: context, statements: new SqlStatement[] { Rds.SelectBinaries( column: Rds.BinariesColumn() .ReferenceId(), join: Rds.BinariesJoinDefault() .Add(new SqlJoin( tableBracket: "[Items]", joinType: SqlJoin.JoinTypes.Inner, joinExpression: "[Binaries].[ReferenceId]=[Items].[ReferenceId]")) .Add(new SqlJoin( tableBracket: "[Sites]", joinType: SqlJoin.JoinTypes.Inner, joinExpression: "[Items].[SiteId]=[Sites].[SiteId]")), where : Rds.BinariesWhere() .TenantId(context.TenantId) .Guid(guid)) }); return(referenceId); }
/// <summary> /// Fixed: /// </summary> public static decimal UsedTenantStorageSize(Context context) { return(Rds.ExecuteScalar_decimal( context: context, statements: Rds.SelectBinaries( column: Rds.BinariesColumn().Size(function: Sqls.Functions.Sum), where : Rds.BinariesWhere().TenantId(context.TenantId)))); }
/// <summary> /// Fixed: /// </summary> public static byte[] SiteImageIcon(SiteModel siteModel) { siteModel.SiteSettings = SiteSettingsUtilities.Get(siteModel, siteModel.SiteId); var invalid = BinaryValidators.OnGetting(siteModel.SiteSettings); switch (invalid) { case Error.Types.None: break; default: return(null); } return(new BinaryModel(siteModel.SiteId).SiteImage( Libraries.Images.ImageData.SizeTypes.Icon, Rds.BinariesColumn().Icon())); }
/// <summary> /// Fixed: /// </summary> public static byte[] TenantImageLogo(Context context, TenantModel tenantModel) { var ss = SiteSettingsUtilities.TenantsSiteSettings(context); var invalid = BinaryValidators.OnGetting( context: context, ss: ss); switch (invalid.Type) { case Error.Types.None: break; default: return(null); } return(new BinaryModel(tenantModel.TenantId).TenantImage( context: context, sizeType: Libraries.Images.ImageData.SizeTypes.Logo, column: Rds.BinariesColumn().Bin())); }
/// <summary> /// Fixed: /// </summary> public string SiteImagePrefix(Libraries.Images.ImageData.SizeTypes sizeType) { switch (Parameters.BinaryStorage.Provider) { case "Local": return(new Libraries.Images.ImageData( ReferenceId, Libraries.Images.ImageData.Types.SiteImage) .UrlPrefix(sizeType)); default: return(Rds.ExecuteScalar_datetime(statements: Rds.SelectBinaries( column: Rds.BinariesColumn() .UpdatedTime(function: Sqls.Functions.Max), where : Rds.BinariesWhere().ReferenceId(ReferenceId))) .ToString("?yyyyMMddHHmmss")); } }
/// <summary> /// Fixed: /// </summary> public static byte[] SiteImageIcon(Context context, SiteModel siteModel) { siteModel.SiteSettings = SiteSettingsUtilities.Get( context: context, siteModel: siteModel, referenceId: siteModel.SiteId); var invalid = BinaryValidators.OnGetting( context: context, ss: siteModel.SiteSettings); switch (invalid.Type) { case Error.Types.None: break; default: return(null); } return(new BinaryModel(siteModel.SiteId).SiteImage( context: context, sizeType: Libraries.Images.ImageData.SizeTypes.Icon, column: Rds.BinariesColumn().Icon())); }
private static DataRow GetBinariesTable(Context context, string guid) { if (guid.IsNullOrEmpty()) { return(null); } return(Rds.ExecuteTable( context: context, statements: new SqlStatement[] { Rds.SelectBinaries( column: Rds.BinariesColumn() .BinaryId() .ReferenceId() .Guid() .BinaryType() .Bin() .Thumbnail() .FileName() .ContentType() .Extension() .Size() .Creator() .Updator() .CreatedTime() .UpdatedTime(), join: Rds.BinariesJoinDefault() .Add(new SqlJoin( tableBracket: "[Items]", joinType: SqlJoin.JoinTypes.Inner, joinExpression: "[Binaries].[ReferenceId]=[Items].[ReferenceId]")) .Add(new SqlJoin( tableBracket: "[Sites]", joinType: SqlJoin.JoinTypes.Inner, joinExpression: "[Items].[SiteId]=[Sites].[SiteId]")), where : Rds.BinariesWhere() .TenantId(context.TenantId) .Guid(guid) .CanRead( context: context, idColumnBracket: "[Binaries].[ReferenceId]", _using: !context.Publish)), Rds.SelectBinaries( column: Rds.BinariesColumn() .BinaryId() .ReferenceId() .Guid() .BinaryType() .Bin() .Thumbnail() .FileName() .ContentType() .Extension() .Size() .Creator() .Updator() .CreatedTime() .UpdatedTime(), join: Rds.BinariesJoinDefault() .Add(new SqlJoin( tableBracket: "[Items]", joinType: SqlJoin.JoinTypes.Inner, joinExpression: "[Binaries].[ReferenceId]=[Items].[ReferenceId]")) .Add(new SqlJoin( tableBracket: "[Sites]", joinType: SqlJoin.JoinTypes.Inner, joinExpression: "[Items].[SiteId]=[Sites].[SiteId]")), where : Rds.BinariesWhere() .TenantId(context.TenantId) .Guid(guid) .Add(raw: $"([Binaries].[CreatedTime]=[Binaries].[UpdatedTime] and [Binaries].[Creator]={context.UserId})"), unionType: Sqls.UnionTypes.UnionAll) }) .AsEnumerable() .FirstOrDefault()); }
/// <summary> /// Fixed: /// </summary> public static long UsedTenantStorageSize() { return(Rds.ExecuteScalar_long(statements: Rds.SelectBinaries( column: Rds.BinariesColumn().Size(function: Sqls.Functions.Sum), where : Rds.BinariesWhere().TenantId(Sessions.TenantId())))); }
public static FileContentResult Download(Context context, string guid) { var dataRow = Rds.ExecuteTable( context: context, statements: new SqlStatement[] { Rds.SelectBinaries( column: Rds.BinariesColumn() .Guid() .BinaryType() .Bin() .FileName() .ContentType(), join: Rds.BinariesJoinDefault() .Add(new SqlJoin( tableBracket: "[Items]", joinType: SqlJoin.JoinTypes.Inner, joinExpression: "[Binaries].[ReferenceId]=[Items].[ReferenceId]")) .Add(new SqlJoin( tableBracket: "[Sites]", joinType: SqlJoin.JoinTypes.Inner, joinExpression: "[Items].[SiteId]=[Sites].[SiteId]")), where : Rds.BinariesWhere() .TenantId(context.TenantId) .Guid(guid) .CanRead( context: context, idColumnBracket: "[Binaries].[ReferenceId]", _using: !context.Publish)), Rds.SelectBinaries( column: Rds.BinariesColumn() .Guid() .BinaryType() .Bin() .FileName() .ContentType(), join: Rds.BinariesJoinDefault() .Add(new SqlJoin( tableBracket: "[Items]", joinType: SqlJoin.JoinTypes.Inner, joinExpression: "[Binaries].[ReferenceId]=[Items].[ReferenceId]")) .Add(new SqlJoin( tableBracket: "[Sites]", joinType: SqlJoin.JoinTypes.Inner, joinExpression: "[Items].[SiteId]=[Sites].[SiteId]")), where : Rds.BinariesWhere() .TenantId(context.TenantId) .Guid(guid) .Add(raw: $"([Binaries].[CreatedTime]=[Binaries].[UpdatedTime] and [Binaries].[Creator]={context.UserId})"), unionType: Sqls.UnionTypes.UnionAll) }) .AsEnumerable() .FirstOrDefault(); return(dataRow != null ? new ResponseFile( new MemoryStream(Bytes(dataRow), false), dataRow.String("FileName"), dataRow.String("ContentType")).FileStream() : null); }