Exemple #1
0
        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));
        }
Exemple #2
0
        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);
            }
        }
Exemple #3
0
        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);
            }
        }