Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 3
0
        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;
        }
Ejemplo n.º 4
0
        /// <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();
        }
Ejemplo n.º 5
0
        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;
        }
Ejemplo n.º 7
0
 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();
     }
 }
Ejemplo n.º 8
0
        /// <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();
                }
            }
        }
Ejemplo n.º 9
0
        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());
            }
        }
Ejemplo n.º 13
0
        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);
                }
            }
        }
Ejemplo n.º 14
0
        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);
            }
        }
Ejemplo n.º 16
0
        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);
            }
        }