Exemplo n.º 1
0
		/// <summary>
		/// Save metaBriefcase, in case there is a crash before the next Suspend.
		/// LOLLO NOTE This is the only method that is not called by SettingsVM, which saves when closing.
		/// </summary>
		/// <param name="fldDsc"></param>
		/// <param name="newFldVal"></param>
		/// <param name="save"></param>
		/// <returns></returns>
		public async Task<FieldValue> AddPossibleValueToFieldDescriptionAsync(FieldDescription fldDsc, string newVaalue)
		{
			if (fldDsc == null || string.IsNullOrEmpty(newVaalue)) return null;

			FieldValue newFldVal = null;
			bool isAdded = false;

			await RunFunctionIfOpenAsyncT(async delegate
			{
				if (fldDsc == null || string.IsNullOrEmpty(newVaalue)) return;

				var recycledFldVal = _rubbishBin.GetPossibleValue2(fldDsc, newVaalue);
				newFldVal = recycledFldVal?.Item2 ?? new FieldValue(newVaalue, true, true);

				await RunInUiThreadAsync(() => isAdded = fldDsc.AddPossibleValue(newFldVal)).ConfigureAwait(false);
				if (isAdded)
				{
					isAdded = await Save2Async().ConfigureAwait(false);
					if (isAdded) _oneDriveReaderWriter.RaiseUpdateOneDriveMetaBriefcaseRequested();
				}
			}).ConfigureAwait(false);

			if (isAdded) return newFldVal; else return null;
		}