/*Start--------------------Portal and Survey Skin Updates for Dynamic Variables by Optimus-----------------*/
        public static bool UpdateSkinDynamicVariable(string replacementValue, string skinFolderPath, string substitution,
            string propertyName, ReplacementDirectory.Replacement replacementDirectory)
        {
            List<String> files = new List<string>();
            FileSearch(skinFolderPath, files);

            foreach (string file in files)
            {
                if (!Exists(file)) continue;
                TextReader reader = new StreamReader(file);
                string contents = reader.ReadToEnd();
                reader.Close();
                if (contents.Contains(substitution))
                {
                    contents = contents.Replace(substitution, replacementValue);
                }
                TextWriter writer = new StreamWriter(file);
                writer.Write(contents);
                writer.Close();
            }
            return true;
        }
 // Updating Portal and Survey Skin with Dynamic Variable Values by Optimus
 private static void ApplyDynamicVariables(PanelPreferences preferences, string groupName, GuiVariable guiVar, string skinFolderPath,
     string dataPath, ReplacementDirectory.Replacement replacementDirectory)
 {
     switch (guiVar.UiComponent)
     {
         // Modified by K.G for phase2 task 'Support upload/processing of non-image files (e.g. pdf)'.
         case "FileUpload()":
             SkinManagerHelper.UpdateDynamicFile(preferences.DynamicGuiVariables[guiVar.ComponentName],
                 skinFolderPath, dataPath, guiVar.PropertyName, replacementDirectory, guiVar.PathToUpload);
             break;
         case "ChoiceSelector()":
             var replaceValues = guiVar.PropertyName.Split(',');
             if (replaceValues.Length != 2) throw new Exception("Choice Selections must provide values for selected and unselected in PropertyName (e.g. 'block,none')");
             var replacementValue = preferences.DynamicGuiVariables[guiVar.ComponentName] == "true" ? replaceValues[0] : replaceValues[1];
             SkinManagerHelper.UpdateSkinDynamicVariable(replacementValue, skinFolderPath, guiVar.Substitution, guiVar.PropertyName, replacementDirectory);
             break;
         default:
             SkinManagerHelper.UpdateSkinDynamicVariable(preferences.DynamicGuiVariables[guiVar.ComponentName],
                 skinFolderPath, guiVar.Substitution, guiVar.PropertyName, replacementDirectory);
             break;
     }
 }
        /*        public static bool UpdateSkinVariableListChoiceText(string value, string skinFolderPath, string substitution,
                    string propertyName, bool isPortal)
                {
                    if (null == value)
                    {
                        return true;
                    }

                    string cssPath = isPortal ? Res.PortalCommonCSSPath : Res.SurveyLayoutCSSPath;

                    string combineCssPath = Path.Combine(skinFolderPath, cssPath);
                    Exists(combineCssPath);

                    TextReader reader = new StreamReader(combineCssPath);
                    string commonCss = reader.ReadToEnd();
                    reader.Close();

                    if (commonCss.Contains(substitution))
                    {
                        commonCss = commonCss.Replace(substitution, String.Format("{0} : {1};", propertyName, value));
                    }
                    TextWriter writer = new StreamWriter(combineCssPath);
                    writer.Write(commonCss);
                    writer.Close();

                    return true;
                }

                public static bool UpdateSkinChoice(string value, string skinFolderPath, string substitution,
                    string propertyName, bool isPortal)
                {
                    if (Convert.ToBoolean(value) || !isPortal)
                    {
                        return true; //By default its visible
                    }

                    string cssPath = Res.PortalMemberCSSPath;

                    string combineCssPath = Path.Combine(skinFolderPath, cssPath);
                    Exists(combineCssPath);

                    TextReader reader = new StreamReader(combineCssPath);
                    string commonCss = reader.ReadToEnd();
                    reader.Close();

                    if (commonCss.Contains(substitution))
                    {
                        commonCss = commonCss.Replace(substitution, String.Format("{0};", propertyName));
                    }
                    TextWriter writer = new StreamWriter(combineCssPath);
                    writer.Write(commonCss);
                    writer.Close();

                    return true;
                }
        */
        // Modified by K.G: To make image upload control to file upload control & Now Path is coming from substitution.xml.
        public static bool UpdateDynamicFile(string fileName, string skinFolderPath, string dataPath, string propertyName, ReplacementDirectory.Replacement replacementDirectory, string pathToUpload)
        {
            if (null == fileName)
            {
                return true;
            }

            if (fileName.Length == 0)
            {
                return true;
            }
            string fileExtention = Path.GetExtension(fileName);
             var newFilePath = string.Empty;
            // Modified by K.G(24-11-2011) to support multi path upload
            if (!string.IsNullOrEmpty(pathToUpload))
            {
                string[] pathsWithDirectoryName = pathToUpload.Split(':');
                foreach (var pathwithdeirwctoryname in pathsWithDirectoryName)
                {
                    int index = pathwithdeirwctoryname.IndexOf('\\');
                    string directoryZipName = pathwithdeirwctoryname.Substring(0, index);
                    if(directoryZipName.ToLower().Contains(ReplacementDirectory.GetReplacementDirectory(replacementDirectory)))
                    {
                        newFilePath=pathwithdeirwctoryname.Substring(index + 1);
                        break;
                    }

                }
            }

            StringBuilder filePath = new StringBuilder();
            filePath.Append(newFilePath);
            filePath.Append(propertyName);
            filePath.Append(fileExtention);

            string combinedFilePath = Path.Combine(skinFolderPath, filePath.ToString());

            if (File.Exists(combinedFilePath))
            {
                File.Delete(combinedFilePath);
            }

            string newFileSourcePath = Path.Combine(dataPath,
                                               String.Format("{0}{1}", Res.UploadsFolder, Path.GetFileName(fileName)));
            Exists(newFileSourcePath);

            File.Copy(newFileSourcePath, combinedFilePath);

            Exists(combinedFilePath);

            return true;
        }