private string GetDefaultDestCompFolderName(CompDescLocalWorkbook comp) { lock (DBManagerApp.m_AppSettings.m_SettingsSyncObj) { return(System.IO.Path.Combine(DBManagerApp.m_AppSettings.m_Settings.CompetitionsFolder, comp.GetDefaultDestCompFolderName())); } }
public GroupItemLocalWorkbook(CompDescLocalWorkbook compDesc) : base(compDesc) { }
public bool InitWndControls() { using (var wrapper = new DisposableWrapper <ShowAsyncResult>(CWaitingWnd.ShowAsync(Title, Properties.Resources.resFillingGenerationFromOnlineBDWnd, this, CheckAccess()), asyncResult => { if (asyncResult?.hFinishedSearchEvent != null) { asyncResult.hFinishedSearchEvent.Set(); } })) { EndYears.Clear(); StartYears.Clear(); EndYears.Add((int)enEndYearSpecVals.AndYounger); EndYears.Add((int)enEndYearSpecVals.AndElder); for (int i = DateTime.Now.Year - 7; i > DateTime.Now.Year - 100; i--) { StartYears.Add(i); EndYears.Add(i); } GroupNames.Clear(); lock (DBManagerApp.m_AppSettings.m_SettingsSyncObj) { foreach (var groupNameDesc in DBManagerApp.m_AppSettings.m_Settings.AvailableGroupNames) { GroupNames.Add(groupNameDesc.GroupName); } } // Заполняем выпадающие списки текущими значениями LocalDBComps.Clear(); try { foreach (var comp in DBManagerApp.m_Entities.descriptions.ToList()) { var item = new CompDescLocalWorkbook() { ID = comp.id_desc, Name = comp.name, StartDate = DateTime.Today, EndDate = DateTime.Today.AddDays(2) }; item.DestCompFolder = GetDefaultDestCompFolderName(item); item.PropertyChanged += comp_PropertyChanged; LocalDBComps.Add(item); } SelectedComp = LocalDBComps.LastOrDefault(); } catch (Exception ex) { MessageBox.Show(this, string.Format(Properties.Resources.resfmtErrorDuringReadingDataFromOnlineDB, ex.Message), Title, MessageBoxButton.OK, MessageBoxImage.Error); return(false); } cmbMainJudge.Items.Clear(); foreach (var mainJudge in DBManagerApp .m_Entities .groups .Select(arg => arg.main_judge) .Where(arg => !string.IsNullOrEmpty(arg)) .Distinct()) { cmbMainJudge.Items.Add(mainJudge); } cmbMainSecretary.Items.Clear(); foreach (var mainSecretary in DBManagerApp .m_Entities .groups .Select(arg => arg.main_secretary) .Where(arg => !string.IsNullOrEmpty(arg)) .Distinct()) { cmbMainSecretary.Items.Add(mainSecretary); } cmbRow6.Items.Clear(); foreach (var row6 in DBManagerApp .m_Entities .groups .Select(arg => arg.row6) .Where(arg => !string.IsNullOrEmpty(arg)) .Distinct()) { cmbRow6.Items.Add(row6); } } return(true); }
public bool Extract(ICompDesc compDesc, IEnumerable <IGroupItem> compGroups, out string message) { CompDescLocalWorkbook compDescLocal = compDesc as CompDescLocalWorkbook; message = null; GroupsMembers = new List <KeyValuePair <IGroupItem, IEnumerable <CFullMemberInfo> > >(); try { using (var excelApp = new DisposableWrapper <ExcelApplicationEx>(GlobalDefines.StartExcel(), app => { if (app != null) { app.App.DisplayAlerts = true; if (app.NewAppCreated) { app.App.Quit(); } app = null; } })) { bool WbkOpened; var wbk = WorkbookGenerator.OpenWbk(excelApp, compDescLocal.SourceWorkbookName, out WbkOpened); if (wbk == null) { message = string.Format(Properties.Resources.resfmtSourceWorkbookCouldNotBeOpened, compDescLocal.SourceWorkbookName); return(false); } foreach (var @group in compGroups.Cast <GroupItemLocalWorkbook>()) { MSExcel.Worksheet wsh = wbk.Worksheets[@group.SheetName]; MSExcel.Range rng = wsh.Range[$"{@group.TLCell}:{@group.BRCell}"]; List <CFullMemberInfo> members = new List <CFullMemberInfo>(); for (int row = 0; row < rng.Rows.Count; row++) { string[] NameAndSurname; GlobalDefines.CorrectSurnameAndName(rng[row + 1, @group.PersonalDataColumnIndex].Value, out NameAndSurname); enGrade grade; GlobalDefines.ParseGrade(rng[row + 1, @group.GradeColumnIndex].Value?.ToString(), out grade); short?yearOfBirth = rng[row + 1, @group.YoBColumnIndex].Value == null ? null : (short?)Convert.ToUInt16(rng[row + 1, @group.YoBColumnIndex].Value); members.Add(new CFullMemberInfo() { Surname = NameAndSurname[0], Name = NameAndSurname[1], YearOfBirth = yearOfBirth, SecondCol = rng[row + 1, @group.TeamColumnIndex].Value, InitGrade = grade == enGrade.None ? null : (byte?)grade }); } GroupsMembers.Add(new KeyValuePair <IGroupItem, IEnumerable <CFullMemberInfo> >(@group, members)); } } CompDesc = compDesc; return(true); } catch (Exception ex) { message = ex.Message; return(false); } }