@model Frontend.Models.MembershipViewModel @{ ViewData["Title"] = "My Membership"; var hasActiveSub = Model.CurrentSubscription != null && Model.CurrentSubscription.IsActive; }

Membership

Manage your subscription and library benefits

@if (Model.LoyaltyAccount != null) {
Available Points
@Model.LoyaltyAccount.CurrentBalance.ToString("N0")
}

Active Plan

@if (hasActiveSub) {
Active Status

@Model.CurrentSubscription.MembershipType

Start Date
@Model.CurrentSubscription.StartDate.ToString("MMM dd, yyyy")
Expiry Date
@Model.CurrentSubscription.ExpiryDate.ToString("MMM dd, yyyy")
Pro-tip: Maintain your subscription to earn loyalty points every month!
} else {

No Active Subscription

Get a membership to borrow books and unlock premium library features.

Browse Plans
}
@if (Model.QueuedMemberships.Any()) {

Queued Memberships (@Model.QueuedMemberships.Count)

@foreach (var queued in Model.QueuedMemberships) {
@queued.MembershipType Membership
Activates on @queued.StartDate.ToString("MMM dd, yyyy") • Expires @queued.ExpiryDate.ToString("MMM dd, yyyy")
Queued
Will activate automatically
}
}

Your Benefits

    @{ var currentPlan = Model.AvailableMemberships.FirstOrDefault(m => hasActiveSub && m.Type == Model.CurrentSubscription.MembershipType); }
  • @((currentPlan?.MaxBooks ?? 1))
    Max Books
    Number of books you can borrow simultaneously.
  • @((currentPlan?.BorrowingDays ?? 14))
    Borrowing Days
    Duration you can keep each borrowed book.
  • Digital Access
    Browse and search the full library catalog online.

Want more books?

Upgrade Plan →

Explore Membership Plans

Find the perfect library experience for your reading habits

@foreach (var plan in Model.AvailableMemberships) { var isCurrent = hasActiveSub && plan.Type == Model.CurrentSubscription.MembershipType;
@if (isCurrent) {
Current Plan
}

@plan.Type

@plan.Price.ToString("N0") MMK
/ @(plan.DurationMonths == 1 ? "Month" : $"{plan.DurationMonths} Months")
  • @plan.MaxBooks Books limit
  • @plan.BorrowingDays Days keep
  • @if (!string.IsNullOrEmpty(plan.RewardId) && Model.RewardPointCosts.TryGetValue(plan.RewardId, out var pointCost)) {
  • @pointCost.ToString("N0") Points
  • }
@if (isCurrent) { } else {
Pay Cash @if (!string.IsNullOrEmpty(plan.RewardId) && Model.RewardPointCosts.ContainsKey(plan.RewardId)) { }
}
}