public async Task UpdateEntry(string entryId, string fieldName, object fieldValue, bool isProtected) { var pwEntry = _pwDatabase.RootGroup.FindEntry(BuildIdFromString(entryId), true); switch (fieldName) { case EntryFieldName.HasExpirationDate: pwEntry.Expires = (bool)fieldValue; break; case EntryFieldName.ExpirationDate: pwEntry.ExpiryTime = (DateTime)fieldValue; break; case EntryFieldName.Icon: pwEntry.IconId = IconMapper.MapIconToPwIcon((Icon)fieldValue); break; case EntryFieldName.BackgroundColor: pwEntry.BackgroundColor = (Color)fieldValue; break; case EntryFieldName.ForegroundColor: pwEntry.ForegroundColor = (Color)fieldValue; break; default: var stringValue = fieldValue == null ? string.Empty: fieldValue.ToString(); var unprotectedFieldValue = isProtected ? await _cryptography.UnProtect(stringValue) : stringValue; pwEntry.Strings.Set(fieldName, new ProtectedString(isProtected, unprotectedFieldValue)); break; } }
public void UpdateGroup(GroupEntity group) { var pwGroup = _pwDatabase.RootGroup.FindGroup(BuildIdFromString(group.Id), true); pwGroup.Name = group.Name; pwGroup.IconId = IconMapper.MapIconToPwIcon(group.Icon); pwGroup.Touch(true); }