public override void BeforeExporting() { if (CreateReport) { lock (DBManagerApp.m_AppSettings.m_SettingsSyncObj) { AppSettings settings = DBManagerApp.m_AppSettings.m_Settings; CCompSpecificSets CompSettings = null; if (!settings.dictCompSettings.TryGetValue(CompDesc.id_desc, out CompSettings)) { CompSettings = new CCompSpecificSets() { CompId = CompDesc.id_desc, }; } settings.dictCompSettings.TryAddValue(CompSettings.CompId, CompSettings); CompSettings.PersRepPlaceAggregationMethod = PlaceAggregationMethod; CompSettings.PersRepWinnerDetection = WinnerDetection; CompSettings.PriorityCompetitionKind = PriorityCompetitionKind; } DBManagerApp.m_AppSettings.Write(); } }
private void btnOK_Click(object sender, RoutedEventArgs e) { lock (DBManagerApp.m_AppSettings.m_SettingsSyncObj) { CCompSpecificSets CompSets = null; if (!DBManagerApp.m_AppSettings.m_Settings.dictCompSettings.TryGetValue(m_CompId, out CompSets)) { CompSets = new CCompSpecificSets() { CompId = m_CompId, }; DBManagerApp.m_AppSettings.m_Settings.dictCompSettings.Add(m_CompId, CompSets); } // Проще каждый раз заново формировать этот словарь, т.к. он всегда мелкий CompSets.dictGroupsForAutopublish = new SerializableDictionary <long, CPublishedGroupItemInSets>(); foreach (CPublishingGroupItem item in Groups) { CompSets.dictGroupsForAutopublish.Add(item.GroupId, new CPublishedGroupItemInSets() { GroupId = item.GroupId, IsSelected = item.IsSelected }); } DBManagerApp.m_AppSettings.m_Settings.dictCompSettings[m_CompId] = CompSets; DBManagerApp.m_AppSettings.Write(); } DialogResult = true; }
private void SaveSettings() { if (HasLeadReport) { lock (DBManagerApp.m_AppSettings.m_SettingsSyncObj) { AppSettings settings = DBManagerApp.m_AppSettings.m_Settings; CCompSpecificSets CompSettings = null; if (!settings.dictCompSettings.TryGetValue(CompDesc.id_desc, out CompSettings)) { CompSettings = new CCompSpecificSets() { CompId = CompDesc.id_desc, }; } CompSettings.FirstMemberRow = FirstMemberRow; CompSettings.PlaceColumnIndex = PlaceColumnIndex; CompSettings.PersonalDataColumnIndex = PersonalDataColumnIndex; CompSettings.YearOfBirthColumnIndex = YearOfBirthColumnIndex; CompSettings.TeamColumnIndex = TeamColumnIndex; CompSettings.LeadReportXlsPath = XlsPath; CompSettings.dictGroupsLeadSheetsInfos = new SerializableDictionary <long, CLeadSheetInfo>(); foreach (CGroupItem Group in Groups) { CLeadSheetInfo LeadSheetInfo = new CLeadSheetInfo() { SheetIndex = Group.LeadSheetIndex, StartDate = new CCompDate(), EndDate = new CCompDate() }; LeadSheetInfo.StartDate.Day = Group.StartDate.Value.Day; LeadSheetInfo.StartDate.Month = Group.StartDate.Value.Month - 1; LeadSheetInfo.StartDate.Year = Group.StartDate.Value.Year; LeadSheetInfo.EndDate.Day = Group.EndDate.Value.Day; LeadSheetInfo.EndDate.Month = Group.EndDate.Value.Month - 1; LeadSheetInfo.EndDate.Year = Group.EndDate.Value.Year; CompSettings.dictGroupsLeadSheetsInfos.Add(Group.id, LeadSheetInfo); } settings.dictCompSettings.TryAddValue(CompSettings.CompId, CompSettings); } DBManagerApp.m_AppSettings.Write(); } }
public override void BeforeExporting() { if (CreateReport) { lock (DBManagerApp.m_AppSettings.m_SettingsSyncObj) { AppSettings settings = DBManagerApp.m_AppSettings.m_Settings; CCompSpecificSets CompSettings = null; if (!settings.dictCompSettings.TryGetValue(CompDesc.id_desc, out CompSettings)) { CompSettings = new CCompSpecificSets() { CompId = CompDesc.id_desc, }; } CompSettings.WomenInGroup = WomenInGroup; CompSettings.MenInGroup = MenInGroup; CompSettings.lstTeamsForTeamReport = new List <CTeamForTeamReport>(); foreach (CTeamForReportItem TeamForReport in TeamsForReport) { CTeamForTeamReport TeamToAdd = new CTeamForTeamReport() { Name = TeamForReport.Name.Trim(), SubteamsIds = new List <long>() }; foreach (CTeamItem Team in TeamForReport.Subteams) { TeamToAdd.SubteamsIds.Add(Team.id); } CompSettings.lstTeamsForTeamReport.Add(TeamToAdd); } settings.dictCompSettings.TryAddValue(CompSettings.CompId, CompSettings); } DBManagerApp.m_AppSettings.Write(); } }
public CLeadReportInfoTab(CExportToExcelWnd ParentWnd, ObservableDictionary <long, CKeyValuePairEx <long, CCompSettings> > CompGroups) : base(ParentWnd, CompGroups) { InitializeComponent(); lock (DBManagerApp.m_AppSettings.m_SettingsSyncObj) { AppSettings settings = DBManagerApp.m_AppSettings.m_Settings; if (CompDesc != null) { CCompSpecificSets CompSettings = null; if (settings.dictCompSettings.TryGetValue(CompDesc.id_desc, out CompSettings)) { if (CompSettings.FirstMemberRow != GlobalDefines.DEFAULT_XML_INT_VAL) { FirstMemberRow = CompSettings.FirstMemberRow; } else { FirstMemberRow = settings.DefaultCompSettings.FirstMemberRow; } if (CompSettings.PlaceColumnIndex != GlobalDefines.DEFAULT_XML_INT_VAL) { PlaceColumnIndex = CompSettings.PlaceColumnIndex; } else { PlaceColumnIndex = settings.DefaultCompSettings.PlaceColumnIndex; } if (CompSettings.PersonalDataColumnIndex != GlobalDefines.DEFAULT_XML_INT_VAL) { PersonalDataColumnIndex = CompSettings.PersonalDataColumnIndex; } else { PersonalDataColumnIndex = settings.DefaultCompSettings.PersonalDataColumnIndex; } if (CompSettings.YearOfBirthColumnIndex != GlobalDefines.DEFAULT_XML_INT_VAL) { YearOfBirthColumnIndex = CompSettings.YearOfBirthColumnIndex; } else { YearOfBirthColumnIndex = settings.DefaultCompSettings.YearOfBirthColumnIndex; } if (CompSettings.TeamColumnIndex != GlobalDefines.DEFAULT_XML_INT_VAL) { TeamColumnIndex = CompSettings.TeamColumnIndex; } else { TeamColumnIndex = settings.DefaultCompSettings.TeamColumnIndex; } if (CompSettings.LeadReportXlsPath != GlobalDefines.DEFAULT_XML_STRING_VAL) { XlsPath = CompSettings.LeadReportXlsPath; } else { XlsPath = settings.DefaultCompSettings.LeadReportXlsPath; } } else { FirstMemberRow = settings.DefaultCompSettings.FirstMemberRow; PlaceColumnIndex = settings.DefaultCompSettings.PlaceColumnIndex; PersonalDataColumnIndex = settings.DefaultCompSettings.PersonalDataColumnIndex; YearOfBirthColumnIndex = settings.DefaultCompSettings.YearOfBirthColumnIndex; TeamColumnIndex = settings.DefaultCompSettings.TeamColumnIndex; XlsPath = settings.DefaultCompSettings.LeadReportXlsPath; } HasLeadReport = !string.IsNullOrWhiteSpace(XlsPath); CheckPathSettings(); // Добавляем группы в колекцию foreach (KeyValuePair <long, CKeyValuePairEx <long, CCompSettings> > Group in CompGroups) { CGroupItem GroupItem = new CGroupItem(Group.Key) { Name = Group.Value.Value.AgeGroup.FullGroupName, Sex = Group.Value.Value.AgeGroup.SexInEnum }; if (Group.Value.Value.AgeGroup.GroupType == CAgeGroup.enGroupType.Children) { // Есть года рождения if (Group.Value.Value.AgeGroup.StartYear == GlobalDefines.DEFAULT_XML_INT_VAL || Group.Value.Value.AgeGroup.wEndYear == GlobalDefines.DEFAULT_XML_INT_VAL) { // Но пока их почему-то не ввели GroupItem.CanSelectYears = false; } else { int EndYear = 0, StartYear = 0; switch (Group.Value.Value.AgeGroup.wEndYear) { case (int)DBManager.Scanning.XMLDataClasses.CAgeGroup.enEndYearSpecVals.AndElder: StartYear = GlobalDefines.MIN_GROUP_YEAR; EndYear = Group.Value.Value.AgeGroup.StartYear; break; case (int)DBManager.Scanning.XMLDataClasses.CAgeGroup.enEndYearSpecVals.AndYounger: StartYear = Group.Value.Value.AgeGroup.StartYear; EndYear = GlobalDefines.MAX_GROUP_YEAR; break; default: StartYear = Group.Value.Value.AgeGroup.StartYear; EndYear = Group.Value.Value.AgeGroup.wEndYear; break; } for (int i = StartYear; i <= EndYear; i++) { GroupItem.YearsOfBirth.Add(i); } GroupItem.StartYearIndToExport = 0; GroupItem.EndYearIndToExport = GroupItem.YearsOfBirth.Count - 1; } } else { // Годов рождения нет for (int i = GlobalDefines.MIN_GROUP_YEAR; i <= GlobalDefines.MAX_GROUP_YEAR; i++) { GroupItem.YearsOfBirth.Add(i); } GroupItem.StartYearIndToExport = 0; GroupItem.EndYearIndToExport = GroupItem.YearsOfBirth.Count - 1; } Groups.Add(GroupItem); } if (CompSettings != null && CompSettings.dictGroupsLeadSheetsInfos != null) { List <long> Keys = CompSettings.dictGroupsLeadSheetsInfos.Keys.ToList(); foreach (long Key in Keys) { if (Groups.FirstOrDefault(arg => arg.id == Key) == null) { // Такой группы больше нет CompSettings.dictGroupsLeadSheetsInfos.Remove(Key); } } } OnLeadReportRefreshed(); // Присваивать LeadSheetIndex нужно только после OnLeadReportRefreshed foreach (CGroupItem GroupItem in Groups) { if (CompSettings != null && CompSettings.dictGroupsLeadSheetsInfos != null) { CLeadSheetInfo LeadSheetInfo; if (CompSettings.dictGroupsLeadSheetsInfos.TryGetValue(GroupItem.id, out LeadSheetInfo)) { GroupItem.LeadSheetIndex = LeadSheetInfo.SheetIndex; GroupItem.StartDate = LeadSheetInfo.StartDate; GroupItem.EndDate = LeadSheetInfo.EndDate; } } } } } }