public override async Task Init(object paData) { var files = paData as DragAndDropEventArgs; if (paData is TrainedNetModel netModel) { TrainedNetModel = netModel; return; } if (files == null) { return; } const string message = "Loading of file '{0}' failed. Make sure that it's not corrupted."; if (files.FilesPaths.ContainsKey(NetBuilderViewModel.DirtyNetModel)) { IsWorking = true; await files.FilesPaths[NetBuilderViewModel.DirtyNetModel] .TryOrDefault <string, Exception>(File.ReadAllText, (ex, s) => { NotifyUser.NotifyUserByMessage(string.Format(message, s)); }).Where(json => string.IsNullOrEmpty(json) == false) .Select(ParseTrainedModel).ForEach(model => TrainedNetModel = model).ExecuteQueryAsync(); IsWorking = false; } }
public override void Dispose() { OnDisposing(); TrainedNetModel = null; _networkToTest?.Dispose(); _networkToTest = null; }
public override async void Execute(object parameter) { _isSaving = true; var task = Task.Run(() => { try { var model = ViewModel.GetTrainedModel(); if (model == null) { return; } var trainedModel = new TrainedNetModel((MementoConfigurationModel)model.Clone()) { ModelName = ViewModel.Model.ModelName, DataSetMetaData = ViewModel.DataSetModel.MetaData }; FilePickerHelper.SaveFile(trainedModel.ToJson(), NetBuilderViewModel.DirtyNetModel); } catch (Exception e) { NotifyUser.NotifyUserByNotification( new Notification() { Title = "Ooooops!", Message = $"Something happend during generation of your code.", Exception = e }); } finally { _isSaving = false; App.RunInUiThread(OnCanExecuteChanged); } }); await task; task.Dispose(); }