public void DeleteOverriddenIndicatorMetadataTextValue(IndicatorMetadataTextValue indicatorMetadataTextValue) { var profileId = indicatorMetadataTextValue.ProfileId; // Profile will only be defined if overridden metadata is defined if (profileId.HasValue) { var fromDatabase = GetMetadataTextValueForAnIndicatorById( indicatorMetadataTextValue.IndicatorId, profileId.Value); DeleteObject(fromDatabase); } }
public ActionResult ConfirmCopyIndicators(CopyIndicatorsModel cim, List<int> selectedDomainId, int selectedAreaTypeId, string indicatorTransferDetails, bool copyMetadataOption, string targetProfile) { var groupId = GetSelectedGroupIdUsingProfileKeyDomainAndAreaTypeId(cim.UrlKey, cim.DomainId, cim.AreaTypeId); var modelCount = 0; var indicatorSpecifierStrings = indicatorTransferDetails.Split(',').ToList(); var indicatorSpecifiers = IndicatorSpecifierParser.Parse(indicatorSpecifierStrings); string targetProfileId = string.Empty; int targetDomain=0, targetAreaTypeId=0; if (copyMetadataOption) { var targetProfileData = targetProfile.Split('~'); targetProfileId = targetProfileData[0]; targetDomain = Convert.ToInt32(targetProfileData[1]); targetAreaTypeId = Convert.ToInt32(targetProfileData[2]); } foreach (var indicatorSpecifier in indicatorSpecifiers) { var indicatorId = indicatorSpecifier.IndicatorId; var sexId = indicatorSpecifier.SexId; var ageId = indicatorSpecifier.AgeId; // Don't copy if identical indicator (including age and sex Id) already exists in destination. if (!_profileRepository.IndicatorGroupingsExist(indicatorId, Convert.ToInt32(selectedDomainId[0]), selectedAreaTypeId, Convert.ToInt32(ageId), Convert.ToInt32(sexId))) { var currentIndicator = cim.IndicatorsToTransfer[modelCount]; _profileRepository.CopyIndicatorToDomain(indicatorId, groupId, cim.AreaTypeId, currentIndicator.SexId, currentIndicator.AgeId, Convert.ToInt32(selectedDomainId[0]), selectedAreaTypeId, sexId, ageId); // Copy indicator meta data if (copyMetadataOption) { var targetProfileDetails = CommonUtilities.GetProfile(targetProfileId, targetDomain, targetAreaTypeId, _profileRepository); var indicatorMetadataTextValue = _reader.GetMetadataTextValueForAnIndicatorById(indicatorId, cim.Profile.Id); if (indicatorMetadataTextValue != null) { var indicatorMetadataTextValuesCopy = new IndicatorMetadataTextValue { IndicatorId = indicatorId, ProfileId = targetProfileDetails.Id, Name = indicatorMetadataTextValue.Name, NameLong = indicatorMetadataTextValue.NameLong, Definition = indicatorMetadataTextValue.Definition, Rationale = indicatorMetadataTextValue.Rationale, Policy = indicatorMetadataTextValue.Policy, DataSource = indicatorMetadataTextValue.DataSource, Producer = indicatorMetadataTextValue.Producer, IndMethod = indicatorMetadataTextValue.IndMethod, StandardPop = indicatorMetadataTextValue.StandardPop, CIMethod = indicatorMetadataTextValue.CIMethod, CountSource = indicatorMetadataTextValue.CountSource, CountDefinition = indicatorMetadataTextValue.CountDefinition, DenomSource = indicatorMetadataTextValue.DenomSource, DenomDefinition = indicatorMetadataTextValue.DenomDefinition, DiscControl = indicatorMetadataTextValue.DiscControl, Caveats = indicatorMetadataTextValue.Caveats, Copyright = indicatorMetadataTextValue.Copyright, Reuse = indicatorMetadataTextValue.Reuse, Links = indicatorMetadataTextValue.Links, RefNum = indicatorMetadataTextValue.RefNum, Notes = indicatorMetadataTextValue.Notes, Frequency = indicatorMetadataTextValue.Frequency, Rounding = indicatorMetadataTextValue.Rounding, DataQuality = indicatorMetadataTextValue.DataQuality }; _writer.NewIndicatorMetadataTextValue(indicatorMetadataTextValuesCopy); } } _profileRepository.LogAuditChange("Indicator " + indicatorId + " copied from [" + cim.DomainName + " (Area: " + cim.AreaTypeId + ", SexId:" + currentIndicator.SexId + ", AgeId:" + currentIndicator.AgeId + " )] Into " + "[" + _reader.GetGroupingMetadataList(selectedDomainId)[0].GroupName + " (Area: " + selectedAreaTypeId + ", SexId:" + sexId + ", AgeId:" + ageId + " )]", indicatorId, null, _userName, DateTime.Now, CommonUtilities.AuditType.Copy.ToString()); } modelCount++; } return Redirect(Request.UrlReferrer.AbsoluteUri); }
public void TestCopyIndicatorMetadataTextValue() { var reader = ReaderFactory.GetProfilesReader(); var writer = ReaderFactory.GetProfilesWriter(); const int targetProfile = ProfileIds.Diabetes; const int indicatorId = IndicatorIds.ChildrenInPoverty; // get an indicator metadata text values from database var indicatorTextValues = reader.GetMetadataTextValueForAnIndicatorById( indicatorId, ProfileIds.HealthProfiles); // make a copy var copy = new IndicatorMetadataTextValue { IndicatorId = indicatorId, ProfileId = targetProfile, Name = indicatorTextValues.Name, NameLong = indicatorTextValues.NameLong, Definition = indicatorTextValues.Definition, Rationale = indicatorTextValues.Rationale, Policy = indicatorTextValues.Policy, DataSource = indicatorTextValues.DataSource, Producer = indicatorTextValues.Producer, IndMethod = indicatorTextValues.IndMethod, StandardPop = indicatorTextValues.StandardPop, CIMethod = indicatorTextValues.CIMethod, CountSource = indicatorTextValues.CountSource, CountDefinition = indicatorTextValues.CountDefinition, DenomSource = indicatorTextValues.DenomSource, DenomDefinition = indicatorTextValues.DenomDefinition, DiscControl = indicatorTextValues.DiscControl, Caveats = indicatorTextValues.Caveats, Copyright = indicatorTextValues.Copyright, Reuse = indicatorTextValues.Reuse, Links = indicatorTextValues.Links, RefNum = indicatorTextValues.RefNum, Notes = indicatorTextValues.Notes, Frequency = indicatorTextValues.Frequency, Rounding = indicatorTextValues.Rounding, DataQuality = indicatorTextValues.DataQuality }; // Delete existing metadata text values writer.DeleteOverriddenIndicatorMetadataTextValue(copy); // write copy to db writer.NewIndicatorMetadataTextValue(copy); // get copy from db var copyFromDb = reader.GetMetadataTextValueForAnIndicatorById(indicatorId, targetProfile); Assert.AreNotEqual(copy,copyFromDb); Assert.AreEqual(copy.IndicatorId, copyFromDb.IndicatorId); Assert.AreEqual(copy.ProfileId, copyFromDb.ProfileId); Assert.AreEqual(copy.NameLong, copyFromDb.NameLong); }
public void CreateIndicator(IEnumerable<IndicatorMetadataTextProperty> allPropertiesToAdd, int indicatorId) { var indicatorMetaDataTextValue = new IndicatorMetadataTextValue(); try { transaction = CurrentSession.BeginTransaction(); allPropertiesToAdd.ForEach( p => indicatorMetaDataTextValue.SetPropertyValue(p.ColumnName, p.Text)); indicatorMetaDataTextValue.IndicatorId = indicatorId; CurrentSession.Save(indicatorMetaDataTextValue); transaction.Commit(); } catch (Exception exception) { HandleException(exception); } }
public void CreateNewOverriddenIndicator(IndicatorMetadataTextProperty property, string text, int indicatorId, int? profileId) { var indicatorMetaDataTextValue = new IndicatorMetadataTextValue() { IndicatorId = indicatorId, ProfileId = profileId, }; indicatorMetaDataTextValue.SetPropertyValue(property.ColumnName, text); CurrentSession.Save(indicatorMetaDataTextValue); }
public int NewIndicatorMetadataTextValue(IndicatorMetadataTextValue indicatorMetadataTextValue) { var id = SaveNewObject(indicatorMetadataTextValue); return id; }