/// <summary>
        /// Delete provided tag table from plc code
        /// </summary>
        /// <param name="tagTableName"></param>
        /// <param name="tagGroup"></param>
        /// <param name="log"></param>
        public static void DeleteTagTable(string tagTableName, PlcTagTableGroup tagGroup, TextBox log)
        {
            PlcTagTable tagTableToDelete = null;

            foreach (PlcTagTable tagTable in tagGroup.TagTables)
            {
                if (tagTableName.Equals(tagTable.Name))
                {
                    tagTableToDelete = tagTable;
                }
            }

            if (tagTableToDelete != null)
            {
                tagTableToDelete.Delete();

                log.AppendText("Tag table " + tagTableName + " to be deleted found in " + tagGroup.Name + " tag table folder");
                log.AppendText(Environment.NewLine);
            }
            else
            {
                log.AppendText("Tag table " + tagTableName + " not found in " + tagGroup.Name + " tag table folder");
                log.AppendText(Environment.NewLine);

                // if tag table was not found in current group check subfolders
                foreach (PlcTagTableGroup group in tagGroup.Groups)
                {
                    DeleteTagTable(tagTableName, group, log);
                }
            }
        }
        /// <summary>
        /// Copy provided tag table from project library to provided destination folder in plc
        /// </summary>
        public static bool CopyTagTableToFolder(string tagTableName, MasterCopyFolder libraryFolder, PlcTagTableGroup tagGroup, string destFolder, TextBox log)
        {
            // check if it's already on the right folder to proceed with the copy
            if (tagGroup.Name.Equals(destFolder))
            {
                log.AppendText("Destination folder found");
                log.AppendText(Environment.NewLine);
                // delete existing tag table if already exists
                DeleteTagTable(tagTableName, tagGroup, log);

                // create new tag table from project library
                tagGroup.TagTables.CreateFrom(GetMasterCopy(libraryFolder, tagTableName, log));
                return(true);
            }

            // if it's not in the right folder, recursively check subfolders
            foreach (PlcTagTableGroup group in tagGroup.Groups)
            {
                log.AppendText("Checking " + group.Name + " subfolders");
                log.AppendText(Environment.NewLine);
                if (CopyTagTableToFolder(tagTableName, libraryFolder, group, destFolder, log))
                {
                    return(true);
                }
            }

            return(false);
        }