Пример #1
0
 void executePrivate( )
 {
     /* GeneXus formulas */
     /* Output device settings */
     AV8TitleSettingsIcons.gxTpr_Default                 = context.GetImagePath("f0ea40a6-46fe-4550-8d22-c8725d56ffa1", "", context.GetTheme( ));
     AV8TitleSettingsIcons.gxTpr_Default_gxi             = GXDbFile.PathToUrl(context.GetImagePath("f0ea40a6-46fe-4550-8d22-c8725d56ffa1", "", context.GetTheme( )));
     AV8TitleSettingsIcons.gxTpr_Filtered                = context.GetImagePath("ce341a0a-0f31-4a25-9eef-42f5efaa6079", "", context.GetTheme( ));
     AV8TitleSettingsIcons.gxTpr_Filtered_gxi            = GXDbFile.PathToUrl(context.GetImagePath("ce341a0a-0f31-4a25-9eef-42f5efaa6079", "", context.GetTheme( )));
     AV8TitleSettingsIcons.gxTpr_Sortedasc               = context.GetImagePath("b9f89e2f-f9e1-4533-b84e-c591709915f9", "", context.GetTheme( ));
     AV8TitleSettingsIcons.gxTpr_Sortedasc_gxi           = GXDbFile.PathToUrl(context.GetImagePath("b9f89e2f-f9e1-4533-b84e-c591709915f9", "", context.GetTheme( )));
     AV8TitleSettingsIcons.gxTpr_Sorteddsc               = context.GetImagePath("c9603047-0d43-4b43-98f8-9206148120d4", "", context.GetTheme( ));
     AV8TitleSettingsIcons.gxTpr_Sorteddsc_gxi           = GXDbFile.PathToUrl(context.GetImagePath("c9603047-0d43-4b43-98f8-9206148120d4", "", context.GetTheme( )));
     AV8TitleSettingsIcons.gxTpr_Filteredsortedasc       = context.GetImagePath("7b3284fc-09e7-4c35-96bd-8fccfd2b522d", "", context.GetTheme( ));
     AV8TitleSettingsIcons.gxTpr_Filteredsortedasc_gxi   = GXDbFile.PathToUrl(context.GetImagePath("7b3284fc-09e7-4c35-96bd-8fccfd2b522d", "", context.GetTheme( )));
     AV8TitleSettingsIcons.gxTpr_Filteredsorteddsc       = context.GetImagePath("19f029d8-5fce-4990-9535-7c32f49223c6", "", context.GetTheme( ));
     AV8TitleSettingsIcons.gxTpr_Filteredsorteddsc_gxi   = GXDbFile.PathToUrl(context.GetImagePath("19f029d8-5fce-4990-9535-7c32f49223c6", "", context.GetTheme( )));
     AV8TitleSettingsIcons.gxTpr_Optionsortasc           = context.GetImagePath("b920b64e-9041-4c94-974e-ad70cf42c1da", "", context.GetTheme( ));
     AV8TitleSettingsIcons.gxTpr_Optionsortasc_gxi       = GXDbFile.PathToUrl(context.GetImagePath("b920b64e-9041-4c94-974e-ad70cf42c1da", "", context.GetTheme( )));
     AV8TitleSettingsIcons.gxTpr_Optionsortdsc           = context.GetImagePath("27f019e7-1f73-4773-b022-0eb1e5e9a385", "", context.GetTheme( ));
     AV8TitleSettingsIcons.gxTpr_Optionsortdsc_gxi       = GXDbFile.PathToUrl(context.GetImagePath("27f019e7-1f73-4773-b022-0eb1e5e9a385", "", context.GetTheme( )));
     AV8TitleSettingsIcons.gxTpr_Optionapplyfilter       = context.GetImagePath("2a5ebedb-95a8-4fbf-87e7-fc52aa72bcc3", "", context.GetTheme( ));
     AV8TitleSettingsIcons.gxTpr_Optionapplyfilter_gxi   = GXDbFile.PathToUrl(context.GetImagePath("2a5ebedb-95a8-4fbf-87e7-fc52aa72bcc3", "", context.GetTheme( )));
     AV8TitleSettingsIcons.gxTpr_Optionfilteringdata     = context.GetImagePath("d868f625-eb2f-4cc0-b58e-9552f1c1e328", "", context.GetTheme( ));
     AV8TitleSettingsIcons.gxTpr_Optionfilteringdata_gxi = GXDbFile.PathToUrl(context.GetImagePath("d868f625-eb2f-4cc0-b58e-9552f1c1e328", "", context.GetTheme( )));
     AV8TitleSettingsIcons.gxTpr_Optioncleanfilters      = context.GetImagePath("d2b56e65-7d48-43f5-a171-32b75f312b3d", "", context.GetTheme( ));
     AV8TitleSettingsIcons.gxTpr_Optioncleanfilters_gxi  = GXDbFile.PathToUrl(context.GetImagePath("d2b56e65-7d48-43f5-a171-32b75f312b3d", "", context.GetTheme( )));
     AV8TitleSettingsIcons.gxTpr_Selectedoption          = context.GetImagePath("922743b5-f093-4e77-b66c-6cd883017bf6", "", context.GetTheme( ));
     AV8TitleSettingsIcons.gxTpr_Selectedoption_gxi      = GXDbFile.PathToUrl(context.GetImagePath("922743b5-f093-4e77-b66c-6cd883017bf6", "", context.GetTheme( )));
     AV8TitleSettingsIcons.gxTpr_Multiseloption          = context.GetImagePath("57e1409a-dafd-45c5-b823-eac09df3c4ba", "", context.GetTheme( ));
     AV8TitleSettingsIcons.gxTpr_Multiseloption_gxi      = GXDbFile.PathToUrl(context.GetImagePath("57e1409a-dafd-45c5-b823-eac09df3c4ba", "", context.GetTheme( )));
     AV8TitleSettingsIcons.gxTpr_Multiselseloption       = context.GetImagePath("00c94341-3cc8-4323-9500-fd340ead11b8", "", context.GetTheme( ));
     AV8TitleSettingsIcons.gxTpr_Multiselseloption_gxi   = GXDbFile.PathToUrl(context.GetImagePath("00c94341-3cc8-4323-9500-fd340ead11b8", "", context.GetTheme( )));
     this.cleanup();
 }
        public string getMultimediaFile(int id, string gxdbFileUri)
        {
            if (!GXDbFile.IsFileExternal(gxdbFileUri))
            {
                string fileName = GXDbFile.GetFileNameFromUri(gxdbFileUri);
                if (!String.IsNullOrEmpty(fileName))
                {
                    string filePath = Path.Combine(_gxDbCommand.Conn.MultimediaPath, fileName);

                    try
                    {
                        GxFile file = new GxFile(string.Empty, filePath, GxFileType.PublicAttribute);

                        if (file.Exists())
                        {
                            return(file.GetURI());
                        }
                        else
                        {
                            return(getBLOBFile(id, FileUtil.GetFileType(gxdbFileUri), FileUtil.GetFileName(gxdbFileUri), filePath, false, GxFileType.PublicAttribute));
                        }
                    }
                    catch (ArgumentException)
                    {
                        return("");
                    }
                }
            }

            return("");
        }
Пример #3
0
 protected void E11AI2( )
 {
     /* Start Routine */
     AV7url  = "http://192.168.11.147:8000/datamanager/BR_SDUploadImage.aspx?25004,#medicalImage";
     AV7url  = new Sdtcode(context).qr(AV7url);
     AV8code = AV7url;
     context.httpAjaxContext.ajax_rsp_assign_prop("", false, imgavCode_Internalname, "Bitmap", (String.IsNullOrEmpty(StringUtil.RTrim(AV8code)) ? AV11Code_GXI : context.convertURL(context.PathToRelativeUrl(AV8code))), true);
     context.httpAjaxContext.ajax_rsp_assign_prop("", false, imgavCode_Internalname, "SrcSet", context.GetImageSrcSet(AV8code), true);
     AV11Code_GXI = GXDbFile.PathToUrl(AV7url);
     context.httpAjaxContext.ajax_rsp_assign_prop("", false, imgavCode_Internalname, "Bitmap", (String.IsNullOrEmpty(StringUtil.RTrim(AV8code)) ? AV11Code_GXI : context.convertURL(context.PathToRelativeUrl(AV8code))), true);
     context.httpAjaxContext.ajax_rsp_assign_prop("", false, imgavCode_Internalname, "SrcSet", context.GetImageSrcSet(AV8code), true);
 }
        //Insert image from local file in web transacion, storage enabled, image_gxi = myimage.jpg, image = http://amazon...s3./PrivateTempStorage/myimage.jpg (after a getMultimediaValue(imgTransaction003Image_Internalname, ref  A175TransactionImage, ref  A40000TransactionImage_GXI);
        //Update image from dataprovider (KB image object), storage enabled, image_gxi = "file:///C:/Models/Cahttea/Data017/web/Resources/Carmine/myimage.png", image: ".\\Resources/Carmine/myimage.png"
        //Insert KB image from Dataprovider in dynamic transaction image_gxi vacio, image= .\Resources\myimage.png,
        //Second execution of Dataprovider that updates images, CategoryImage = calendar.Link(), image_gxi=https://chatteatest.s3.amazonaws.com/TestPGXReleased/Category/CategoryImage/calendar_dc0ca2d9335a484cbdc2d21fc7568af7.png, copy falla, multimediaUri = image_gxi;
#pragma warning disable SCS0018 // Path traversal: injection possible in {1} argument passed to '{0}'
        public void SetParameterMultimedia(int id, string image_gxi, string image, string tableName, string fieldName)
        {
            bool storageServiceEnabled = !string.IsNullOrEmpty(tableName) && !string.IsNullOrEmpty(fieldName) && (GXServices.Instance != null && GXServices.Instance.Get(GXServices.STORAGE_SERVICE) != null);

            if (GxRestUtil.IsUpload(image))
            {
                image = GxRestUtil.UploadPath(image);
            }
            if (GxRestUtil.IsUpload(image_gxi))
            {
                image_gxi = GxRestUtil.UploadPath(image_gxi);
            }

            if (String.IsNullOrEmpty(image))
            {
                _gxDbCommand.SetParameter(id - 1, image_gxi);
            }
            else
            {
                string multimediaUri = string.Empty;
                if (storageServiceEnabled)
                {
                    //image_gxi not empty => process image_gxi
                    if (!String.IsNullOrEmpty(image_gxi))
                    {
                        if (PathUtil.IsAbsoluteUrl(image_gxi))                         //http://, https://, ftp://
                        {
                            string objectName;
                            //file is already on the cloud p.e. https://s3.amazonaws.com/Test/PublicTempStorage/multimedia/Image_ad013b5b050c4bf199f544b5561d9b92.png
                            //Must be copied to https://s3.amazonaws.com/Test/TableName/FieldName/Image_ad013b5b050c4bf199f544b5561d9b92.png
                            if (ServiceFactory.GetExternalProvider().GetObjectNameFromURL(image_gxi, out objectName))
                            {
                                try
                                {
                                    multimediaUri = ServiceFactory.GetExternalProvider().Copy(image_gxi, GXDbFile.GenerateUri(image_gxi, !GXDbFile.HasToken(image_gxi), false), tableName, fieldName, GxFileType.PublicAttribute);
                                    GXLogging.Debug(log, "Copy file already in ExternalProvider:", multimediaUri);
                                }
                                catch (Exception ex)
                                {
                                    multimediaUri = image_gxi;
                                    //it is trying to copy an object to itself without changing the object's metadata
                                    GXLogging.Warn(log, ex, "Copy file to itself filed in ExternalProvider:", image_gxi);
                                }
                            }
                            else                             //image_gxi url is in another cloud
                            {
                                try
                                {
                                    using (var fileStream = new MemoryStream(new WebClient().DownloadData(image_gxi)))
                                    {
                                        //Cannot pass Http Stream directly, because some Providers (AWS S3) does not support Http Stream.
                                        multimediaUri = ServiceFactory.GetExternalProvider().Save(fileStream, GXDbFile.GenerateUri(image_gxi, !GXDbFile.HasToken(image_gxi), false), tableName, fieldName, GxFileType.Public);
                                        GXLogging.Debug(log, "Upload external file to ExternalProvider:", multimediaUri);
                                    }
                                }
                                catch (WebException)
                                {
                                    multimediaUri = image_gxi;
                                }
                            }
                        }
                        else
                        {
                            Uri    uri;
                            string fileFullName = string.Empty;
                            if (Uri.TryCreate(image_gxi, UriKind.Absolute, out uri))                             //file://
                            {
                                fileFullName = uri.AbsolutePath;
                                Stream fileStream = new FileStream(fileFullName, FileMode.Open, FileAccess.Read);
                                String fileName   = PathUtil.GetValidFileName(fileFullName, "_");
                                using (fileStream)
                                {
                                    multimediaUri = ServiceFactory.GetExternalProvider().Save(fileStream, GXDbFile.GenerateUri(fileName, !GXDbFile.HasToken(fileName), false), tableName, fieldName, GxFileType.Public);
                                    GXLogging.Debug(log, "Upload file (_gxi) to ExternalProvider:", multimediaUri);
                                }
                            }
                            else                             //relative image name=> Assume it is a local file on the cloud, because storageService is Enabled.
                            {
                                try
                                {
                                    multimediaUri = ServiceFactory.GetExternalProvider().Copy(image, GXDbFile.GenerateUri(image_gxi, !GXDbFile.HasToken(image_gxi), false), tableName, fieldName, GxFileType.Public);
                                    GXLogging.Debug(log, "Copy external file in ExternalProvider:", multimediaUri);
                                }
                                catch (Exception e)
                                {
                                    GXLogging.Warn(log, e, "Could not copy external file in ExternalProvider:", image);
                                    //If Image is not in Cloud Storage, then we look if we can find it in the hard drive. This is the case for Relative paths using Image.FromImage()
                                    //If file is not available, exception must be thrown
                                    multimediaUri = PushToExternalProvider(new FileStream(image, FileMode.Open, FileAccess.Read), GXDbFile.GenerateUri(image_gxi, !GXDbFile.HasToken(image_gxi), false), tableName, fieldName);
                                    GXLogging.Debug(log, "Upload file to ExternalProvider:", multimediaUri);
                                }
                            }
                        }
                    }
                    //image_gxi is empty => process image
                    else if (!String.IsNullOrEmpty(image))
                    {
                        var fileName = PathUtil.GetValidFileName(image, "_");

                        try
                        {
                            Stream fileStream;
                            if (!PathUtil.IsAbsoluteUrl(image))                             //Assume it is a local file
                            {
                                image      = Path.Combine(GxContext.StaticPhysicalPath(), image);
                                fileStream = new FileStream(image, FileMode.Open, FileAccess.Read);
                            }
                            else
                            {
                                WebClient c = new WebClient();
                                fileStream = new MemoryStream(c.DownloadData(image));
                                //Cannot pass Http Stream directly, because some Providers (AWS S3) does not support Http Stream.
                            }
                            string externalFileName = GXDbFile.GenerateUri(fileName, !GXDbFile.HasToken(fileName), false);
                            multimediaUri = PushToExternalProvider(fileStream, externalFileName, tableName, fieldName);
                        }
                        catch (WebException)                        //403 forbidden, parm = url in external provider that has been deleted
                        {
                            multimediaUri = image_gxi;
                        }
                    }
                }
                //image_gxi not empty => process image_gxi
                else if (!String.IsNullOrEmpty(image_gxi))
                {
                    multimediaUri = GXDbFile.GenerateUri(PathUtil.GetValidFileName(image_gxi, "_"), !GXDbFile.HasToken(image_gxi), true);
                }
                //image_gxi is empty => process image
                else if (!String.IsNullOrEmpty(image))
                {
                    multimediaUri = GXDbFile.GenerateUri(PathUtil.GetValidFileName(image, "_"), !GXDbFile.HasToken(image), true);
                }
                _gxDbCommand.SetParameter(id - 1, multimediaUri);
            }
        }
 public string getMultimediaUri(int id, bool absUrl)
 {
     return(GXDbFile.ResolveUri(getVarchar(id), absUrl, _gxDbCommand.Conn.DataStore.Context));
 }