/// <summary> /// Fixed: /// </summary> public Error.Types UpdateTenantImage(Context context, byte[] bin) { BinaryType = "TenantImage"; var imageData = new Libraries.Images.ImageData( bin, ReferenceId, Libraries.Images.ImageData.Types.TenantImage); switch (Parameters.BinaryStorage.Provider) { case "Local": imageData.WriteToLocal(); break; default: Bin = imageData.ReSizeBytes(Libraries.Images.ImageData.SizeTypes.Logo); Rds.ExecuteNonQuery( context: context, transactional: true, statements: Rds.UpdateOrInsertBinaries( where : Rds.BinariesWhere() .ReferenceId(ReferenceId) .BinaryType("TenantImage"), param: Rds.BinariesParamDefault( context: context, binaryModel: this, setDefault: true))); break; } return(Error.Types.None); }
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); }
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 string DeleteImage(Context context, string guid) { var binaryModel = new BinaryModel() .Get( context: context, where : Rds.BinariesWhere() .TenantId(context.TenantId) .Guid(guid)); var ss = new ItemModel( context: context, referenceId: binaryModel.ReferenceId) .GetSite( context: context, initSiteSettings: true) .SiteSettings; var invalid = BinaryValidators.OnDeletingImage( context: context, ss: ss, binaryModel: binaryModel); switch (invalid) { case Error.Types.None: break; default: return(invalid.MessageJson(context: context)); } binaryModel.Delete(context: context); return(new ResponseCollection() .Message(Messages.DeletedImage(context: context)) .Remove($"#ImageLib .item[data-id=\"{guid}\"]") .ToJson()); }
/// <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 Error.Types UpdateSiteImage(byte[] data) { BinaryType = "SiteImage"; var imageData = new Libraries.Images.ImageData( data, ReferenceId, Libraries.Images.ImageData.Types.SiteImage); switch (Parameters.BinaryStorage.Provider) { case "Local": imageData.WriteToLocal(); break; default: Bin = imageData.ReSizeBytes(Libraries.Images.ImageData.SizeTypes.Regular); Thumbnail = imageData.ReSizeBytes( Libraries.Images.ImageData.SizeTypes.Thumbnail); Icon = imageData.ReSizeBytes(Libraries.Images.ImageData.SizeTypes.Icon); Rds.ExecuteNonQuery(transactional: true, statements: Rds.UpdateOrInsertBinaries( selectIdentity: true, where : Rds.BinariesWhere() .ReferenceId(ReferenceId) .BinaryType("SiteImage"), param: Rds.BinariesParamDefault(this, setDefault: true))); break; } return(Error.Types.None); }
public void SqlStatement(List <SqlStatement> statements, long referenceId) { if (Added == true) { var bin = GetBin(); if (bin != null) { statements.Add(Rds.InsertBinaries( selectIdentity: true, param: Rds.BinariesParam() .TenantId(Sessions.TenantId()) .ReferenceId(referenceId, _using: referenceId != 0) .ReferenceId(raw: Def.Sql.Identity, _using: referenceId == 0) .Guid(Guid) .Title(Name) .BinaryType("Attachments") .Bin(bin, _using: !Parameters.BinaryStorage.IsLocal()) .FileName(Name) .Extension(Extention) .Size(Size) .ContentType(ContentType))); } Directory.Delete(Path.Combine(Directories.Temp(), Guid), recursive: true); } else if (Deleted == true) { statements.Add(Rds.DeleteBinaries( where : Rds.BinariesWhere().Guid(Guid))); } }
public void SqlStatement(Context context, List <SqlStatement> statements, long referenceId) { if (Added == true) { var bin = GetBin(); if (bin != null) { statements.Add(Rds.InsertBinaries( param: Rds.BinariesParam() .TenantId(context.TenantId) .ReferenceId(referenceId, _using: referenceId != 0) .ReferenceId(raw: Def.Sql.Identity, _using: referenceId == 0) .Guid(Guid) .Title(Name) .BinaryType("Attachments") .Bin(bin, _using: !Parameters.BinaryStorage.IsLocal()) .FileName(Name) .Extension(Extention) .Size(Size) .ContentType(ContentType))); } DataSources.File.DeleteTemp(Guid); } else if (Deleted == true) { statements.Add(Rds.DeleteBinaries( factory: context, where : Rds.BinariesWhere().Guid(Guid))); } }
/// <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)))); }
public Error.Types Delete() { Rds.ExecuteNonQuery( transactional: true, statements: new SqlStatement[] { Rds.DeleteBinaries( where : Rds.BinariesWhere().BinaryId(BinaryId)) }); return(Error.Types.None); }
public Error.Types Restore(long binaryId) { BinaryId = binaryId; Rds.ExecuteNonQuery( connectionString: Parameters.Rds.OwnerConnectionString, transactional: true, statements: new SqlStatement[] { Rds.RestoreBinaries( where : Rds.BinariesWhere().BinaryId(BinaryId)) }); return(Error.Types.None); }
public Error.Types Delete() { var statements = new List <SqlStatement>(); statements.AddRange(new List <SqlStatement> { Rds.DeleteBinaries( where : Rds.BinariesWhere().BinaryId(BinaryId)) }); Rds.ExecuteNonQuery( transactional: true, statements: statements.ToArray()); return(Error.Types.None); }
public Error.Types Delete() { var statements = new List <SqlStatement>(); var where = Rds.BinariesWhere().BinaryId(BinaryId); statements.AddRange(new List <SqlStatement> { Rds.DeleteBinaries(where : where) }); var response = Rds.ExecuteScalar_response( transactional: true, statements: statements.ToArray()); return(Error.Types.None); }
public ErrorData Delete(Context context) { var statements = new List <SqlStatement>(); var where = Rds.BinariesWhere().BinaryId(BinaryId); statements.AddRange(new List <SqlStatement> { Rds.DeleteBinaries(factory: context, where : where) }); Repository.ExecuteNonQuery( context: context, transactional: true, statements: statements.ToArray()); return(new ErrorData(type: Error.Types.None)); }
public Error.Types Delete() { var statements = new List <SqlStatement>(); var where = Rds.BinariesWhere().BinaryId(BinaryId); statements.AddRange(new List <SqlStatement> { CopyToStatement(where, Sqls.TableTypes.Deleted), Rds.PhysicalDeleteBinaries(where : where) }); Rds.ExecuteNonQuery( transactional: true, statements: statements.ToArray()); return(Error.Types.None); }
public ErrorData Restore(Context context, long binaryId) { BinaryId = binaryId; Repository.ExecuteNonQuery( context: context, connectionString: Parameters.Rds.OwnerConnectionString, transactional: true, statements: new SqlStatement[] { Rds.RestoreBinaries( factory: context, where : Rds.BinariesWhere().BinaryId(BinaryId)) }); return(new ErrorData(type: Error.Types.None)); }
/// <summary> /// Fixed: /// </summary> public static SqlStatement UpdateReferenceId( Context context, SiteSettings ss, long referenceId, string values) { var guids = values?.RegexValues("[0-9a-z]{32}").ToList(); return(guids?.Any() == true ? Rds.UpdateBinaries( param : Rds.BinariesParam().ReferenceId(referenceId), where : Rds.BinariesWhere() .TenantId(context.TenantId) .ReferenceId(ss.SiteId) .Guid(guids, multiParamOperator : " or ") .Creator(context.UserId)) : null); }
/// <summary> /// Fixed: /// </summary> public BinaryModel(Context context, long referenceId, string binaryType) { ReferenceId = referenceId; BinaryType = binaryType; if (Parameters.BinaryStorage.Provider == "Local") { return; } Get( context: context, where : Rds.BinariesWhere() .ReferenceId(referenceId) .BinaryType(binaryType), param: Rds.BinariesParam() .ReferenceId() .ContentType()); }
/// <summary> /// Fixed: /// </summary> public byte[] SiteImage( Libraries.Images.ImageData.SizeTypes sizeType, SqlColumnCollection column) { switch (Parameters.BinaryStorage.Provider) { case "Local": return(new Libraries.Images.ImageData( ReferenceId, Libraries.Images.ImageData.Types.SiteImage) .Read(sizeType)); default: return(Rds.ExecuteScalar_bytes(statements: Rds.SelectBinaries( column: column, where : Rds.BinariesWhere().ReferenceId(ReferenceId)))); } }
/// <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")); } }
public void SqlStatement(Context context, List<SqlStatement> statements, long referenceId, Column column) { if (Added == true) { var bin = IsStoreLocalFolder(column) ? default : GetBin(); statements.Add(Rds.UpdateOrInsertBinaries( param: Rds.BinariesParam() .TenantId(context.TenantId) .ReferenceId(referenceId, _using: referenceId != 0) .ReferenceId(raw: Def.Sql.Identity, _using: referenceId == 0) .Guid(Guid) .Title(Name ?? FileName) .BinaryType("Attachments") .Bin(bin, _using: !IsStoreLocalFolder(column)) .Bin(raw: "NULL", _using: IsStoreLocalFolder(column)) .FileName(Name ?? FileName) .Extension(Extention) .Size(Size) .ContentType(ContentType), where: Rds.BinariesWhere().Guid(Guid))); } else if (Deleted == true && !Overwritten.HasValue) { statements.Add(Rds.DeleteBinaries( factory: context, where: Rds.BinariesWhere().Guid(Guid))); } else { switch (Action) { case "Linked": statements.Add(Rds.UpdateBinaries( param: Rds.BinariesParam() .ReferenceId(referenceId), where: Rds.BinariesWhere().Guid(Guid))); break; default: break; } } }
/// <summary> /// Fixed: /// </summary> public byte[] TenantImage( Context context, Libraries.Images.ImageData.SizeTypes sizeType, SqlColumnCollection column) { switch (Parameters.BinaryStorage.Provider) { case "Local": return(new Libraries.Images.ImageData( ReferenceId, Libraries.Images.ImageData.Types.TenantImage) .Read(sizeType)); default: return(Repository.ExecuteScalar_bytes( context: context, statements: Rds.SelectBinaries( column: column, where : Rds.BinariesWhere() .ReferenceId(ReferenceId) .BinaryType("TenantImage")))); } }
/// <summary> /// Fixed: /// </summary> public Error.Types DeleteSiteImage() { BinaryType = "SiteImage"; switch (Parameters.BinaryStorage.Provider) { case "Local": new Libraries.Images.ImageData( ReferenceId, Libraries.Images.ImageData.Types.SiteImage) .DeleteLocalFiles(); break; default: Rds.ExecuteNonQuery(statements: Rds.PhysicalDeleteBinaries( where : Rds.BinariesWhere() .ReferenceId(ReferenceId) .BinaryType("SiteImage"))); break; } return(Error.Types.None); }
/// <summary> /// Fixed: /// </summary> public Error.Types DeleteTenantImage(Context context) { BinaryType = "TenantImage"; switch (Parameters.BinaryStorage.Provider) { case "Local": new Libraries.Images.ImageData( ReferenceId, Libraries.Images.ImageData.Types.TenantImage) .DeleteLocalFiles(); break; default: Repository.ExecuteNonQuery( context: context, statements: Rds.PhysicalDeleteBinaries( where : Rds.BinariesWhere() .ReferenceId(ReferenceId) .BinaryType("TenantImage"))); break; } return(Error.Types.None); }
/// <summary> /// Fixed: /// </summary> public Error.Types UpdateSiteImage( Context context, SiteSettings ss, byte[] bin) { BinaryType = "SiteImage"; var imageData = new Libraries.Images.ImageData( bin, ReferenceId, Libraries.Images.ImageData.Types.SiteImage); switch (Parameters.BinaryStorage.GetSiteImageProvider()) { case "Local": imageData.WriteToLocal(); break; default: Bin = imageData.ReSizeBytes(Libraries.Images.ImageData.SizeTypes.Regular); Thumbnail = imageData.ReSizeBytes( Libraries.Images.ImageData.SizeTypes.Thumbnail); Icon = imageData.ReSizeBytes(Libraries.Images.ImageData.SizeTypes.Icon); ContentType = "image/png"; Repository.ExecuteNonQuery( context: context, transactional: true, statements: Rds.UpdateOrInsertBinaries( where : Rds.BinariesWhere() .ReferenceId(ReferenceId) .BinaryType("SiteImage"), param: Rds.BinariesParamDefault( context: context, ss: ss, binaryModel: this, setDefault: true))); break; } return(Error.Types.None); }
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); }
/// <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())))); }
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()); }