Esempio n. 1
0
        //[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;
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }