public async Task <ActionResult> ExchangeListing(ExchangeListingModel model) { if (!ModelState.IsValid) { return(View("ExchangeListingModal", model)); } var result = await PaytopiaWriter.UpdateExchangeListing(User.Identity.GetUserId(), model); if (!ModelState.IsWriterResultValid(result)) { return(View("ExchangeListingModal", model)); } return(CloseModal(result)); }
public async Task <ActionResult> TwoFactor(TwoFactorModel model) { if (!ModelState.IsValid) { return(View("TwoFactorModal", model)); } ModelState.Clear(); var result = await PaytopiaWriter.UpdateTwoFactor(User.Identity.GetUserId(), model); if (!ModelState.IsWriterResultValid(result)) { return(View("TwoFactorModal", model)); } return(CloseModal(result)); }
public async Task <ActionResult> Shares(SharesModel model) { if (!ClaimsUser.IsShareholder && !ModelState.IsValid) { return(View("SharesModal", model)); } ModelState.Clear(); var result = await PaytopiaWriter.UpdateShares(User.Identity.GetUserId(), model); if (!ModelState.IsWriterResultValid(result)) { return(View("SharesModal", model)); } return(CloseModal(result)); }
public async Task <ActionResult> FeaturedPoolSlot(FeaturedSlotModel model) { if (!ModelState.IsValid) { model.Items = await PaytopiaReader.GetFeaturedPoolSlotItems(); return(View("FeaturedPoolSlotModal", model)); } var result = await PaytopiaWriter.UpdateFeaturedPoolSlot(User.Identity.GetUserId(), model); if (!ModelState.IsWriterResultValid(result)) { model.Items = await PaytopiaReader.GetFeaturedPoolSlotItems(); return(View("FeaturedPoolSlotModal", model)); } return(CloseModal(result)); }
public async Task <ActionResult> PoolListing(PoolListingModel model) { if (!model.IsListed && !ModelState.IsValid) { model.Items = await PaytopiaReader.GetPoolListingItems(); return(View("PoolListingModal", model)); } ModelState.Clear(); var result = await PaytopiaWriter.UpdatePoolListing(User.Identity.GetUserId(), model); if (!ModelState.IsWriterResultValid(result)) { model.Items = await PaytopiaReader.GetPoolListingItems(); return(View("PoolListingModal", model)); } return(CloseModal(result)); }
public async Task <List <FeaturedSlotItemModel> > GetFeaturedPoolSlotItems() { using (var context = DataContextFactory.CreateReadOnlyContext()) { var slotDetail = await context.PaytopiaPayments .AsNoTracking() .Where(x => x.PaytopiaItem.Type == PaytopiaItemType.FeaturedPool && x.Ends > DateTime.UtcNow) .GroupBy(x => x.ReferenceId) .ToListNoLockAsync().ConfigureAwait(false); var pools = await PoolReader.GetPools().ConfigureAwait(false); var results = new List <FeaturedSlotItemModel>(); foreach (var pool in pools.DistinctBy(x => x.Symbol)) { var isActive = false; var slotSummary = string.Empty; var existingSlotDetail = slotDetail.FirstOrDefault(x => x.Key == pool.Id); if (existingSlotDetail != null && existingSlotDetail.Any()) { isActive = existingSlotDetail.Any(x => x.Begins < DateTime.UtcNow.Date && DateTime.UtcNow.Date < x.Ends); slotSummary = string.Join(",", existingSlotDetail.Select(x => $"Week: {x.Begins.WeekOfYear()} ({x.Begins.ToString("dd/MM/yyyy")} - {x.Ends.ToString("dd/MM/yyyy")})")); } var nextFreeSlot = PaytopiaWriter.GetNextFreeSlot(pool.Id, slotDetail.FirstOrDefault(x => x.Key == pool.Id)); results.Add(new FeaturedSlotItemModel { Id = pool.Id, Name = pool.Symbol, IsFeatured = isActive, NextSlotWeek = nextFreeSlot.Begin.WeekOfYear(), NextSlotBegin = nextFreeSlot.Begin, NextSlotEnd = nextFreeSlot.End, SlotSummary = slotSummary }); } return(results); } }