public async Task <IActionResult> CancelTransfer(int masterId, [FromBody] SaveTransferFlowResource saveTransferResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            else if (await _repository.CheckOrder(saveTransferResource.MasterId, saveTransferResource.SequenceNumber))
            {
                return(BadRequest("Siz artiq emeliyyati yerine yetirmisiniz!"));
            }
            var flowLine = _mapper.Map <SaveTransferFlowResource, OsStFlowlines>(saveTransferResource);

            flowLine.MasterId     = masterId;
            flowLine.ExecutedDate = DateTime.Now;
            _repository.AddLine(flowLine);
            //await _unitOfWork.CompleteAsync();


            var flowMaster = await _repository.GetFlowMasterForTransfer(masterId, false);

            flowMaster.CompletedDate = DateTime.Now;
            flowMaster.StatusId      = 3;//canceled

            await _unitOfWork.CompleteAsync();


            return(Ok(saveTransferResource));
        }
        public async Task <IActionResult> CreateTransferFlow([FromBody] SaveTransferFlowResource saveTransferResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            else if (await _repository.CheckOrder(saveTransferResource.MasterId, saveTransferResource.SequenceNumber))
            {
                return(BadRequest("Siz emeliyyati artiq yerine yetirmisiniz!"));
            }

            var flowMaster = _mapper.Map <SaveTransferFlowResource, OsStFlowmaster>(saveTransferResource);

            flowMaster.CreatedDate = DateTime.Now;
            flowMaster.StatusId    = 5;//In Progress

            var item = await _repository.UpdateItemForFlow(saveTransferResource.ItemCode, saveTransferResource.CompanyId);

            if (item == null)
            {
                return(BadRequest());
            }
            flowMaster.CategoryId    = item.CategoryId;
            flowMaster.SubCategoryId = item.SubCategoryId;

            _repository.AddMaster(flowMaster);
            await _unitOfWork.CompleteAsync();

            var flowLine = _mapper.Map <SaveTransferFlowResource, OsStFlowlines>(saveTransferResource);

            flowLine.MasterId     = flowMaster.Id;
            flowLine.ExecutedDate = DateTime.Now;

            _repository.AddLine(flowLine);
            await _unitOfWork.CompleteAsync();


            if (saveTransferResource.FlowTypeId == 2 && saveTransferResource.SequenceNumber == 1)// b.m transfer kecenden sonra t.m mail getmesi
            {
                MailService.MailSender(_appSettings.CommercialMarketingMail, "https://onsale.veyseloglu.az:4443/transfer/" + flowLine.MasterId, flowLine.MasterId.ToString());
            }
            else if (saveTransferResource.FlowTypeId == 3 && saveTransferResource.SequenceNumber == 1)//b.m qaytarma kecibse t mail getmesi
            {
                MailService.MailSender(_appSettings.OutfitMail, "https://onsale.veyseloglu.az:4443/transfer/" + flowLine.MasterId, flowLine.MasterId.ToString());
            }

            return(Ok(saveTransferResource));
        }
        public async Task <IActionResult> UpdateTransferFlow(int masterId, [FromBody] SaveTransferFlowResource saveTransferResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            else if (await _repository.CheckOrder(saveTransferResource.MasterId, saveTransferResource.SequenceNumber))
            {
                return(BadRequest("Bu əməliyyat artıq icra edilib!"));
            }

            var flowLine = _mapper.Map <SaveTransferFlowResource, OsStFlowlines>(saveTransferResource);

            flowLine.MasterId     = masterId;
            flowLine.ExecutedDate = DateTime.Now;
            _repository.AddLine(flowLine);
            await _unitOfWork.CompleteAsync();


            if (flowLine.SequenceNumber == 4)
            {
                var flowMaster = await _repository.GetFlowMasterForTransfer(masterId, false);

                // flowMaster.FinalItemCode = saveOrderResource.ItemCode;
                flowMaster.StatusId      = 2;//compleated
                flowMaster.CompletedDate = DateTime.Now;
                var items = await _repository.UpdateItemForFlow(saveTransferResource.ItemCode, saveTransferResource.CompanyId);

                if (saveTransferResource.FlowTypeId == 2)
                {
                    items.AssignedTo = saveTransferResource.CustomerCode;
                    items.StatusId   = 6;//assigned
                }
                else if (saveTransferResource.FlowTypeId == 3)
                {
                    if (saveTransferResource.ReasonId == 9) //temire gonderilir
                    {
                        items.StatusId = 7;                 //temirde
                    }
                    else
                    {
                        items.StatusId   = 4;//bos
                        items.AssignedTo = null;
                    }
                }
                await _unitOfWork.CompleteAsync();
            }


            if (saveTransferResource.FlowTypeId == 2 && saveTransferResource.SequenceNumber == 2)// mark. transfer
            {
                MailService.MailSender(_appSettings.MarketingMail, "https://onsale.veyseloglu.az:4443/transfer/" + masterId, masterId.ToString());
            }
            else if (saveTransferResource.SequenceNumber == 3 && saveTransferResource.FlowTypeId == 2)//techizat transfer
            {
                MailService.MailSender(_appSettings.OutfitMail, "https://onsale.veyseloglu.az:4443/transfer/" + masterId, masterId.ToString());
            }


            return(Ok(saveTransferResource));
        }