public async Task<bool> ValidateCoupones(string userId, FullOrderModel order) { CouponesProvider couponesProvider = new CouponesProvider(); foreach (CouponeModel coupone in order.Coupones) { if (!await couponesProvider.CouponeExists(coupone.Name, coupone.Value.Value, coupone.ValueType.Value, coupone.FreeShipping.Value)) { return false; } if (!await this.CanUseCoupon(coupone, userId, order)) { } } return true; }
public async Task<IHttpActionResult> GetDefaultCoupons(ClientOrderModel order) { if (!this.ModelState.IsValid) { Logger.Current.LogWarning("Orders.GetDefaultCoupons: invalid model state"); return this.BadRequest(this.ModelState); } List<CouponeModel> defaultCoupons = new List<CouponeModel>(); IIdentity currentIdentity = this.User.Identity; bool isAuthenticated = currentIdentity.IsAuthenticated; bool isLoyalCustomer = false; if (isAuthenticated) { string currentUserId = currentIdentity.GetUserId(); using (ApplicationUserManager userManager = Startup.UserManagerFactory()) { isLoyalCustomer = await userManager.IsInRoleAsync(currentUserId, "LoyalCustomer"); } } //Volume discounts can be added here CouponesProvider couponesProvider = new CouponesProvider(); IEnumerable<CouponeModel> coupones = await couponesProvider.GetCoupons(isAuthenticated, isLoyalCustomer); return this.Ok(coupones); }