private void DatabaseToBlock(BlockReference block, Transaction tr) { try { Dictionary <string, AttributeReference> attribs = GetBlockAttributes(block, tr); DrawingsDataContext dc = DBCommon.NewDC; Drawing drawing = GetDrawing(dc, attribs["DRAWING-NUMBER"].TextString, attribs["SHEET"].TextString); if (drawing == null) { _ed.WriteMessage("Drawing was not found, check Drawing Number AND Sheet Number are correct \n"); return; } foreach (var kvp in attribs) { if (DrawingHelper.AttributeExists(kvp.Key)) //only save the desired attributes { kvp.Value.TextString = drawing.GetAttribute(kvp.Key); } } SetBlockSheetSize(block, drawing.SheetSize, tr); _ed.WriteMessage("Data successfully fetched from the database and put in block " + block.Name + "\n"); } catch (Exception ex) { _ed.WriteMessage("Exception at DatabaseToBlock(block, tr): " + ex.Message + ex.StackTrace + "\n"); } }
private void btnReallyAdvSearch_Click(object sender, RoutedEventArgs e) { try { _searchresults.Clear(); DrawingsDataContext dc = DBCommon.NewDC; IQueryable <MPDrawing> query = dc.Drawings; query = query.Where(txtAdvSearch.Text); foreach (MPDrawing d in query.ToList()) { _searchresults.Add(d); } if (listView1.Items.Count > 0) { listView1.ScrollIntoView(listView1.Items.GetItemAt(0)); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void ViewPage(int page, int num) { DrawingsDataContext dc = DBCommon.NewDC; IQueryable <Drawing> res = (from d in dc.Drawings select d).Skip((page - 1) * num).Take(num); // Create the GridView var gv = new GridView(); gv.AllowsColumnReorder = true; // Create the GridView Columns PropertyInfo[] pi = typeof(MPDrawing).GetProperties(); foreach (PropertyInfo p in pi) { var gvc = new GridViewColumn(); gvc.DisplayMemberBinding = new Binding(p.Name); gvc.Header = p.Name; gvc.Width = Double.NaN; gv.Columns.Add(gvc); } listView1.View = gv; listView1.ItemsSource = res; }
/// <summary> /// /// </summary> /// <param name="drawing">The drawing to edit</param> /// <param name="refresh">Some action to perform if the drawing is changed</param> /// <param name="dc"></param> public ViewDrawingWindow(MPDrawing drawing, Action refresh) { InitializeComponent(); _refresh = refresh; _dc = DBCommon.NewDC; _d = (from dwg in _dc.Drawings where dwg.Id == drawing.Id select dwg).First(); }
private static Drawing GetDrawingFromBlock(DrawingsDataContext dc, BlockReference blkRef, Transaction tr) { Dictionary <string, AttributeReference> attribs = GetBlockAttributes(blkRef, tr); return (dc.Drawings.FirstOrDefault( d => d.Number == attribs["DRAWING-NUMBER"].TextString && d.Sheet == attribs["SHEET"].TextString)); }
/// <summary> /// Add the working copy drawing to the database /// </summary> public void AddDrawingToDatabase() { DrawingsDataContext dc = DBCommon.NewDC; dc.Drawings.InsertOnSubmit(Drawing); dc.SubmitChanges(); //clone the working copy, so we dont change an existing drawing Drawing = Drawing.Clone() as Drawing; }
private void btnAdd_Click(object sender, RoutedEventArgs e) { if (DBCommon.DrawingComboExists(_d.Number, _d.Sheet)) { MessageBox.Show( "A drawing with the specified number and sheet number already exists, or the Drawing Number or Sheet Number was null. This is not acceptable."); } else { DrawingsDataContext dc = DBCommon.NewDC; dc.Drawings.InsertOnSubmit(_d); dc.SubmitChanges(); Close(); } }
/// <summary> /// Show the ViewDrawingWindow for the current drawing /// </summary> public void ShowViewDrawingWindow(bool enableEditByDefault) { Transaction tr = null; try { DrawingsDataContext ddc = DBCommon.NewDC; tr = _db.TransactionManager.StartTransaction(); IEnumerable <BlockReference> blocks = GetLayoutBlocks(tr, OpenMode.ForRead); Drawing d = null; foreach (BlockReference block in blocks) { if (d != null) { return; } d = GetDrawingFromBlock(ddc, block, tr); } if (d == null) { return; } var w = new ViewDrawingWindow(d, null, enableEditByDefault); w.ShowDialog(); } catch (Exception ex) { _ed.WriteMessage(ex.ToString()); } finally { if (tr != null) { tr.Dispose(); } } }
public static void CreateAndEditDrawing() { DrawingCommands dc = new DrawingCommands(); //create the drawings Drawing d = dc.CreateDefaultDrawingWithFileName(); if (d == null) { return; } DrawingsDataContext ddc = DBCommon.NewDC; ddc.Drawings.InsertOnSubmit(d); //chuck it in the database ddc.SubmitChanges(); //bring up the window to edit changes ViewDrawingWindow atv = new ViewDrawingWindow(d, null, true); atv.ShowDialog(); }
private void button1_Click(object sender, RoutedEventArgs e) { listBox1.Items.Clear(); string[] numbers = textBox1.Text.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); foreach (string str in numbers) { DrawingsDataContext dc = DBCommon.NewDC; IQueryable <Drawing> dwg = from d in dc.Drawings where d.Number == str select d; var lbi = new ListBoxItem(); lbi.Content = str; if (dwg.Any()) { lbi.Background = Brushes.LightGreen; } else { lbi.Background = Brushes.Yellow; } listBox1.Items.Add(lbi); } }
void AdvancedSearchExecute() { try { _searchresults.Clear(); DrawingsDataContext dc = DBCommon.NewDC; IQueryable <Drawing> query = dc.Drawings; query = query.Where(AdvancedSearchQuery); foreach (Drawing d in query.ToList()) { _searchresults.Add(d); } // if (listView1.Items.Count > 0) listView1.ScrollIntoView(listView1.Items.GetItemAt(0)); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void btnUpdateDB_Click(object sender, RoutedEventArgs e) { try { DrawingsDataContext dc = DBCommon.NewDC; IEnumerable <DrawingInfo> selectedDrawings = (from d in _drawings where d.Include select d); foreach (DrawingInfo di in selectedDrawings) { IQueryable <Drawing> dwgs = (from MPDrawing d in dc.Drawings where d.Number.ToLower() == di.Name.ToLower() select d); foreach (MPDrawing dwg in dwgs) { dwg.FileName = di.Path; } } dc.SubmitChanges(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
private void Window_Loaded(object sender, RoutedEventArgs e) { string[] subs = Settings.Default.Substations.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); foreach (string str in subs) { var tvi = new TreeViewItem(); tvi.Header = str; treeView1.Items.Add(tvi); } foreach (TreeViewItem tvi in treeView1.Items) { DrawingsDataContext dc = DBCommon.NewDC; IQueryable <Drawing> drawings = from d in dc.Drawings where d.ProjectTitle.Contains((string)tvi.Header) select d; foreach (MPDrawing d in drawings) { tvi.Items.Add(d); } } }
private bool BlockToDatabase(BlockReference block, Transaction tr) { try { Dictionary <string, AttributeReference> attribs = GetBlockAttributes(block, tr); if (String.IsNullOrEmpty(attribs["DRAWING-NUMBER"].TextString)) { PromptResult pr1 = _ed.GetString("Drawing Number:"); attribs["DRAWING-NUMBER"].TextString = pr1.StringResult; } if (String.IsNullOrEmpty(attribs["SHEET"].TextString)) { PromptResult pr1 = _ed.GetString("Sheet Number:"); attribs["SHEET"].TextString = pr1.StringResult; } if (String.IsNullOrEmpty(attribs["DRAWING-NUMBER"].TextString) || String.IsNullOrEmpty(attribs["SHEET"].TextString)) { _ed.WriteMessage("No drawing/sheet number forthcoming, returning.\n"); return(false); } DrawingsDataContext dc = DBCommon.NewDC; Drawing drawing = GetDrawing(dc, attribs["DRAWING-NUMBER"].TextString, attribs["SHEET"].TextString); if (drawing == null) { drawing = new Drawing(); dc.Drawings.InsertOnSubmit(drawing); } foreach (var kvp in attribs) { if (DrawingHelper.AttributeExists(kvp.Key)) //only save the desired attributes { drawing.SetAttribute(kvp.Key, kvp.Value.TextString); } } drawing.SheetSize = GetSheetSizeFromBlock(block, tr); //TODO: check this if (_db.Filename.EndsWith("sv$", StringComparison.OrdinalIgnoreCase)) { _ed.WriteMessage("File has not been saved since autosave, filename not put into the database.\n"); } else { drawing.FileName = _db.Filename; //drawing.Filename = _db.OriginalFileName; } //If we're putting this in via the CAD, then it must be electronic drawing.Electronic = true; dc.SubmitChanges(); if (drawing.Category == DrawingCategory.Undefined) { _ed.WriteMessage("WARNING: Drawing Category is undefined!\n"); } if (drawing.Status == DrawingStatus.Undefined) { _ed.WriteMessage("WARNING: Drawing Status is undefined!\n"); } _ed.WriteMessage("Data successfully written to the database from block " + block.Name + "\n"); return(true); } catch (Exception ex) { _ed.WriteMessage(ex.Message); return(false); } }
private void btnSearch_Click(object sender, RoutedEventArgs e) { try { _searchresults.Clear(); DrawingsDataContext dc = DBCommon.NewDC; var options = (TextSearchOption)cmbTextMatch.SelectedIndex; IQueryable <MPDrawing> query = dc.Drawings; if (!String.IsNullOrEmpty(txtDrawingNumber.Text)) { if (chkLegacyNumbers.IsChecked ?? false) { query = query.Where( d => d.Number.Contains(txtDrawingNumber.Text) || d.LegacyDrawing.Contains(txtDrawingNumber.Text)); } else { query = query.Where(d => d.Number.Contains(txtDrawingNumber.Text)); } } if (!String.IsNullOrEmpty(txtProjectTitle.Text)) { query = query.Where(SearchAssistant.SearchText(txtProjectTitle.Text, options, d => d.ProjectTitle)); } if (chkElectronic.IsChecked ?? false) { query = query.Where(d => d.Electronic ?? false); } if (chkNotElectronic.IsChecked ?? false) { query = query.Where(d => d.Electronic == false); } if (chkOneTitle.IsChecked ?? false) { if (!String.IsNullOrEmpty(txtTitle1.Text)) { query = query.Where(SearchAssistant.SearchText(txtTitle1.Text, options, d => d.TitleLine1, d => d.TitleLine2, d => d.TitleLine3)); } } else { if (!String.IsNullOrEmpty(txtTitle1.Text)) { query = query.Where(SearchAssistant.SearchText(txtTitle1.Text, options, d => d.TitleLine1)); } if (!String.IsNullOrEmpty(txtTitle2.Text)) { query = query.Where(SearchAssistant.SearchText(txtTitle2.Text, options, d => d.TitleLine2)); } if (!String.IsNullOrEmpty(txtTitle3.Text)) { query = query.Where(SearchAssistant.SearchText(txtTitle3.Text, options, d => d.TitleLine3)); } } if (!chkCategoryAll.IsChecked ?? false) { Expression <Func <MPDrawing, bool> > w = (d => d.Category == DrawingCategory.Undefined); if (chkComms.IsChecked ?? false) { w = w.OrElse(d => d.Category == DrawingCategory.Communications); } if (chkGXP.IsChecked ?? false) { w = w.OrElse(d => d.Category == DrawingCategory.GxpSubstation); } if (chkMisc.IsChecked ?? false) { w = w.OrElse(d => d.Category == DrawingCategory.Miscellaneous); } if (chkOverhead.IsChecked ?? false) { w = w.OrElse(d => d.Category == DrawingCategory.Overhead); } if (chkUnderground.IsChecked ?? false) { w = w.OrElse(d => d.Category == DrawingCategory.Underground); } if (chkZoneSub.IsChecked ?? false) { w = w.OrElse(d => d.Category == DrawingCategory.ZoneSubstation); } if (chkGeneration.IsChecked ?? false) { w = w.OrElse(d => d.Category == DrawingCategory.Generation); } query = query.Where(w); } if (!chkStatusAll.IsChecked ?? false) { Expression <Func <MPDrawing, bool> > w = (d => d.Status == DrawingStatus.Undefined); if (chkSuperseded.IsChecked ?? false) { w = w.OrElse(d => d.Status == DrawingStatus.Superseded); } if (chkPlanned.IsChecked ?? false) { w = w.OrElse(d => d.Status == DrawingStatus.Planned); } if (chkCancelled.IsChecked ?? false) { w = w.OrElse(d => d.Status == DrawingStatus.Canceled); } if (chkAsBuilt.IsChecked ?? false) { w = w.OrElse(d => d.Status == DrawingStatus.AsBuilt); } if (chkCurrent.IsChecked ?? false) { w = w.OrElse(d => d.Status == DrawingStatus.Current); } query = query.Where(w); } if (chkDate.IsChecked ?? false) { query = query.Where( d => d.DrawnDate > DateTime.Parse(txtDateFrom.Text) && d.DrawnDate < DateTime.Parse(txtDateTo.Text)); } foreach (MPDrawing d in query.ToList()) { _searchresults.Add(d); } if (listView1.Items.Count > 0) { listView1.ScrollIntoView(listView1.Items.GetItemAt(0)); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private static Drawing GetDrawing(DrawingsDataContext dc, string drawingNumber, string sheetNumber) { IQueryable <Drawing> drawings = (from d in dc.Drawings where d.Number == drawingNumber && d.Sheet == sheetNumber select d); return(!drawings.Any() ? null : drawings.First()); }
void SearchExecute() { try { _searchresults.Clear(); DrawingsDataContext dc = DBCommon.NewDC; IQueryable <Drawing> query = dc.Drawings; if (!String.IsNullOrEmpty(DrawingNumber)) { if (IncludeLegacyNumbers) { query = query.Where(d => d.Number.Contains(DrawingNumber) || d.LegacyDrawing.Contains(DrawingNumber)); } else { query = query.Where(d => d.Number.Contains(DrawingNumber)); } } if (!String.IsNullOrEmpty(ProjectTitle)) { query = query.Where(SearchAssistant.SearchText(ProjectTitle, SearchType, d => d.ProjectTitle)); } if (ElectronicOnly) { query = query.Where(d => d.Electronic == true); } if (NonElectronicOnly) { query = query.Where(d => d.Electronic == false); } if (SearchAllTitles) { if (!String.IsNullOrEmpty(Title1)) { query = query.Where(SearchAssistant.SearchText(Title1, SearchType, d => d.TitleLine1, d => d.TitleLine2, d => d.TitleLine3)); } } else { if (!String.IsNullOrEmpty(Title1)) { query = query.Where(SearchAssistant.SearchText(Title1, SearchType, d => d.TitleLine1)); } if (!String.IsNullOrEmpty(Title2)) { query = query.Where(SearchAssistant.SearchText(Title2, SearchType, d => d.TitleLine2)); } if (!String.IsNullOrEmpty(Title3)) { query = query.Where(SearchAssistant.SearchText(Title3, SearchType, d => d.TitleLine3)); } } if (!CategoryAll) { Expression <Func <Drawing, bool> > w = (d => d.Category == DrawingCategory.Undefined); if (CategoryCommunications) { w = w.OrElse(d => d.Category == DrawingCategory.Communications); } if (CategoryGXPSubstation) { w = w.OrElse(d => d.Category == DrawingCategory.GxpSubstation); } if (CategoryMiscellaneous) { w = w.OrElse(d => d.Category == DrawingCategory.Miscellaneous); } if (CategoryOverhead) { w = w.OrElse(d => d.Category == DrawingCategory.Overhead); } if (CategoryUnderground) { w = w.OrElse(d => d.Category == DrawingCategory.Underground); } if (CategoryZoneSubstation) { w = w.OrElse(d => d.Category == DrawingCategory.ZoneSubstation); } if (CategoryGeneration) { w = w.OrElse(d => d.Category == DrawingCategory.Generation); } query = query.Where(w); } if (!StatusAll) { Expression <Func <Drawing, bool> > w = (d => d.Status == DrawingStatus.Undefined); if (StatusSuperseded) { w = w.OrElse(d => d.Status == DrawingStatus.Superseded); } if (StatusPlanned) { w = w.OrElse(d => d.Status == DrawingStatus.Planned); } if (StatusCancelled) { w = w.OrElse(d => d.Status == DrawingStatus.Canceled); } if (StatusAsBuilt) { w = w.OrElse(d => d.Status == DrawingStatus.AsBuilt); } if (StatusCurrent) { w = w.OrElse(d => d.Status == DrawingStatus.Current); } if (StatusDraft) { w = w.OrElse(d => d.Status == DrawingStatus.Draft); } query = query.Where(w); } if (SearchDateRange) { query = query.Where(d => d.DrawnDate > StartDate && d.DrawnDate < EndDate); } foreach (Drawing d in query.ToList()) { _searchresults.Add(d); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }