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> UpdateOrderFlow(int masterId, [FromBody] SaveOrderFlowResource saveOrderResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            else if (await _repository.CheckOrder(saveOrderResource.MasterId, saveOrderResource.SequenceNumber))
            {
                return(BadRequest("Bu əməliyyat artıq icra edilib!"));
            }

            var flowLine = _mapper.Map <SaveOrderFlowResource, OsStFlowlines>(saveOrderResource);

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

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

            flowMaster.SubCategoryId = saveOrderResource.SubCategoryId;

            if (flowLine.SequenceNumber == 4)
            {
                flowMaster.FinalItemCode = saveOrderResource.ItemCode;
                flowMaster.StatusId      = 2;//compleated
                flowMaster.CompletedDate = DateTime.Now;

                var items = await _repository.UpdateItemForFlow(saveOrderResource.ItemCode, saveOrderResource.CompanyId);

                items.AssignedTo = saveOrderResource.CustomerCode;
                items.StatusId   = 6;//assigned
            }
            await _unitOfWork.CompleteAsync();

            if (saveOrderResource.SequenceNumber == 2)//t.m tesdiqleyibse
            {
                MailService.MailSender(_appSettings.MarketingMail, "https://onsale.veyseloglu.az:4443/order/" + masterId, masterId.ToString());
            }
            else if (saveOrderResource.SequenceNumber == 3)// m tesdiqleyibse
            {
                MailService.MailSender(_appSettings.OutfitMail, "https://onsale.veyseloglu.az:4443/order/" + flowLine.MasterId, flowLine.MasterId.ToString());
            }

            return(Ok(saveOrderResource));
        }