public ApiResult <PagedData <SubscriptionEvent> > Index([FromBody] SubscriptionParam m) { var profile = this.GetUserProfile(); Expression <Func <SubscriptionEvent, bool> > condition = x => x.EventStatus > -1 && x.Tenant.Id == profile.Tenant; if (!string.IsNullOrEmpty(m.Name)) { condition = condition.And(x => x.EventName.Contains(m.Name)); } return(new ApiResult <PagedData <SubscriptionEvent> >(ApiCode.Success, "OK", new PagedData <SubscriptionEvent> { total = _context.SubscriptionEvents.Count(condition), rows = _context.SubscriptionEvents.OrderByDescending(c => c.CreateDateTime).Where(condition).Skip((m.offset) * m.limit).Take(m.limit).ToList() })); }
public async Task<ActionResult<Club>> Post([FromRoute]int id_club, [FromBody]SubscriptionParam subscriptionParam) { var claimsIdentity = this.User.Identity as ClaimsIdentity; var clubId = Convert.ToInt32(claimsIdentity.FindFirst(ClaimTypes.Name)?.Value); if (id_club != clubId) { return BadRequest("You are not allowed to access this club with id = " + id_club); } var club = await _context.Club.FirstOrDefaultAsync(c => c.Id == clubId); if (club == null) { return BadRequest("No such club with attach JWT"); } if (clubId != subscriptionParam.ClubId) { return BadRequest("Subscription's and current JWT'S ClubId do not match"); } DateTime now = DateTime.UtcNow; DateTime expireAt = now; float payment = 0F; var month = subscriptionParam.Month; if (month == 1) { expireAt = now.AddMonths(1); payment = 9.9F; } if (month == 12) { payment = 90F; expireAt = now.AddYears(1); } var subscription = new Subscription { ClubId = subscriptionParam.ClubId, Payment = payment, ExpireAt = expireAt }; _context.Subscription.Add(subscription); await _context.SaveChangesAsync(); return Ok(subscription); }