コード例 #1
0
        //[Route("update")]
        //[HttpPut]
        public HttpResponseMessage UpdateVoucher(VoucherAPIViewModel model)
        {
            var updateVoucher = model.ToEntity();
            var pDomain       = new PromotionDomain();
            var oldVoucher    = pDomain.GetVoucher(model.VoucherID);

            if (oldVoucher == null)
            {
                var res = new BaseResponse <string>()
                {
                    Message    = "Not found",
                    Success    = false,
                    ResultCode = (int)DataService.Models.ResultEnum.VoucherNotFound
                };
                return(new HttpResponseMessage()
                {
                    Content = new JsonContent(res),
                    StatusCode = HttpStatusCode.NotFound
                });
            }
            ;

            try
            {
                updateVoucher = pDomain.Update(updateVoucher);
                var res = new BaseResponse <string>()
                {
                    Data       = "Success",
                    Message    = "Success",
                    Success    = true,
                    ResultCode = (int)DataService.Models.ResultEnum.Success
                };
                return(new HttpResponseMessage()
                {
                    Content = new JsonContent(res),
                    StatusCode = HttpStatusCode.OK
                });
            }
            catch (Exception e)
            {
                var res = new BaseResponse <string>()
                {
                    Error      = e.Message,
                    Message    = e.Message,
                    ResultCode = (int)DataService.Models.ResultEnum.InternalError,
                    Success    = false
                };
                return(new HttpResponseMessage()
                {
                    Content = new JsonContent(res),
                    StatusCode = HttpStatusCode.InternalServerError
                });
            }
        }
        //[Route("change-state/{promotionId}/{active}")]
        //[HttpPut]
        public HttpResponseMessage ChangePromotionActiveState(int promotionId, bool active)
        {
            BaseResponse <string> res;
            var pDomain   = new PromotionDomain();
            var promotion = pDomain.GetPromotion(promotionId);

            if (promotion != null)
            {
                try
                {
                    pDomain.ChangePromotionActiveState(promotion, active);
                    res = new BaseResponse <string>()
                    {
                        Data       = "Success",
                        Message    = "Success",
                        ResultCode = (int)ResultEnum.Success,
                        Success    = true
                    };
                    return(new HttpResponseMessage()
                    {
                        Content = new JsonContent(res),
                        StatusCode = HttpStatusCode.OK
                    });
                }
                catch (Exception e)
                {
                    res = new BaseResponse <string>()
                    {
                        Error      = e.Message,
                        Message    = e.Message,
                        ResultCode = (int)ResultEnum.InternalError,
                        Success    = false
                    };
                    return(new HttpResponseMessage()
                    {
                        Content = new JsonContent(res),
                        StatusCode = HttpStatusCode.InternalServerError
                    });
                }
            }
            res = new BaseResponse <string>()
            {
                Error      = "Cannot found promotion",
                Message    = "Cannot found promotion",
                ResultCode = (int)ResultEnum.VoucherNotFound,
                Success    = false
            };
            return(new HttpResponseMessage()
            {
                Content = new JsonContent(res),
                StatusCode = HttpStatusCode.NotFound
            });
        }
        //[Route("{PromotionID?}")]
        //[HttpGet]
        public HttpResponseMessage GetPromotion(PromotionQueryRequest <dynamic> request)
        {
            var response       = new BaseResponse <dynamic>();
            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.Membership = member;
            var promotion = pDomain.GetPromotion(request).ToList();

            if (promotion.Count == 0)
            {
                var res = BaseResponse <dynamic> .Get(false, "Không tìm thấy khuyến mãi nào", null, ResultEnum.PromotionNotFound);

                resp.Content    = new JsonContent(res);
                resp.StatusCode = HttpStatusCode.NotFound;
                return(resp);
            }
            try
            {
                response = BaseResponse <dynamic> .Get(false, "Thành công", null, ResultEnum.Success);

                if (promotion.Count == 1)
                {
                    response.Data = promotion.FirstOrDefault();
                }
                else
                {
                    response.Data = promotion;
                }
            }
            catch (ApiException e)
            {
                resp.StatusCode = e.StatusCode;
                response        = BaseResponse <dynamic> .Get(e.Success, e.ErrorMessage, null, e.ErrorStatus);
            }
            catch (Exception e)
            {
                response = BaseResponse <dynamic> .Get(false, e.Message, null, ResultEnum.InternalError);

                resp.StatusCode = HttpStatusCode.InternalServerError;
            }
            resp.Content = new JsonContent(response);
            return(resp);
        }
コード例 #4
0
        public HttpResponseMessage CheckVoucher(CheckVoucherViewModel request)
        {
            //Logger.Log("Store " + model.terminalId);
            //Logger.Log("|CheckVoucherCode| begin method");
            var response       = new BaseResponse <dynamic>();
            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 oDomain        = new OrderDomain();

            var resp = new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.OK
            };

            try
            {
                DateTime time    = DataService.Models.Utils.GetCurrentDateTime();
                var      pDomain = new PromotionDomain();
                var      orderVM = new OrderAPIViewModel();
                var      voucher = pDomain.GetVoucher(request.VoucherCode);
                var      mbs     = customer.MembershipVM;

                orderVM.OrderDetails = request.Data;
                orderVM.StoreID      = request.StoreId;
                AddInfo(orderVM, request);
                oDomain.CalculateOrderPrice(orderVM, time);

                //temp: each voucher has only 1 detail now
                var applyResult = pDomain.IsVoucherValidFor(voucher, orderVM, mbs);
                orderVM = pDomain.ApplyPromotionToOrder(orderVM, applyResult, mbs);

                response = BaseResponse <dynamic> .Get(true, "Thành công", orderVM, ResultEnum.Success);
            }
            catch (ApiException e)
            {
                resp.StatusCode = e.StatusCode;
                response        = BaseResponse <dynamic> .Get(e.Success, e.ErrorMessage, null, e.ErrorStatus);
            }
            catch (Exception e)
            {
                resp.StatusCode = HttpStatusCode.InternalServerError;
                response        = BaseResponse <dynamic> .Get(false, e.ToString(), null, ResultEnum.InternalError);
            }

            resp.Content = new JsonContent(response);
            return(resp);
        }
コード例 #5
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);
        }
コード例 #6
0
        //[Route("")]
        //[HttpPost]
        public HttpResponseMessage CreateVoucher(VoucherAPIViewModel model)
        {
            var newVoucher = model.ToEntity();
            var pDomain    = new PromotionDomain();

            try
            {
                newVoucher = pDomain.Create(newVoucher);
                var res = new BaseResponse <string>()
                {
                    Data       = "Success",
                    Message    = "Success",
                    Success    = true,
                    ResultCode = (int)DataService.Models.ResultEnum.Success
                };
                return(new HttpResponseMessage()
                {
                    Content = new JsonContent(res),
                    StatusCode = HttpStatusCode.OK
                });
            }
            catch (Exception e)
            {
                var res = new BaseResponse <string>()
                {
                    Error      = e.Message,
                    Message    = e.Message,
                    ResultCode = (int)DataService.Models.ResultEnum.InternalError,
                    Success    = false
                };
                return(new HttpResponseMessage()
                {
                    Content = new JsonContent(res),
                    StatusCode = HttpStatusCode.InternalServerError
                });
            }
        }