/// <summary> /// Sync single user to server /// </summary> public async Task <bool> SyncTable <TEntity>(TEntity item) where TEntity : IEntity, IServerEntity { if (item.SyncStatus == (int)SyncStatus.Ok) { return(true); } try { IRestResult <int> response = await SendRequestAsync(item); if (!response.IsSuccess) { return(false); } if (item.SyncStatus == (int)SyncStatus.Deleted) { Repository.Delete <User>(x => x.DbId == item.DbId); return(true); } if (response.Data > 0) { item.ServerId = response.Data; item.SyncStatus = (int)SyncStatus.Ok; Repository.SaveOrUpdate(item); return(true); } return(false); } catch (Exception) { // LOG EXCEPTION return(false); } }
/// <summary> /// Creates a failed result. /// </summary> /// <param name="restResult">The failed REST result.</param> /// <returns>A failed result.</returns> public static TActualResult FromError ( IRestResult restResult ) { if (restResult.DiscordError is not null) { return(FromError(restResult.ErrorReason, restResult.DiscordError)); } if (restResult.HttpError.HasValue) { return(FromError(restResult.ErrorReason, restResult.HttpError.Value)); } return(FromError((IResult)restResult)); }