Ejemplo n.º 1
0
        /// <summary>
        /// If no terminators defined, create default, store and set as default in settings
        /// </summary>
        private void AssureTerminatorsDefault(IIndexedStorageManager <TerminatorDataModel, DefaultFileExtraInfo> data)
        {
            // If nothing exists create default
            List <IIndexItem <DefaultFileExtraInfo> > index = data.IndexedItems;

            if (index.Count == 0)
            {
                // For a new one. Different when updating. Do not need to create new index
                List <TerminatorInfo> infos = new List <TerminatorInfo>();
                infos.Add(new TerminatorInfo(Terminator.LF));
                infos.Add(new TerminatorInfo(Terminator.CR));
                TerminatorDataModel dm = new TerminatorDataModel(infos)
                {
                    Display = "Demo terminator set \\n\\r"
                };

                IIndexItem <DefaultFileExtraInfo> idx = new IndexItem <DefaultFileExtraInfo>(dm.UId)
                {
                    Display = dm.Display
                };
                data.Store(dm, idx);

                this.GetSettings(
                    (settings) => {
                    settings.CurrentTerminator         = dm;
                    settings.CurrentTerminatorBLE      = dm;
                    settings.CurrentTerminatorBT       = dm;
                    settings.CurrentTerminatorEthernet = dm;
                    settings.CurrentTerminatorUSB      = dm;
                    settings.CurrentTerminatorWIFI     = dm;
                    this.SaveSettings(settings, () => { }, (err) => { });
                },
                    (err) => { });

                this.CreateArduinoTerminators(() => { }, (err) => { });
            }
            else
            {
                // back compatible to add the display name into the data object
                this.BackCompatibilityInitializeExistingTerminatorNames();
            }
        }
Ejemplo n.º 2
0
        private void AssureScriptDefault(IIndexedStorageManager <ScriptDataModel, DefaultFileExtraInfo> data)
        {
            List <IIndexItem <DefaultFileExtraInfo> > index = this.scriptStorage.IndexedItems;

            if (index.Count == 0)
            {
                List <ScriptItem> items = new List <ScriptItem>();
                items.Add(new ScriptItem()
                {
                    Display = "Open door cmd", Command = "OpenDoor"
                });
                items.Add(new ScriptItem()
                {
                    Display = "Close door cmd", Command = "CloseDoor"
                });
                ScriptDataModel dm = new ScriptDataModel(items)
                {
                    Display = "Demo open close commands"
                };
                IIndexItem <DefaultFileExtraInfo> idx = new IndexItem <DefaultFileExtraInfo>(dm.UId)
                {
                    Display = "Demo script",
                };
                data.Store(dm, idx);

                this.GetSettings(
                    (settings) => {
                    settings.CurrentScript         = dm;
                    settings.CurrentScriptBLE      = dm;
                    settings.CurrentScriptBT       = dm;
                    settings.CurrentScriptEthernet = dm;
                    settings.CurrentScriptUSB      = dm;
                    settings.CurrentScriptWIFI     = dm;
                    this.SaveSettings(settings, () => { }, (err) => { });
                },
                    (err) => { });

                this.CreateHC05AtCmds(() => { }, (err) => { });
            }
        }
Ejemplo n.º 3
0
 private void Save <TSToreObject, TExtraInfo>(
     IIndexedStorageManager <TSToreObject, TExtraInfo> manager,
     IIndexItem <TExtraInfo> idx,
     TSToreObject data,
     Action <TSToreObject, IIndexItem <TExtraInfo> > preSaveIndexUpdate,
     Action onSuccess,
     Action <TSToreObject> onChange,
     OnErr onError)
     where TSToreObject : class, IDisplayable where TExtraInfo : class
 {
     WrapErr.ToErrReport(9999, () => {
         ErrReport report;
         WrapErr.ToErrReport(out report, 9999, () => {
             if (idx == null)
             {
                 onError.Invoke(this.GetText(MsgCode.NothingSelected));
             }
             else if (string.IsNullOrWhiteSpace(data.Display))
             {
                 onError.Invoke(this.GetText(MsgCode.EmptyName));
             }
             else
             {
                 // Transfer display name
                 idx.Display = data.Display;
                 // update index
                 preSaveIndexUpdate(data, idx);
                 manager.Store(data, idx);
                 onSuccess.Invoke();
                 onChange.Invoke(data);
             }
         });
         if (report.Code != 0)
         {
             onError.Invoke(this.GetText(MsgCode.SaveFailed));
         }
     });
 }