public CancelOrderFormResponse CancelOrder(CancelOrderForm cancelOrderForm)
        {
            CancelOrderFormResponse cancelOrderFormResponse = new CancelOrderFormResponse()
            {
                StatusCode = 200
            };

            try
            {
                if (cancelOrderForm == null)
                {
                    cancelOrderFormResponse.StatusCode = 400;
                    cancelOrderFormResponse.ErrorList  = new List <CancelOrderFormValidationResponse>()
                    {
                        new CancelOrderFormValidationResponse()
                        {
                            Code      = 1001,
                            FieldName = nameof(cancelOrderForm),
                            Message   = "Invalid Request Data"
                        }
                    };
                    return(cancelOrderFormResponse);
                }
                if (cancelOrderForm.OrderId <= 0)
                {
                    cancelOrderFormResponse.StatusCode = 400;
                    cancelOrderFormResponse.ErrorList  = new List <CancelOrderFormValidationResponse>()
                    {
                        new CancelOrderFormValidationResponse()
                        {
                            Code      = 1001,
                            FieldName = nameof(cancelOrderForm.OrderId),
                            Message   = "Invalid OrderId"
                        }
                    };
                    return(cancelOrderFormResponse);
                }
                if (string.IsNullOrWhiteSpace(cancelOrderForm.OrderCancelReason))
                {
                    cancelOrderFormResponse.StatusCode = 400;
                    cancelOrderFormResponse.ErrorList  = new List <CancelOrderFormValidationResponse>()
                    {
                        new CancelOrderFormValidationResponse()
                        {
                            Code      = 1001,
                            FieldName = nameof(cancelOrderForm.OrderCancelReason),
                            Message   = "OrderCancelReason Required"
                        }
                    };
                    return(cancelOrderFormResponse);
                }
                bool isOrderExist = _orderLayer.IsOrderExist(cancelOrderForm.OrderId);
                if (!isOrderExist)
                {
                    cancelOrderFormResponse.StatusCode = 400;
                    cancelOrderFormResponse.ErrorList  = new List <CancelOrderFormValidationResponse>()
                    {
                        new CancelOrderFormValidationResponse()
                        {
                            Code      = 1001,
                            FieldName = nameof(cancelOrderForm.OrderId),
                            Message   = "Order Not Found."
                        }
                    };
                    return(cancelOrderFormResponse);
                }
                bool isOrderCanceled = _orderLayer.CancelOrder(cancelOrderForm);
                if (isOrderCanceled)
                {
                    cancelOrderFormResponse.StatusCode = 200;
                    cancelOrderFormResponse.Message    = "Order Canceled Successfully";
                    return(cancelOrderFormResponse);
                }
                else
                {
                    cancelOrderFormResponse.StatusCode = 400;
                    cancelOrderFormResponse.ErrorList  = new List <CancelOrderFormValidationResponse>()
                    {
                        new CancelOrderFormValidationResponse()
                        {
                            Code    = 1001,
                            Message = "Error While Cancle Order."
                        }
                    };
                    return(cancelOrderFormResponse);
                }
            }
            catch (Exception ex)
            {
                cancelOrderFormResponse.StatusCode = 400;
                cancelOrderFormResponse.ErrorList  = new List <CancelOrderFormValidationResponse>()
                {
                    new CancelOrderFormValidationResponse()
                    {
                        Code    = 1001,
                        Message = "Error While Cancel Order." + ex.Message
                    }
                };
            }
            return(cancelOrderFormResponse);
        }
Example #2
0
        public ActionResult <CancelOrderFormResponse> CancelOrder([FromBody] CancelOrderForm cancelOrderForm)
        {
            CancelOrderFormResponse cancelOrderFormResponse = _orderBiz.CancelOrder(cancelOrderForm);

            return(Ok(cancelOrderFormResponse));
        }