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); }
//....// ============================================================================================= 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); }
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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)); }
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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)); }
// ///////////////////////////////////////////////////////////////////////////////////////// // 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); }
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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)); }