Ejemplo n.º 1
0
        /// <summary>
        /// Updates the post election dates corresponding to a CMO post election audit message in CFIS.
        /// </summary>
        /// <param name="message">The post election audit message to update.</param>
        /// <returns>true if the post election dates were successfully updated in CFIS; otherwise, false.</returns>
        private bool UpdatePostElectionDates(CmoMessage message)
        {
            if (message == null)
            {
                return(false);
            }
            AuditReportType type;

            if (message.IsInitialDocumentationRequest)
            {
                type = AuditReportType.InitialDocumentationRequest;
            }
            else if (message.IsIdrInadequateResponseLetter)
            {
                type = AuditReportType.IdrInadequateResponse;
            }
            else if (message.IsIdrAdditionalInadequateLetter)
            {
                type = AuditReportType.IdrAdditionalInadequateResponse;
            }
            else if (message.IsDarInadequateResponseLetter)
            {
                type = AuditReportType.DarInadequateResponse;
            }
            else if (message.IsDarAdditionalInadequateLetter)
            {
                type = AuditReportType.DarAdditionalInadequateResponse;
            }
            else
            {
                return(false);
            }
            using (PostElectionTableAdapter ta = new PostElectionTableAdapter())
            {
                object retObj;                                   // SQL error code as object
                int    retVal;                                   // SQL error code
                int?   eventNumber = message.TollingEventNumber; // number of event generated or source tolling event, as appropriate
                retObj = ta.UpdatePostElectionDates(message.CandidateID, message.ElectionCycle, CPConvert.ToCfisCode(type), message.PostElectionAuditRequestType == AuditRequestType.SecondRequest || message.PostElectionAuditRequestType == AuditRequestType.SecondRepost ? "Y" : "N", ref eventNumber);
                if (retObj != null && int.TryParse(retObj.ToString(), out retVal))
                {
                    if (retVal == 0)
                    {
                        // save event number for tolling letters
                        if (eventNumber.HasValue && message.IsTollingLetter)
                        {
                            message.TollingEventNumber = eventNumber;
                            SetCmoMessageTolling(message);
                        }
                        return(true);
                    }
                }
                return(false);
            }
        }