public override async Task <Result> ExportAsync(string fileName, CancellationToken cancellationToken)
        {
            using (var context = new ZvsContext(EntityContextConnection))
            {
                var existingTriggers = await context.DeviceValueTriggers
                                       .ToListAsync(cancellationToken);

                var backupTriggers = new List <TriggerBackup>();
                foreach (var o in existingTriggers)
                {
                    var trigger = new TriggerBackup
                    {
                        Name            = o.Name,
                        isEnabled       = o.IsEnabled,
                        DeviceValueName = o.DeviceValue.Name,
                        NodeNumber      = o.DeviceValue.Device.NodeNumber,
                        StoredCommand   = await StoredCmdBackup.ConvertToBackupCommand(o),
                        Operator        = (int?)o.Operator,
                        Value           = o.Value
                    };
                    backupTriggers.Add(trigger);
                }

                var saveResult = await SaveAsXmlToDiskAsync(backupTriggers, fileName);

                if (saveResult.HasError)
                {
                    return(Result.ReportError(saveResult.Message));
                }

                return(Result.ReportSuccessFormat("Exported {0} triggers to {1}", backupTriggers.Count,
                                                  Path.GetFileName(fileName)));
            }
        }
Beispiel #2
0
        public async override Task <Result> ExportAsync(string fileName, CancellationToken cancellationToken)
        {
            var cmdCount = 0;

            using (var context = new ZvsContext(EntityContextConnection))
            {
                var existingScenes = await context.Scenes
                                     .Include(o => o.Commands)
                                     .ToListAsync(cancellationToken);

                var backupScenes = new List <SceneBackup>();
                foreach (var s in existingScenes)
                {
                    var sceneBackup = new SceneBackup {
                        Name = s.Name
                    };

                    foreach (var scmd in s.Commands)
                    {
                        var sceneCmdBackup = new SceneCMDBackup
                        {
                            Order         = scmd.SortOrder,
                            StoredCommand = await StoredCmdBackup.ConvertToBackupCommand(scmd)
                        };
                        sceneBackup.Commands.Add(sceneCmdBackup);
                        cmdCount++;
                    }
                    backupScenes.Add(sceneBackup);
                }

                var saveResult = await SaveAsXmlToDiskAsync(backupScenes, fileName);

                if (saveResult.HasError)
                {
                    return(Result.ReportError(saveResult.Message));
                }

                return(Result.ReportSuccessFormat("Exported {0} scenes with {1} scene commands to {2}",
                                                  backupScenes.Count,
                                                  cmdCount,
                                                  Path.GetFileName(fileName)));
            }
        }
        public async override Task <Result> ExportAsync(string fileName, CancellationToken cancellationToken)
        {
            using (var context = new ZvsContext(EntityContextConnection))
            {
                var existingSTs = await context.ScheduledTasks
                                  .ToListAsync(cancellationToken);

                var backupSTs = new List <ScheduledTaskBackup>();
                foreach (var t in existingSTs)
                {
                    var task = new ScheduledTaskBackup
                    {
                        StoredCommand = await StoredCmdBackup.ConvertToBackupCommand(t),
                        startTime     = t.StartTime,
                        Frequency     = (int)t.TaskType,
                        Name          = t.Name,
                        isEnabled     = t.IsEnabled,

                        DaysOfMonthToActivate = (int)t.DaysOfMonthToActivate,
                        DaysOfWeekToActivate  = (int)t.DaysOfWeekToActivate,

                        RecurDays    = t.RepeatIntervalInDays,
                        RecurMonth   = t.RepeatIntervalInMonths,
                        RecurSeconds = t.RepeatIntervalInSeconds,
                        RecurWeeks   = t.RepeatIntervalInWeeks,

                        sortOrder = t.SortOrder
                    };
                    backupSTs.Add(task);
                }

                var saveResult = await SaveAsXmlToDiskAsync(backupSTs, fileName);

                if (saveResult.HasError)
                {
                    return(Result.ReportError(saveResult.Message));
                }

                return(Result.ReportSuccessFormat("Exported {0} scheduled tasks to {1}", backupSTs.Count,
                                                  Path.GetFileName(fileName)));
            }
        }