protected virtual FacilitySubmittalElement GetMostRecentFSE(FacilitySubmittalElementPacket <RegulatorFacilitySubmittalElementHeaderXmlObject> fsePacket) { SubmittalElementStatus status = (SubmittalElementStatus)fsePacket.FacilitySubmittalElement.StatusID; SubmittalElementType type = (SubmittalElementType)fsePacket.FacilitySubmittalElement.SubmittalElementID; return(GetMostRecentFSE(fsePacket.FacilitySubmittalElement.CERSID, type, status, fsePacket.FacilitySubmittalElement.ID)); }
protected virtual void UpdateFacilityRegulatorSubmittalElement(Facility facility, FacilitySubmittalElementPacket <RegulatorFacilitySubmittalElementHeaderXmlObject> fsePacket) { FacilityRegulatorSubmittalElement frse = Repository.FacilityRegulatorSubmittalElements.GetForFacility(facility.CERSID, fsePacket.FacilitySubmittalElement.SubmittalElementID); var status = (SubmittalElementStatus)fsePacket.FacilitySubmittalElement.StatusID; var type = (SubmittalElementType)fsePacket.FacilitySubmittalElement.SubmittalElementID; var submittedOn = fsePacket.FacilitySubmittalElement.SubmittedDateTime.Value; bool frseUpdated = false; //if this submittal is accepted, then lets see if this is the most recent accepted. //if so, then update the FRSE with the LastAccepted PK and date/time. if (status == SubmittalElementStatus.Accepted) { var lastAccepted = GetMostRecentFSE(fsePacket); if ((lastAccepted != null && submittedOn > lastAccepted.SubmittedDateTime.Value) || (frse.LastAcceptedFacilitySubmittalElementOn == null || (frse.LastAcceptedFacilitySubmittalElementOn != null && frse.LastAcceptedFacilitySubmittalElementOn.Value < fsePacket.FacilitySubmittalElement.SubmittalActionDateTime))) { frse.LastAcceptedFacilitySubmittalElementID = fsePacket.FacilitySubmittalElement.ID; frse.LastAcceptedFacilitySubmittalElementOn = fsePacket.FacilitySubmittalElement.SubmittalActionDateTime; frseUpdated = true; } } //now see if this is the most recent facility submittal element received for this submittal element. //if so, then lets update the LastSubmitted fields. var results = Repository.FacilitySubmittalElements.Search(CERSID: facility.CERSID, type: type); results = from r in results where r.StatusID != (int)SubmittalElementStatus.Draft && r.ID != fsePacket.FacilitySubmittalElement.ID select r; var lastFSE = results.OrderByDescending(p => p.SubmittedDateTime).FirstOrDefault(); if ((lastFSE != null && submittedOn > lastFSE.SubmittedDateTime.Value) || (frse.LastSubmittedFacilitySubmittalElementOn == null || (frse.LastSubmittedFacilitySubmittalElementOn != null && frse.LastSubmittedFacilitySubmittalElementOn.Value < fsePacket.FacilitySubmittalElement.SubmittedDateTime))) { frse.LastSubmittedFacilitySubmittalElementID = fsePacket.FacilitySubmittalElement.ID; frse.LastSubmittedFacilitySubmittalElementOn = fsePacket.FacilitySubmittalElement.SubmittedDateTime; frseUpdated = true; } Repository.FacilityRegulatorSubmittalElements.Save(frse); //update the last Fac Info if (fsePacket.FacilitySubmittalElement.SubmittalElementID == (int)SubmittalElementType.FacilityInformation) { if (ServiceManager.BusinessLogic.SubmittalElements.SetLastFacilityInfoSubmittal(fsePacket.FacilitySubmittalElement)) { TransactionScope.Connect(fsePacket.FacilitySubmittalElement.Facility); } frseUpdated = true; } if (frseUpdated) { TransactionScope.Connect(frse); } }
protected virtual void ProcessFacilityRegulatorSubmittalElementMetadata(Facility facility, FacilitySubmittalElementPacket <RegulatorFacilitySubmittalElementHeaderXmlObject> fsePacket) { //if the xml data included a new NextDueDate and/or Reporting Requirement lets find the FacilityRegulatorSubmittalElement (FRSE) and update it //with the new data bits. if (fsePacket.Header.NextDueDate != null) { //find the FRSE for this Facility and Submittal Element Type. fsePacket.FacilityRegulatorSubmittalElement = Repository.FacilityRegulatorSubmittalElements.GetForFacility(facility, fsePacket.Type); //if NextDueDate was specified lets update it. if (fsePacket.Header.NextDueDate != null) { //=> SubmittalActionDateTime fsePacket.FacilityRegulatorSubmittalElement.NextDueDate = fsePacket.Header.NextDueDate; TransactionScope.Connect(fsePacket.FacilityRegulatorSubmittalElement); } //update the FRSE Repository.FacilityRegulatorSubmittalElements.Save(fsePacket.FacilityRegulatorSubmittalElement); } }