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))); } }
public System.Web.Mvc.ContentResult Create(Context context) { if (!context.ContractSettings.Attachments()) { return null; } var statements = new List<SqlStatement>(); statements.Add(Rds.InsertBinaries( selectIdentity: true, param: Rds.BinariesParam() .TenantId(context.TenantId) .ReferenceId(ReferenceId) .Guid(Guid) .Title(Name ?? FileName) .BinaryType("Attachments") .Bin(GetBin()) .FileName(Name ?? FileName) .Extension(Extention) .Size(Size) .ContentType(ContentType))); var response = Repository.ExecuteScalar_response( context: context, transactional: true, selectIdentity: true, statements: statements.ToArray()); return ApiResults.Success( id: response.Id.ToLong(), message: this.Guid); }
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))); } }
/// <summary> /// Fixed: /// </summary> public static string UploadImage(IContext context, long id) { var controlId = context.Forms.ControlId(); var ss = new ItemModel( context: context, referenceId: id).GetSite( context: context, initSiteSettings: true) .SiteSettings; var invalid = BinaryValidators.OnUploadingImage(context: context); switch (invalid) { case Error.Types.OverTenantStorageSize: return(Messages.ResponseOverTenantStorageSize( context: context, data: context.ContractSettings.StorageSize.ToString()).ToJson()); case Error.Types.None: break; default: return(invalid.MessageJson(context: context)); } var file = context.PostedFiles.FirstOrDefault(); var bin = file.Byte(); if (Parameters.BinaryStorage.IsLocal()) { bin.Write(System.IO.Path.Combine( Directories.BinaryStorage(), "Images", file.Guid)); } else { Rds.ExecuteNonQuery( context: context, statements: Rds.InsertBinaries( param: Rds.BinariesParam() .TenantId(context.TenantId) .ReferenceId(id) .Guid(file.Guid) .BinaryType("Images") .Title(file.FileName) .Bin(bin) .FileName(file.FileName) .Extension(file.Extension) .Size(file.Size) .ContentType(file.ContentType))); } var hb = new HtmlBuilder(); return(new ResponseCollection() .InsertText( "#" + context.Forms.ControlId(), "![image]({0})".Params(Locations.ShowFile( context: context, guid: file.Guid))) .ToJson()); }
public Error.Types PhysicalDelete( Sqls.TableTypes tableType = Sqls.TableTypes.Normal) { Rds.ExecuteNonQuery( transactional: true, statements: Rds.PhysicalDeleteBinaries( tableType: tableType, param: Rds.BinariesParam().BinaryId(BinaryId))); return(Error.Types.None); }
public ErrorData PhysicalDelete( Context context, Sqls.TableTypes tableType = Sqls.TableTypes.Normal) { Repository.ExecuteNonQuery( context: context, transactional: true, statements: Rds.PhysicalDeleteBinaries( tableType: tableType, param: Rds.BinariesParam().BinaryId(BinaryId))); return(new ErrorData(type: Error.Types.None)); }
/// <summary> /// Fixed: /// </summary> public static string UploadImage( Context context, System.Web.HttpPostedFileBase[] files, long id) { var controlId = Forms.ControlId(); var ss = new ItemModel( context: context, referenceId: id).GetSite( context: context, initSiteSettings: true) .SiteSettings; var invalid = BinaryValidators.OnUploadingImage( context: context, files: files); switch (invalid) { case Error.Types.OverTenantStorageSize: return(Messages.ResponseOverTenantStorageSize( Contract.TenantStorageSize(context: context).ToString()).ToJson()); case Error.Types.None: break; default: return(invalid.MessageJson()); } var guid = Strings.NewGuid(); var file = files[0]; var size = file.ContentLength; var bin = file.Byte(); Rds.ExecuteNonQuery( context: context, statements: Rds.InsertBinaries( param: Rds.BinariesParam() .TenantId(context.TenantId) .ReferenceId(id) .Guid(guid) .BinaryType("Images") .Title(file.FileName) .Bin(bin, _using: !Parameters.BinaryStorage.IsLocal()) .FileName(file.FileName) .Extension(file.Extension()) .Size(size) .ContentType(file.ContentType))); if (Parameters.BinaryStorage.IsLocal()) { bin.Write(System.IO.Path.Combine(Directories.BinaryStorage(), "Images", guid)); } var hb = new HtmlBuilder(); return(new ResponseCollection() .InsertText("#" + Forms.ControlId(), $"![image]({Locations.ShowFile(guid)})") .ToJson()); }
/// <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()); }
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 static string UploadImage(System.Web.HttpPostedFileBase[] files, long id) { var controlId = Forms.ControlId(); var ss = new ItemModel(id).GetSite(initSiteSettings: true).SiteSettings; var invalid = BinaryValidators.OnUploadingImage(files); switch (invalid) { case Error.Types.OverTenantStorageSize: return(Messages.ResponseOverTenantStorageSize( Contract.TenantStorageSize().ToString()).ToJson()); case Error.Types.None: break; default: return(invalid.MessageJson()); } var guid = Strings.NewGuid(); var file = files[0]; Rds.ExecuteNonQuery(statements: Rds.InsertBinaries( param: Rds.BinariesParam() .TenantId(Sessions.TenantId()) .ReferenceId(id) .Guid(guid) .BinaryType("Image") .Title(file.FileName) .Bin(file.Byte()) .FileName(file.FileName) .Extension(file.Extension()) .Size(file.ContentLength) .ContentType(file.ContentType))); var hb = new HtmlBuilder(); return(new ResponseCollection() .InsertText("#" + Forms.ControlId(), $"![image]({Locations.ShowFile(guid)})") .ToJson()); }
/// <summary> /// Fixed: /// </summary> public static string UploadImage(Context context, long id) { var invalid = BinaryValidators.OnUploadingImage(context: context); switch (invalid) { case Error.Types.OverTenantStorageSize: return(Messages.ResponseOverTenantStorageSize( context: context, data: context.ContractSettings.StorageSize.ToString()).ToJson()); case Error.Types.None: break; default: return(invalid.MessageJson(context: context)); } var file = context.PostedFiles.FirstOrDefault(); var bin = file.Byte(); var columnName = context.Forms.Data("ControlId"); if (columnName.Contains("_")) { columnName = columnName.Substring(columnName.IndexOf("_") + 1); } if (columnName.StartsWith("Comment")) { columnName = "Comments"; } var ss = new ItemModel( context: context, referenceId: id) .GetSite( context: context, initSiteSettings: true) .SiteSettings; var thumbnailLimitSize = ss.GetColumn( context: context, columnName: columnName)?.ThumbnailLimitSize ?? Parameters.BinaryStorage.ThumbnailLimitSize; var imageData = new Libraries.Images.ImageData( bin, ss.ReferenceId, Libraries.Images.ImageData.Types.SiteImage); if (Parameters.BinaryStorage.ImageLimitSize?.ToInt() > 0) { bin = imageData.ReSizeBytes(Parameters.BinaryStorage.ImageLimitSize); } var thumbnail = thumbnailLimitSize > 0 ? imageData.ReSizeBytes(thumbnailLimitSize) : null; if (Parameters.BinaryStorage.IsLocal()) { bin.Write(System.IO.Path.Combine( Directories.BinaryStorage(), "Images", file.Guid)); if (thumbnailLimitSize > 0) { thumbnail.Write(System.IO.Path.Combine( Directories.BinaryStorage(), "Images", file.Guid + "_thumbnail")); } } Repository.ExecuteNonQuery( context: context, statements: Rds.InsertBinaries( param: Rds.BinariesParam() .TenantId(context.TenantId) .ReferenceId(id) .Guid(file.Guid) .BinaryType("Images") .Title(file.FileName) .Bin(bin, _using: !Parameters.BinaryStorage.IsLocal()) .Thumbnail(thumbnail, _using: thumbnail != null) .FileName(file.FileName) .Extension(file.Extension) .Size(file.Size) .ContentType(file.ContentType))); return(new ResponseCollection() .InsertText( "#" + context.Forms.ControlId(), "![image]({0})".Params(Locations.ShowFile( context: context, guid: file.Guid))) .ToJson()); }