//[Route("use")] //[HttpPut] //public HttpResponseMessage UseVoucher(PromotionRequestViewModel model) //{ // //Logger.Log("Store " + model.terminalId + " - " + (model.Order == null ? "null order" : model.Order.OrderCode + "-" + model.Order.OrderId)); // //Logger.Log("|UseVoucherCode| begin method"); // try // { // var pDomain = new PromotionDomain(); // var voucher = pDomain.GetVoucher(model.VoucherCode); // var available = pDomain.IsVoucherAvailable(voucher); // if (available.Success) // { // var useResult = pDomain.UseVoucher(voucher, model); // //Logger.Log("|UserVoucherCode| result: " + useResult.Message + "-" + useResult.Error, true); // return new HttpResponseMessage() // { // Content = new JsonContent(useResult), // StatusCode = HttpStatusCode.OK // }; // } // else // { // return new HttpResponseMessage() // { // Content = new JsonContent(available), // StatusCode = HttpStatusCode.OK // }; // } // } // catch (Exception e) // { // //Logger.Log("|UserVoucherCode| error:\r\n" + JsonConvert.SerializeObject(e), true); // var res = new BaseResponse<string> // { // Success = false, // Message = "Có lỗi xảy ra", // Error = "", // ResultCode = (int)DataService.Models.ResultEnum.InternalError // }; // return new HttpResponseMessage() // { // Content = new JsonContent(res), // StatusCode = HttpStatusCode.InternalServerError // }; // } //} #endregion #region Mapping models private void AddInfo(OrderAPIViewModel src, VoucherQueryRequest <List <OrderDetailAPIViewModel> > request) { if (!request.BrandId.HasValue) { throw ApiException.Get(false, "Thiếu thông tin hãng", ResultEnum.BrandIdNotFound, HttpStatusCode.BadRequest); } var prdDomain = new ProductDomain(); src.BrandId = request.BrandId.Value; foreach (var oD in request.Data) { oD.ProductCode = prdDomain.GetProductById(oD.ProductID).Code; } }
public HttpResponseMessage GetVoucher([FromUri] VoucherQueryRequest <dynamic> request) { var response = new BaseResponse <List <VoucherAPIViewModel> >(); var claimPrincipal = (ClaimsPrincipal)RequestContext.Principal; var customerId = claimPrincipal.Claims.Where(c => c.Type == "CustomerId").Select(c => c.Value).SingleOrDefault(); var cDomain = new CustomerDomain(); var id = Int32.Parse(customerId); var customer = cDomain.GetCustomerById(id); var resp = new HttpResponseMessage() { StatusCode = HttpStatusCode.OK }; var pDomain = new PromotionDomain(); Membership member = customer.MembershipVM.ToEntity(); request.MembershipVM = member; request.BrandId = customer.BrandId; //if (voucher.Count == 0) //{ // var res = BaseResponse<dynamic>.Get(false, "Không tìm thấy voucher nào", null, ResultEnum.VoucherNotFound); // resp.Content = new JsonContent(res); // resp.StatusCode = HttpStatusCode.NotFound; // return resp; //} try { var voucher = pDomain.GetVoucher(request).ToList(); response = BaseResponse <List <VoucherAPIViewModel> > .Get(false, "Thành công", voucher, ResultEnum.Success); } catch (ApiException e) { resp.StatusCode = e.StatusCode; response = BaseResponse <List <VoucherAPIViewModel> > .Get(e.Success, e.ErrorMessage, null, e.ErrorStatus); } catch (Exception e) { response = BaseResponse <List <VoucherAPIViewModel> > .Get(false, e.Message, null, ResultEnum.InternalError); resp.StatusCode = HttpStatusCode.InternalServerError; } resp.Content = new JsonContent(response); return(resp); }
public List <VoucherAPIViewModel> GetVoucher(VoucherQueryRequest <dynamic> request) { var voucher = GetVoucher().Where(v => (1 == 1 || v.Promotion.BrandId == request.BrandId) && (request.VoucherId == null || v.VoucherID == request.VoucherId) && (request.VoucherCode == null || v.VoucherCode == request.VoucherCode) && (request.PromotionId == null || v.PromotionID == request.PromotionId) && (request.PromotionCode == null || v.Promotion.PromotionCode == request.PromotionCode)); //if (request.VoucherId != null) // voucher = voucher.Where(v => v.VoucherID == request.VoucherId); //if (request.VoucherCode != null) // voucher = voucher.Where(v => v.VoucherCode == request.VoucherCode); //if (request.PromotionId != null) // voucher = voucher.Where(v => v.PromotionID == request.PromotionId); //if (request.PromotionCode != null) // voucher = voucher.Where(v => v.Promotion.PromotionCode == request.PromotionCode); if (request.AvailableOnly) { if (request.MembershipVM == null) { throw ApiException.Get(false, "Thiếu thông tin thành viên", ResultEnum.MembershipNotFound, HttpStatusCode.BadRequest); } voucher = voucher.Where(v => !v.isUsed.Value && v.UsedQuantity < v.Quantity && v.MembershipCardId == request.MembershipVM.Id); } if (request.UsedOnly) { if (request.MembershipVM == null) { throw ApiException.Get(false, "Thiếu thông tin thành viên", ResultEnum.MembershipNotFound, HttpStatusCode.BadRequest); } voucher = voucher.Where(v => v.isUsed.Value && v.UsedQuantity >= v.Quantity && v.MembershipCardId == request.MembershipVM.Id); } var voucherVM = voucher.AsQueryable().ProjectTo <VoucherAPIViewModel>(this.AutoMapperConfig).ToList(); if (voucherVM.Count < 0) { throw ApiException.Get(false, "Không tìm thấy voucher nào", ResultEnum.VoucherNotFound, HttpStatusCode.NotFound); } return(voucherVM); }