Exemple #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);
        }
Exemple #2
0
        //....// =============================================================================================

        public QuoteRequestDomain GetQuoteRequestByCompanyIdAndStatusId(int companyId)
        {
            QuoteRequestDomain quoteStatusbyCompany = null;

            try
            {
                DataProvider.ExecuteCmd(GetConnection, "dbo.QuoteRequests_GetCompanyId_Status"
                                        , inputParamMapper : delegate(SqlParameterCollection paramCollection)
                {
                    paramCollection.AddWithValue("@CompanyId", companyId);
                }, map : delegate(IDataReader reader, short set)
                {
                    quoteStatusbyCompany = new QuoteRequestDomain();

                    int startingIndex = 0; //startingOrdinal

                    quoteStatusbyCompany.QrId   = reader.GetSafeInt32(startingIndex++);
                    quoteStatusbyCompany.Status = (QRState)reader.GetSafeInt32(startingIndex++);
                    //quoteStatus.EventId = (QREvent)reader.GetSafeInt32(startingIndex++);
                    quoteStatusbyCompany.QuoteRequestName = reader.GetSafeString(startingIndex++);

                    // Passing through the values to the Domain Object
                    quoteStatusbyCompany.StatusName = quoteStatusbyCompany.Status.ToString();
                });
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(quoteStatusbyCompany);
        }
Exemple #3
0
        // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



        public QuoteRequestDomain GetQuoteRequestById(int id)
        {
            QuoteRequestDomain SingleQuote = null;

            try
            {
                DataProvider.ExecuteCmd(GetConnection, "dbo.QuoteRequests_GetById"
                                        , inputParamMapper : delegate(SqlParameterCollection paramCollection)
                {
                    paramCollection.AddWithValue("@QuoteRequestId", id);
                }, map : delegate(IDataReader reader, short set)
                {
                    SingleQuote = new QuoteRequestDomain();

                    int startingIndex = 0;             //startingOrdinal

                    SingleQuote.QrId        = reader.GetSafeInt32(startingIndex++);
                    SingleQuote.UserId      = reader.GetSafeString(startingIndex++);
                    SingleQuote.CompanyId   = reader.GetSafeInt32(startingIndex++);
                    SingleQuote.Name        = reader.GetSafeString(startingIndex++);
                    SingleQuote.DueDate     = reader.GetSafeDateTime(startingIndex++);
                    SingleQuote.CreatedDate = reader.GetSafeDateTime(startingIndex++);
                    SingleQuote.UpdatedDate = reader.GetSafeDateTime(startingIndex++);
                    SingleQuote.Status      = (QRState)reader.GetSafeInt32(startingIndex++);
                    SingleQuote.AddressId   = reader.GetSafeInt32(startingIndex++);
                    SingleQuote.QrType      = (QuoteRequestType)reader.GetSafeInt32(startingIndex++);
                });
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(SingleQuote);
        }
        public HttpResponseMessage GetQuoteById(int id)
        {
            if (!ModelState.IsValid)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
            }

            QuoteRequestDomain singleQuote = _QuoteRequestService.GetQuoteRequestById(id);

            ItemResponse <QuoteRequestDomain> response = new ItemResponse <QuoteRequestDomain> {
                Item = singleQuote
            };

            return(Request.CreateResponse(HttpStatusCode.OK, response));
        }
Exemple #5
0
        //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


        public List <QuoteRequestDomain> GetQuoteRequestsByCompanyIdAndStatus(int CompanyId)
        {
            List <QuoteRequestDomain> quoteList = null;

            try
            {
                DataProvider.ExecuteCmd(GetConnection, "dbo.QuoteRequests_GetCompanyId_Status"
                                        , inputParamMapper : delegate(SqlParameterCollection paramCollection)
                {
                    paramCollection.AddWithValue("@CompanyId", CompanyId);
                }, map : delegate(IDataReader reader, short set)
                {
                    QuoteRequestDomain SingleQuoteRequest = new QuoteRequestDomain();
                    int startingIndex = 0;               //startingOrdinal

                    SingleQuoteRequest.QrId        = reader.GetSafeInt32(startingIndex++);
                    SingleQuoteRequest.UserId      = reader.GetSafeString(startingIndex++);
                    SingleQuoteRequest.CompanyId   = reader.GetSafeInt32(startingIndex++);
                    SingleQuoteRequest.Name        = reader.GetSafeString(startingIndex++);
                    SingleQuoteRequest.DueDate     = reader.GetSafeDateTime(startingIndex++);
                    SingleQuoteRequest.CreatedDate = reader.GetSafeDateTime(startingIndex++);
                    SingleQuoteRequest.UpdatedDate = reader.GetSafeDateTime(startingIndex++);
                    SingleQuoteRequest.Status      = (QRState)reader.GetSafeInt32(startingIndex++);

                    SingleQuoteRequest.StatusName = SingleQuoteRequest.Status.ToString();

                    if (quoteList == null)
                    {
                        quoteList = new List <QuoteRequestDomain>();
                    }



                    quoteList.Add(SingleQuoteRequest);
                }
                                        );
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(quoteList);
        }
        public HttpResponseMessage getStatusId(int id)
        {
            if (!ModelState.IsValid)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
            }

            QuoteRequestDomain qrObject = new QuoteRequestDomain();

            qrObject = _QuoteRequestService.GetQuoteRequestStatusId(id);

            QuoteRequestDomain qrStatus = new QuoteRequestDomain();

            qrStatus._Status = qrObject.Status;
            qrStatus._QrName = qrObject.QuoteRequestName;

            var response = new ItemResponse <QuoteRequestDomain> {
                Item = qrObject
            };

            return(Request.CreateResponse(HttpStatusCode.OK, response));
        }
Exemple #7
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);
        }
Exemple #8
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);
        }
        public HttpResponseMessage updateStateMachine(QuoteRequestDomain model)
        {
            //- validate incoming payload model
            if (!ModelState.IsValid)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
            }

            // Set the workflow state to Publish
            //No valid leaving transitions are permitted from state 'Draft' for trigger 'Publish'. Consider ignoring the trigger.

            QuoteRequestDomain updatedQR = _QuoteRequestService.GetQuoteRequestById(model.QrId);

            bool   isSuccessful = false;
            int    CompanyId    = updatedQR.CompanyId;
            string QRmessage    = "";

            switch (model.EventId)
            {
            case QREvent.Cancel:
                // change to appropriate event type
                isSuccessful = _QuoteRequestService.QuoteRequestSMAttemptCancel(model.QrId);
                QRmessage    = "QuoteRequest <a href='/quoterequest/manage/" + model.QrId + "'>" + model.Name + "</a> has been CANCELLED";

                break;

            case QREvent.Delete:

                isSuccessful = _QuoteRequestService.QuoteRequestSMAttemptDelete(model.QrId);
                QRmessage    = "QuoteRequest <a href='/quoterequest/manage/" + model.QrId + "'>" + model.Name + "</a> has been DELETED";

                break;

            case QREvent.Publish:

                isSuccessful = _QuoteRequestService.QuoteRequestSMAttemptePublish(model.QrId);
                QRmessage    = "QuoteRequest <a href='/quoterequest/manage/" + model.QrId + "'>" + model.Name + "</a> has been PUBLISHED";

                break;

            case QREvent.Review:

                isSuccessful = _QuoteRequestService.QuoteRequestSMAttemptPending(model.QrId);
                QRmessage    = "QuoteRequest <a href='/quoterequest/manage/" + model.QrId + "'>" + model.Name + "</a> has been PENDED";

                break;

            case QREvent.Republish:

                isSuccessful = _QuoteRequestService.QuoteRequestSMAttemptRepublish(model.QrId);
                QRmessage    = "QuoteRequest <a href='/quoterequest/manage/" + model.QrId + "'>" + model.Name + "</a> has been REPUBLISHED";

                break;

            case QREvent.Reject:

                isSuccessful = _QuoteRequestService.QuoteRequestSMAttemptReject(model.QrId);
                QRmessage    = "QuoteRequest <a href='/quoterequest/manage/" + model.QrId + "'>" + model.Name + "</a> has been REJECTED";

                break;

            case QREvent.Withdraw:

                isSuccessful = _QuoteRequestService.QuoteRequestSMAttemptWithdraw(model.QrId);
                QRmessage    = "QuoteRequest <a href='/quoterequest/manage/" + model.QrId + "'>" + model.Name + "</a> has been WITHDRAWN";

                break;

            case QREvent.Complete:

                isSuccessful = _QuoteRequestService.QuoteRequestSMAttemptComplete(model.QrId);
                QRmessage    = "QuoteRequest <a href='/quoterequest/manage/" + model.QrId + "'>" + model.Name + "</a> has been COMPLETED";

                break;

            default:
                break;
            }


            List <CompanyEmployeeDomain> employee_ActiveQR = _UserProfileService.GetAllEmployees(CompanyId);

            SignalRHub.QuoteRequestUpdated(model, employee_ActiveQR, QRmessage);


            // Load the response Item with the success boolean (true).
            ItemResponse <bool> response = new ItemResponse <bool> {
                Item = isSuccessful
            };


            return(Request.CreateResponse(HttpStatusCode.OK, response));
        }