public async Task <IActionResult> CreatePurchaseOrder(POHForDetailDto pOHForDetailDto, [FromQuery] bool isForSending)
        {
            if (pOHForDetailDto == null)
            {
                return(BadRequest("Empty Body"));
            }

            var pOHToCreate = _mapper.Map <PurchaseOrderHeader>(pOHForDetailDto);

            if (User.FindAll(ClaimTypes.Role).Any(a => a.Value == "Admin"))
            {
                pOHToCreate.isFromOutlet = pOHForDetailDto.isForOutlet;
            }
            else
            {
                pOHToCreate.isFromOutlet = User.FindAll(ClaimTypes.Role).Any(a => a.Value == "OutletManager") ? true : false;
            }

            pOHToCreate.Status = 0;
            // pOHToCreate.Supplier = await _repository.GetSupplier(pOHForDetailDto.SupplierId);

            await _repository.CreatePurchaseOrder(pOHToCreate);

            if (await _repository.SaveAll())
            {
                //sending mail
                var filterParams = GetFilterParams();

                var pOHFromRepository = await _repository.GetPurchaseOrder(pOHToCreate.Id, filterParams);

                if (isForSending)
                {
                    var htmlBody = GenerateMailHtml(pOHFromRepository.PONumber, User.FindAll(ClaimTypes.Name).FirstOrDefault().ToString(),
                                                    pOHFromRepository.Supplier.Name, pOHFromRepository.DeliveryMethod, pOHFromRepository.OrderDate,
                                                    pOHFromRepository.DeliveryDate, pOHFromRepository.PurchaseOrderDetail);

                    if (await SendMail("*****@*****.**", "*****@*****.**", "Purchase Order From Upland Bake house",
                                       htmlBody, "*****@*****.**", "hell123boy"))
                    {
                        pOHFromRepository.Status = 1;
                    }
                    else
                    {
                        var supFromRepo = pOHFromRepository.Supplier;
                        pOHFromRepository.Status = 1;
                        Notification noti = new Notification
                        {
                            Title   = "Purchase Order No " + pOHFromRepository.PONumber + " Failed To send",
                            Message = "purchase Order No "
                                      + pOHFromRepository.PONumber
                                      + " Failed To send , Supplier Detail are as Follows "
                                      + " Supplier Name  "
                                      + supFromRepo.Name
                                      + " Supplier Contact "
                                      + supFromRepo.ContactNumber
                                      + " Supplier email "
                                      + supFromRepo.Email
                                      + " Supplier Address "
                                      + supFromRepo.Address,
                            DateTime = DateTime.Now,
                            UserId   = pOHFromRepository.UserId,
                            Status   = 0
                        };

                        _repository.Add(noti);
                    }
                }

                if (isForSending == true && pOHFromRepository.Status == 0)
                {
                    return(Ok(new { error = "Failed to send" }));
                }

                await _repository.SaveAll();

                var pOHtoReturn = _mapper.Map <POHForDetailDto>(pOHToCreate);
                return(CreatedAtRoute(nameof(GetPurchaseOrder), new { pOHToCreate.Id }, pOHtoReturn));
            }

            return(BadRequest("Could not create Purchase Order"));
        }