private static async Task <ResultsPair <LocalAccount.PTUserInfo> > CreateNewPTUserInfo(LocalAccount.PegaUser user) { try { using (PegasunDBContext db = new PegasunDBContext()) { PTUserInfo ptUserInfo = new PTUserInfo { UserId = user.UserId, SubscriptionLevel = (byte)SubscriptionLevel.Free, SubscriptionExpireDate = null }; db.PTUserInfo.Add(ptUserInfo); await db.SaveChangesAsync(); LocalAccount.PTUserInfo localSubscription = ptUserInfo.Adapt <LocalAccount.PTUserInfo>(); return(ResultsPair.Create(ResultsItem.Success("Successfully created a new subscription."), localSubscription)); } } catch (Exception ex) { return(ResultsPair.CreateError <LocalAccount.PTUserInfo>($"Unable to create a new PTUserInfo: {ex.Message}")); } }
private static async Task <LocalAccount.PTUserInfo> GetPTUserInfo(int userId) { try { TypeAdapterConfig.GlobalSettings.Default.NameMatchingStrategy(NameMatchingStrategy.IgnoreCase); using (PegasunDBContext db = new PegasunDBContext()) { PTUserInfo ptUserInfo = db.PTUserInfo.FirstOrDefault(x => x.UserId == userId); if (ptUserInfo == null) { return((await CreateNewPTUserInfo(new LocalAccount.PegaUser { UserId = userId })).Value); } return(ptUserInfo.Adapt <LocalAccount.PTUserInfo>()); } } catch { return(null); } }