public static void ExecuteSyncActions(int packageId, FileSyncAction[] actions)
        {
            // check account
            int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);

            if (accountCheck < 0)
            {
                return;
            }

            OS.OperatingSystem os = GetOS(packageId);

            // update actions
            foreach (FileSyncAction action in actions)
            {
                if (!String.IsNullOrEmpty(action.SrcPath))
                {
                    action.SrcPath = GetFullPackagePath(packageId, action.SrcPath);
                }
                if (!String.IsNullOrEmpty(action.DestPath))
                {
                    action.DestPath = GetFullPackagePath(packageId, action.DestPath);
                }
            }

            // perform sync
            os.ExecuteSyncActions(actions);
        }