private async Task <long> SaveReturnRequest(EditReturnRequest model)
        {
            if (model.ReturnRequestId == null)
            {
                var mCreateReturnRequestItems = new List <MFulfillment_CreateReturnRequestItem>();
                foreach (var item in model.ReturnRequestItems)
                {
                    mCreateReturnRequestItems.Add(new MFulfillment_CreateReturnRequestItem()
                    {
                        FulfillableItemId = item.FulfillableItemId,
                        Quantity          = item.Quantity
                    });
                }

                var mCreateReturnRequest = new MFulfillment_CreateReturnRequest()
                {
                    ReturnRequestType        = Enum.Parse <MFulfillment_ReturnRequestTypes>(model.ReturnRequestType),
                    ReturnRequestReasonCode  = model.ReturnRequestReason,
                    CreateReturnRequestItems = mCreateReturnRequestItems
                };

                var aCreateReturnRequest = new AReturn_CreateReturnRequest()
                {
                    MCreateReturnRequest = mCreateReturnRequest
                };

                var returnRequestId = await ReturnAdminService.CreateReturnRequestAsync(aCreateReturnRequest);

                return(returnRequestId);
            }
            else
            {
                var mUpdateReturnRequestItems = new List <MFulfillment_UpdateReturnRequestItem>();
                foreach (var item in model.ReturnRequestItems)
                {
                    mUpdateReturnRequestItems.Add(new MFulfillment_UpdateReturnRequestItem()
                    {
                        ReturnRequestItemId = item.ReturnRequestItemId.Value,
                        Quantity            = item.Quantity
                    });
                }

                var mUpdateReturnRequest = new MFulfillment_UpdateReturnRequest()
                {
                    ReturnRequestId          = model.ReturnRequestId.Value,
                    ReturnRequestType        = Enum.Parse <MFulfillment_ReturnRequestTypes>(model.ReturnRequestType),
                    ReturnRequestReasonCode  = model.ReturnRequestReason,
                    UpdateReturnRequestItems = mUpdateReturnRequestItems
                };

                var aUpdateReturnRequest = new AReturn_UpdateReturnRequest()
                {
                    MUpdateReturnRequest = mUpdateReturnRequest
                };

                await ReturnAdminService.UpdateReturnRequestAsync(aUpdateReturnRequest);

                return(model.ReturnRequestId.Value);
            }
        }
        public async Task <long> CreateReturnRequestAsync(AReturn_CreateReturnRequest returnRequest)
        {
            using var log = BeginFunction(nameof(ReturnAdminService), nameof(CreateReturnRequestAsync), returnRequest);
            try
            {
                await Assert(SecurityPolicy.IsPrivileged).ConfigureAwait(false);

                var returnRequestId = await FulfillmentMicroService.CreateReturnRequestAsync(returnRequest.MCreateReturnRequest).ConfigureAwait(false);

                var result = returnRequestId;

                log.Result(result);

                return(result);
            }
            catch (Exception ex)
            {
                log.Exception(ex);
                throw;
            }
        }