Exemplo n.º 1
0
        public bool QuoteRequestSMAttemptWithdraw(int id)
        {
            bool success = false;

            try
            {
                QuoteRequestDomain model = GetQuoteRequestById(id);

                QuoteRequestStateService StateHandler = new QuoteRequestStateService(model);

                // Verify this is valid action
                StateHandler.StateMachine.Fire(QREvent.Withdraw);

                // Update Status on THIS model
                model.Status = QRState.Draft;

                // Update status in DB
                QrUpdateStatusRequest QrUpdate = new QrUpdateStatusRequest
                {
                    QrId   = model.QrId,
                    Status = model.Status
                };

                UpdateQuoteRequestStatus(QrUpdate);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(success);
        }
Exemplo n.º 2
0
        // /////////////////////////////////////////////////////////////////////////////////////////
        // Workflow Methods by Kevin Horan & Ravid Yoeun
        // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

        //- quotemuleFIXME - replace naked variables with Request Model
        public bool QuoteRequestSMAttemptCancel(int id, string userId)
        {
            bool success = false;
            // Cancelling is the right of the originator
            QuoteRequestDomain model = GetQuoteRequestById(id);

            //- quotemuleFIXME - this should be a check against the companyId instead of userId
            if (model.UserId == userId)
            {
                try
                {
                    var StateHandler = new QuoteRequestStateService(model);

                    // Verify this is valid action
                    StateHandler.StateMachine.Fire(QREvent.Cancel);

                    // Update Status on THIS model
                    model.Status = QRState.Cancelled;

                    // Update status in DB
                    QrUpdateStatusRequest QrUpdate = new QrUpdateStatusRequest
                    {
                        QrId   = model.QrId,
                        Status = model.Status
                    };

                    UpdateQuoteRequestStatus(QrUpdate);
                }
                //- quotemuleFIXME - Implement a catch for InvalidOperationException that sets success to false
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            return(success);
        }
Exemplo n.º 3
0
        // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

        public bool QuoteRequestSMAttemptPending(int id)
        {
            bool success = false;

            try
            {
                QuoteRequestDomain model = GetQuoteRequestById(id);

                QuoteRequestStateService StateHandler = new QuoteRequestStateService(model);

                // Verify this is valid action
                StateHandler.StateMachine.Fire(QREvent.Review);

                // Update Status on THIS model
                model.Status = QRState.Pending;

                // Update status in DB
                QrUpdateStatusRequest QrUpdate = new QrUpdateStatusRequest
                {
                    QrId   = model.QrId,
                    Status = model.Status
                };

                UpdateQuoteRequestStatus(QrUpdate);


                //- Changing all Bids for QR to pending
                BidService BidService = new BidService();
                QuoteRequestItemService QRIService = new QuoteRequestItemService();

                List <QuoteRequestItemDomain> allQRItemsByQr = QRIService.GetAllQuoteRequestItems(model.QrId);

                if (allQRItemsByQr != null)
                {
                    foreach (QuoteRequestItemDomain QRItem in allQRItemsByQr)
                    {
                        List <BidDomain> allBidsByQri = BidService.BidGetByQriId(QRItem.QrItemId);

                        if (allBidsByQri != null)
                        {
                            foreach (BidDomain Bid in allBidsByQri)
                            {
                                BidDomain currentBid = Bid;

                                QuoteRequestBidStatusRequest BidModel = BidService.GetQuoteRequestBidStatusId(currentBid.BidId);

                                QuoteRequestBidStateService BidStateHandler = new QuoteRequestBidStateService(BidModel);

                                BidStateHandler.StateMachine.Fire(QuoteRequestBidEvent.Review);

                                currentBid.BidStatus = QuoteRequestBidState.Pending;

                                QuoteRequestBidStatusRequest BidStateUpdate = new QuoteRequestBidStatusRequest
                                {
                                    BidId     = currentBid.BidId,
                                    BidStatus = currentBid.BidStatus
                                };

                                BidService.UpdateQuoteRequestBidStatus(BidStateUpdate);
                            }
                        }
                    }
                }
            }
            catch (InvalidOperationException)
            {
                return(success);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(success);
        }