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();
            }
        }
示例#4
0
        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;
                            }
                        }
                    }
                }
            }
        }