public void SetUser(TestUser user)
{
bool update = false;
// read old data for indexes
TestUser oldVersion = GetUser(user.info.id);
if (oldVersion != null) update = true;
// last login will be last set :)
user.info.LastLogin = System.DateTime.Now.ToShortDateString();
// set user row
table.Set(System.Text.Encoding.UTF8.GetBytes(user.info.id), Utils.JsonSerialize(user.info));
if (update)
{
// set nick index
if (oldVersion.info.Nick == user.info.Nick)
{
// just set
tableByNick.Set(System.Text.Encoding.UTF8.GetBytes(user.info.Nick + "|" + user.info.id.ToString()), Utils.JsonSerialize(user.info));
}
else
{
// delete old
tableByNick.Delete(oldVersion.info.Nick + "|" + user.info.id.ToString());
// set new
tableByNick.Set(System.Text.Encoding.UTF8.GetBytes(user.info.Nick + "|" + user.info.id.ToString()), Utils.JsonSerialize(user.info));
}
// set dateofbirth index
if (oldVersion.info.DateOfBirth == user.info.DateOfBirth)
{
// just set
tableByBirth.Set(System.Text.Encoding.UTF8.GetBytes(user.info.DateOfBirth + "|" + user.info.id.ToString()), Utils.JsonSerialize(user.info));
}
else
{
// delete old
tableByBirth.Delete(oldVersion.info.DateOfBirth + "|" + user.info.id.ToString());
// set new
tableByBirth.Set(System.Text.Encoding.UTF8.GetBytes(user.info.DateOfBirth + "|" + user.info.id.ToString()), Utils.JsonSerialize(user.info));
}
// set lastlogin index
if (oldVersion.info.LastLogin == user.info.LastLogin)
{
// just set
tableByLastLogin.Set(System.Text.Encoding.UTF8.GetBytes(user.info.LastLogin + "|" + user.info.id.ToString()), Utils.JsonSerialize(user.info));
}
else
{
// delete old
tableByLastLogin.Delete(oldVersion.info.LastLogin + "|" + user.info.id.ToString());
// set new
tableByLastLogin.Set(System.Text.Encoding.UTF8.GetBytes(user.info.LastLogin + "|" + user.info.id.ToString()), Utils.JsonSerialize(user.info));
}
}
else
{
tableByNick.Set(System.Text.Encoding.UTF8.GetBytes(user.info.Nick + "|" + user.info.id.ToString()), Utils.JsonSerialize(user.info));
tableByBirth.Set(System.Text.Encoding.UTF8.GetBytes(user.info.DateOfBirth + "|" + user.info.id.ToString()), Utils.JsonSerialize(user.info));
tableByLastLogin.Set(System.Text.Encoding.UTF8.GetBytes(user.info.LastLogin + "|" + user.info.id.ToString()), Utils.JsonSerialize(user.info));
}
}