public BaseResponse <DeliveryAPIViewModel> UpdateDelivery(DeliveryAPIViewModel deliVM)
        {
            var deliService = this.Service <IDeliveryInfoService>();

            if (deliVM.CustomerId == 0)
            {
                throw ApiException.Get(false, ConstantManager.MES_DELETE_DELIVERY_FAIL, ResultEnum.CustomerIdInTokenWrong, HttpStatusCode.NotFound);
            }
            var deliveryInfoOld = deliService.GetDeliveriesByCustomerId(deliVM.CustomerId.Value);
            var deli            = deliveryInfoOld.Where(p => p.Id == deliVM.Id).FirstOrDefault();

            if (deli == null)
            {
                throw ApiException.Get(false, ConstantManager.MES_DELIVERYID_WRONG, ResultEnum.UpdateFail, HttpStatusCode.NotFound);
            }
            else
            {
                if (deliVM.isDefaultDeliveryInfo == true)
                {
                    foreach (var item in deliveryInfoOld)
                    {
                        if (item.isDefaultDeliveryInfo == true)
                        {
                            item.isDefaultDeliveryInfo = false;
                            deliService.UpdateDelivery(item);
                        }
                    }
                }

                deliVM = deliService.UpdateDelivery(deliVM);
                if (deliVM == null)
                {
                    throw ApiException.Get(false, ConstantManager.MES_UPDATE_FAIL, ResultEnum.UpdateFail, HttpStatusCode.NotFound);
                }
                else
                {
                    return(BaseResponse <DeliveryAPIViewModel> .Get(true, ConstantManager.MES_UPDATE_SUCCESS, deliVM, (int)ResultEnum.Success));
                }
            }
        }
        public BaseResponse <DeliveryAPIViewModel> CreateDelivery(DeliveryAPIViewModel deli)
        {
            var deliService = this.Service <IDeliveryInfoService>();

            if (deli.CustomerId == 0)
            {
                throw ApiException.Get(false, ConstantManager.MES_CREATE_DELIVERY_FAIL, ResultEnum.CustomerIdInTokenWrong, HttpStatusCode.NotFound);
            }
            var deliveryInfoOld = deliService.GetDeliveriesByCustomerId(deli.CustomerId.Value);

            if (deliveryInfoOld.Count == (int)ConstantManager.MAX_DELIVERYINFO)
            {
                throw ApiException.Get(false, ConstantManager.MES_DELIVERY_MAX, ResultEnum.DeliveryMax, HttpStatusCode.BadRequest);
            }
            if (deliveryInfoOld.Count() == 0)
            {
                deli.isDefaultDeliveryInfo = true;
            }
            if (deli.isDefaultDeliveryInfo == true)
            {
                foreach (var item in deliveryInfoOld)
                {
                    if (item.isDefaultDeliveryInfo == true)
                    {
                        item.isDefaultDeliveryInfo = false;
                        UpdateDelivery(item);
                    }
                }
            }
            var deliVM = deliService.CreateDelivery(deli);

            if (deliVM != null)
            {
                return(BaseResponse <DeliveryAPIViewModel> .Get(true, ConstantManager.MES_CREATE_DELIVERY_SUCCESS, deliVM, (int)ResultEnum.Success));
            }
            else
            {
                throw ApiException.Get(false, ConstantManager.MES_CREATE_DELIVERY_FAIL, ResultEnum.CreateFail, HttpStatusCode.NotFound);
            }
        }