public bool ValidateSessionAssignment(AsSession session) { if (session.idfCampaign.HasValue) { if (session.idfCampaign != this.idfCampaign) { throw new ValidationModelException("msgASSessionAlreadyBelongsToCampaign", "idfCampaign", "idfCampaign", new string[] { "Error" }, typeof(PredicateValidator), ValidationEventType.Error, session); } } if (!DateHelper.ValidateDateInRange(session.datStartDate, datCampaignDateStart, datCampaignDateEnd) || !DateHelper.ValidateDateInRange(session.datEndDate, datCampaignDateStart, datCampaignDateEnd)) { throw new ValidationModelException("msgCampaignSessionDatesConflict", "idfCampaign", "idfCampaign", new object[] { session.datStartDate, session.datEndDate, datCampaignDateStart, datCampaignDateEnd, "Error" }, typeof(PredicateValidator), ValidationEventType.Error, session); } if (!AsSession.ValidateCheckAnimalSampleList(session, this)) { throw new ValidationModelException("msgCampaignDoesntContainDiagnosis", "idfCampaign", "idfCampaign", new object[] { "Error" }, typeof(PredicateValidator), ValidationEventType.Error, session); } if (!AsSession.ValidateCheckToDeleteDiagnosis(session, this)) { throw new ValidationModelException("msgCampaignDoesntContainDiagnosis", "idfCampaign", "idfCampaign", new object[] { "Error" }, typeof(PredicateValidator), ValidationEventType.Error, session); } //if session contains diagnosis which are not in the campaign, error if (!AsSession.ValidateCampaignToSessionDiseasesRules(session, this)) { throw new ValidationModelException("errNotMatchSessionDiagnosis", "idfCampaign", "idfCampaign", new string[] { "Confirmation" }, typeof(PredicateValidator), ValidationEventType.Error, session); } return(true); }
private bool CopyCampaignData() { if (!_blnAllowCampaignReload || !IsDirty) { return(true); } string[] populateCampaign = new string[] { "strCampaignName", "strCampaignID", "idfsCampaignType", "CampaignType" }; if (!idfCampaign.HasValue) { return(true); } if (idfCampaign.Value == 0) { idfCampaign = null; foreach (var prop in populateCampaign) { this.SetValue(prop, string.Empty); } return(true); } if (blnForceCampaignAssignment) { Diseases.ForEach(x => x.MarkToDelete()); } using (DbManagerProxy manager = DbManagerFactory.Factory.Create(eidss.model.Core.EidssUserContext.Instance)) { var acc = AsCampaign.Accessor.Instance(null); var campaign = CampaignInRamOnly; /*(CampaignInRamOnly == null || CampaignInRamOnly.idfCampaign != idfCampaign) * ? (AsCampaign)acc.SelectByKey(manager, this.idfCampaign) * : CampaignInRamOnly;*/ if (campaign.idfsCampaignStatus != (long)AsCampaignStatus.Open) { throw new ValidationModelException("msgCampaignIsNotOpen", "idfCampaign", "idfCampaign", new string[] { "Error" }, typeof(PredicateValidator), ValidationEventType.Error, this); } //validate Disease List if (!DateHelper.ValidateDateInRange(datStartDate, campaign.datCampaignDateStart, campaign.datCampaignDateEnd) || !DateHelper.ValidateDateInRange(datEndDate, campaign.datCampaignDateStart, campaign.datCampaignDateEnd)) { throw new ValidationModelException("msgCampaignSessionDatesConflict", "idfCampaign", "idfCampaign", new object[] { datStartDate, datEndDate, campaign.datCampaignDateStart, campaign.datCampaignDateEnd, "Error" }, typeof(PredicateValidator), ValidationEventType.Error, this); } if (!AsSession.ValidateCheckAnimalSampleList(this, campaign)) { throw new ValidationModelException("msgCampaignDoesntContainDiagnosis", "idfCampaign", "idfCampaign", new object[] { "Error" }, typeof(PredicateValidator), ValidationEventType.Error, this); } if (!AsSession.ValidateCheckToDeleteDiagnosis(this, campaign)) { throw new ValidationModelException("msgCampaignDoesntContainDiagnosis", "idfCampaign", "idfCampaign", new object[] { "Error" }, typeof(PredicateValidator), ValidationEventType.Error, this); } if (!AsSession.ValidateCampaignToSessionDiseasesRules(this, campaign)) { try { throw new ValidationModelException("AsSession_WrongCampaignAssignment", "idfCampaign", "idfCampaign", new string[] { "Confirmation" }, typeof(PredicateValidator), ValidationEventType.Question, this); } catch (ValidationModelException ex) { if (!OnValidation(ex)) { throw; } } } /*if (!AsSession.ValidateCampaignToSessionDiseasesStrongRules(this, campaign)) * { * throw new ValidationModelException("AsSession_CampaignAssignmentError", "idfCampaign", "idfCampaign", new object[] { "Error" }, typeof(PredicateValidator), ValidationEventType.Error, this); * }*/ //this.CampaignInRamOnly = campaign; AsSession.CopyDiseasesFromCampaignToSession(manager, this, campaign); foreach (var prop in populateCampaign) { if (campaign.GetValue(prop) != null) { this.SetValue(prop, campaign.GetValue(prop).ToString()); } } blnForceCampaignAssignment = false; } return(true); }