/// <summary>
        /// Generates a new TopTotalRevenueByDealerReport.
        /// </summary>
        public void Generate(IDocumentAdapter document, ICarsFactoryDbContext dbContext)
        {
            var totalRevenueByDealers = (from dealer in dbContext.Dealers
                                         let totalRevenue =
                                             (decimal?)dealer.Cars.Where(
                                                 y =>
                                                 y.OrderId != null &&
                                                 y.Order.OrderStatus == OrderStatus.Closed)
                                             .Sum(x => x.Price)
                                             let town = dealer.Town.Name
                                                        let orderCount =
                                                 dealer.Cars.Count(
                                                     y =>
                                                     y.OrderId != null &&
                                                     y.Order.OrderStatus == OrderStatus.Closed)
                                                 orderby totalRevenue descending
                                                 select new
            {
                Dealer = dealer.Name,
                TotalRevenue = totalRevenue,
                Town = town,
                TotalOrders = orderCount
            })
                                        .Take(10)
                                        .ToList();

            document.AddMetadata()
            .AddHeader($"Top 10 total revenue by dealer for all time. Generated on {DateTime.Now}")
            .AddTabularData(totalRevenueByDealers)
            .Save();
        }
示例#2
0
 public DbInitializer(
     IDocumentAdapter documentAdapter,
     string[] collectionIds)
 {
     _doc           = documentAdapter;
     _collectionIds = collectionIds;
 }
示例#3
0
 public Document(IIdentity identity, DocumentOperation operation, IDocumentAdapter documentAdapter, bool initializeNestedDocuments) : this(identity, operation, documentAdapter)
 {
     if (initializeNestedDocuments)
     {
         this.internalNestedDocuments = new List <IDocument>();
     }
 }
示例#4
0
        /// <summary>
        /// Generates a new TotalRevenueInLastYearByDealerReport.
        /// </summary>
        public void Generate(IDocumentAdapter document, ICarsFactoryDbContext dbContext)
        {
            var lastYear = DateTime.Now.Year - 1;
            var totalRevenueForThePastMonth = (from dealer in dbContext.Dealers
                                               let totalRevenue =
                                                   (decimal?)dealer.Cars.Where(
                                                       car =>
                                                       car.Order != null &&
                                                       car.Order.Date.Year > lastYear &&
                                                       car.Order.OrderStatus == OrderStatus.Closed)
                                                   .Sum(c => c.Price)
                                                   let town = dealer.Town.Name
                                                              let orderCount = dealer.Cars.Count(car => car.Order != null &&
                                                                                                 car.Order.Date.Year > lastYear &&
                                                                                                 car.Order.OrderStatus == OrderStatus.Closed)
                                                                               orderby totalRevenue descending
                                                                               select new
            {
                Dealer = dealer.Name,
                TotalRevenue = totalRevenue,
                Town = town,
                TotalOrders = orderCount
            })
                                              .ToList();

            document.AddMetadata()
            .AddHeader($"Total revenue by dealer for the last year. Generated on {DateTime.Now}")
            .AddTabularData(totalRevenueForThePastMonth)
            .Save();
        }
示例#5
0
        protected SearchSubsystem(
            Control parent,
            RichTextBox findEditor,
            Panel panelSearchIcon,
            ListBox listBoxSuggest,
            LuceneSearcher <TId, TObj> searcher,
            IDocumentAdapter <TId, TObj> adapter,
            params LayoutViewControl[] layoutViews)
        {
            _parent          = parent;
            _findEditor      = findEditor;
            _panelSearchIcon = panelSearchIcon;

            _listBoxSuggest = listBoxSuggest;

            Searcher = searcher;
            _adapter = adapter;
            _views   = layoutViews;

            _listBoxSuggest.Visible = false;
            _listBoxSuggest.Height  = 0;

            _highlighter = new SearchStringHighlighter(_findEditor);
            _highlighter.Highlight();
        }
示例#6
0
 public Document(IIdentity identity, DocumentOperation operation, IDocumentAdapter documentAdapter)
 {
     Util.ThrowOnNullArgument(identity, "identity");
     this.propertyBag     = new PropertyBag();
     this.documentAdapter = documentAdapter;
     this.propertyBag.SetProperty <IIdentity>(DocumentSchema.Identity, identity);
     this.propertyBag.SetProperty <DocumentOperation>(DocumentSchema.Operation, operation);
     this.diagnosticsSession = DiagnosticsSession.CreateDocumentDiagnosticsSession(identity, ExTraceGlobals.CoreDocumentModelTracer);
 }
示例#7
0
        public LiteDbStorage(LiteDatabase database, IDocumentAdapter <TDoc> documentAdapter)
        {
            Check.DoRequireArgumentNotNull(database, nameof(database));
            Check.DoRequireArgumentNotNull(documentAdapter, nameof(documentAdapter));

            _database       = database;
            _documents      = database.GetCollection <TDoc>();
            DocumentAdapter = documentAdapter;
        }
        public RepositoryShould()
        {
            _doc = GetDocumentAdapter();

            IDbInitializer dbInitializer = new DbInitializer(_doc, new string[] { "Cars", "Persons" });

            dbInitializer.InitializeAsync().Wait();

            _carRepository = new CarRepository(_doc);
        }
示例#9
0
 public CardSpellcheckerState(
     CardRepository repo,
     Spellchecker spellchecker,
     CardSearcherState searcherState,
     IDocumentAdapter <int, Card> adapter,
     Func <int> maxCount,
     bool loaded) :
     base(spellchecker, searcherState, adapter, maxCount, loaded)
 {
     _repo = repo;
 }
示例#10
0
        protected LuceneSpellcheckerState(
            Spellchecker spellchecker,
            LuceneSearcherState <TId, TDoc> searcherState,
            IDocumentAdapter <TId, TDoc> adapter,
            Func <int> maxCount,
            bool loaded)
        {
            _spellchecker = spellchecker;
            _reader       = searcherState.Reader;
            _adapter      = adapter;
            _maxCount     = maxCount;

            IsLoaded = loaded;
        }
        public void Generate(IDocumentAdapter document)
        {
            var fakeDb = new MockDbContext();

            using (fakeDb)
            {
                var totalRevenueByDealers = fakeDb.GetTotalRevenueByDealers();

                document.AddMetadata()
                .AddRow($"Top 10 total revenue by dealer for all time. Generated on {DateTime.Now}")
                .AddTable(totalRevenueByDealers)
                .Save();
            }
        }
示例#12
0
        protected LuceneSpellchecker(IDocumentAdapter <TId, TObj> adapter)
        {
            _adapter = adapter;
            MaxCount = 20;

            _userFields = _adapter.GetUserFields()
                          .Select(f => f + ":")
                          .OrderBy(Str.Comparer)
                          .ToReadOnlyList();

            _allTokensAreField = _userFields
                                 .Select(_ => TokenType.Field)
                                 .ToReadOnlyList();
        }
        /// <summary>
        /// Generates a new DealerSalesReportForLastQuarter.
        /// </summary>
        public void Generate(IDocumentAdapter document, ICarsFactoryDbContext dbContext)
        {
            var pastDate = DateTime.Now.AddMonths(-3);

            Console.WriteLine(dbContext.Orders.First().TotalPrice);

            var dealerData = (from dealer in dbContext.Dealers
                              let cars = dealer.Cars.Where(car => car.OrderId != null &&
                                                           car.Order.OrderStatus == OrderStatus.Closed &&
                                                           car.Order.Date > pastDate)
                                         .Select(c => new
            {
                Model = c.Model.Manufacturer.Name + " " + c.Model.Name,
                Year = c.Year.Year,
                Price = c.Price,
                OrderDate = c.Order.Date,
                OrderId = c.OrderId
            })
                                         select new
            {
                Cars = cars.ToList(),
                Name = dealer.Name,
                Town = dealer.Town.Name,
            }
                              ).OrderByDescending(x => x.Cars.Count)
                             .ToList();

            document.AddMetadata()
            .AddHeader($"Dealer sales report for the last three months. Generated on {DateTime.Now}");

            foreach (var dealer in dealerData)
            {
                var deal = new { Dealer = dealer.Name + ", " + dealer.Town };
                var dealerTableData = new[] { deal }.ToList();
                document.AddTabularData(dealerTableData);

                if (dealer.Cars.Count > 0)
                {
                    document.AddTabularData(dealer.Cars);
                }

                var totalsTableData = new { TotalRevenue = dealer.Cars.Sum(c => c.Price) };
                var totals = new[] { totalsTableData }.ToList();
                document.AddTabularData(totals);
                document.AddHeader(string.Empty);
            }

            document.Save();
        }
示例#14
0
        protected LuceneSpellchecker(IDocumentAdapter <TId, TDoc> adapter)
        {
            Adapter  = adapter;
            MaxCount = 20;

            _userFields =
                Adapter.FieldByAlias.Keys.OrderBy(Str.Comparer)
                .Concat(Adapter.GetUserFields().OrderBy(Str.Comparer))
                .Select(f => f + ":")
                .ToList();

            _allTokensAreField = _userFields
                                 .Select(_ => TokenType.Field)
                                 .ToList();
        }
示例#15
0
 public DFormattingVisitor(DFormattingOptions policy, IDocumentAdapter document, DModule ast, ITextEditorOptions options = null)
 {
     if (policy == null)
     {
         throw new ArgumentNullException("policy");
     }
     if (document == null)
     {
         throw new ArgumentNullException("document");
     }
     this.ast      = ast;
     this.policy   = policy;
     this.document = document;
     this.options  = options ?? TextEditorOptions.Default;
     curIndent     = new FormattingIndentStack(this.options);
 }
示例#16
0
        protected SearchSubsystem(
            Control parent,
            SearchBar searchBar,
            LuceneSearcher <TId, TObj> searcher,
            IDocumentAdapter <TId, TObj> adapter,
            params LayoutViewControl[] layoutViews)
        {
            _parent    = parent;
            _searchBar = searchBar;

            Searcher = searcher;
            _adapter = adapter;
            _views   = layoutViews;

            _highlighter = new SearchStringHighlighter(_searchBar.Input);
            _highlighter.Highlight();
        }
示例#17
0
        public static string FormatCode(string code, DModule ast = null, IDocumentAdapter document = null, DFormattingOptions options = null, ITextEditorOptions textStyle = null)
        {
            options = options ?? DFormattingOptions.CreateDStandard();
            textStyle = textStyle ?? TextEditorOptions.Default;
            ast = ast ?? DParser.ParseString(code) as DModule;

            var formattingVisitor = new DFormattingVisitor(options, document ?? new TextDocument{ Text = code }, ast, textStyle);

            formattingVisitor.WalkThroughAst();

            var sb = new StringBuilder(code);

            formattingVisitor.ApplyChanges((int start, int length, string insertedText) => {
                                           	sb.Remove(start,length);
                                           	sb.Insert(start,insertedText);
                                           });

            return sb.ToString();
        }
        /// <summary>
        /// Generates a new TopSellingManufacturersReport.
        /// </summary>
        public void Generate(IDocumentAdapter document, ICarsFactoryDbContext dbContext)
        {
            var topManufacturers =
                (from car in
                 dbContext.Cars.Where(car => car.OrderId != null && car.Order.OrderStatus == OrderStatus.Closed)
                 group car by car.Model.Manufacturer.Name
                 into g
                 orderby g.Count() descending
                 select new
            {
                Model = g.Key,
                OrderCount = g.Count()
            })
                .ToList();

            document.AddMetadata()
            .AddHeader($"Top selling manufacturers of all time. Generated on {DateTime.Now}")
            .AddTabularData(topManufacturers)
            .Save();
        }
        /// <summary>
        /// Generates a new TopRevenueByTownReport.
        /// </summary>
        public void Generate(IDocumentAdapter document, ICarsFactoryDbContext dbContext)
        {
            var topTowns = (from car in
                            dbContext.Cars
                            .Where(car => car.OrderId != null && car.Order.OrderStatus == OrderStatus.Closed)
                            group car by car.Dealer.Town.Name
                            into g
                            orderby g.Count() descending
                            select new
            {
                Town = g.Key,
                OrderCount = g.Count()
            })
                           .ToList();

            document.AddMetadata()
            .AddHeader($"Most orders by town. Generated on {DateTime.Now}")
            .AddTabularData(topTowns)
            .Save();
        }
示例#20
0
        public static string FormatCode(string code, DModule ast = null, IDocumentAdapter document = null, DFormattingOptions options = null, ITextEditorOptions textStyle = null)
        {
            options   = options ?? DFormattingOptions.CreateDStandard();
            textStyle = textStyle ?? TextEditorOptions.Default;
            ast       = ast ?? DParser.ParseString(code) as DModule;

            var formattingVisitor = new DFormattingVisitor(options, document ?? new TextDocument {
                Text = code
            }, ast, textStyle);

            formattingVisitor.WalkThroughAst();

            var sb = new StringBuilder(code);

            formattingVisitor.ApplyChanges((int start, int length, string insertedText) => {
                sb.Remove(start, length);
                sb.Insert(start, insertedText);
            });

            return(sb.ToString());
        }
 public CarRepository(IDocumentAdapter documentAdapter) : base("Cars", documentAdapter)
 {
 }
示例#22
0
 public QrDataProvider(IXApplication app, IXLogger logger, IDocumentAdapter docAdapter)
 {
     m_App        = app;
     m_DocAdapter = docAdapter;
     m_Logger     = logger;
 }
示例#23
0
            internal ScopedDocument(IDocumentAdapter docAdapter, IXDrawing drw, IXLogger logger, bool useRefDoc)
            {
                m_DocAdapter = docAdapter;

                m_CloseDrawing  = false;
                m_CloseDocument = false;

                m_Logger = logger;

                m_Drawing = (IXDrawing)m_DocAdapter.GetDocumentReplacement(drw, true);

                if (drw != m_Drawing)
                {
                    m_CloseDrawing = !m_Drawing.IsCommitted;
                }

                if (!m_Drawing.IsCommitted)
                {
                    m_Drawing.Commit();
                }

                if (useRefDoc)
                {
                    var view = m_Drawing.Sheets.Active.DrawingViews.FirstOrDefault();

                    if (view == null)
                    {
                        throw new UserException("No drawing views in this document");
                    }

                    var refDoc = view.ReferencedDocument;

                    if (refDoc == null)
                    {
                        throw new UserException("View does not have a document");
                    }

                    var conf = view.ReferencedConfiguration;

                    var replDoc = (IXDocument3D)m_DocAdapter.GetDocumentReplacement(refDoc, true);

                    if (refDoc != replDoc)
                    {
                        refDoc = replDoc;
                    }

                    m_CloseDocument = m_CloseDrawing || !refDoc.IsCommitted;

                    if (!refDoc.IsCommitted)
                    {
                        refDoc.Commit();
                    }

                    if (!conf.IsCommitted)
                    {
                        conf = refDoc.Configurations[conf.Name];
                    }

                    Document      = refDoc;
                    Configuration = conf;
                }
                else
                {
                    Document = m_Drawing;
                }
            }
示例#24
0
 protected LuceneSearcher(LuceneSpellchecker <TId, TDoc> spellchecker, IDocumentAdapter <TId, TDoc> adapter)
 {
     Adapter      = adapter;
     Spellchecker = spellchecker;
 }
示例#25
0
 public EditQrCodeFeature(IXExtension ext, IMessageService msgSvc, IXLogger logger, IDocumentAdapter docAdapter)
     : base(ext, msgSvc, logger, docAdapter)
 {
 }
示例#26
0
 protected LuceneSearcherState(IDocumentAdapter <TId, TDoc> adapter)
 {
     Adapter = adapter;
 }
示例#27
0
 internal IDocument CreateDocument(IIdentity documentId, DocumentOperation documentOperation, IDocumentAdapter documentAdapter, bool initializeNestedDocuments)
 {
     Util.ThrowOnNullArgument(documentId, "documentId");
     return(new Document(documentId, documentOperation, documentAdapter, initializeNestedDocuments));
 }
示例#28
0
 internal IDocument CreateDocument(IIdentity documentId, DocumentOperation documentOperation, IDocumentAdapter documentAdapter)
 {
     return(this.CreateDocument(documentId, documentOperation, documentAdapter, false));
 }
示例#29
0
 protected Repository(string collectionId, IDocumentAdapter documentAdapter)
 {
     CollectionId = collectionId;
     Doc          = documentAdapter;
 }
示例#30
0
        public InsertQrCodeFeature(IXExtension ext, IMessageService msgSvc, IXLogger logger, IDocumentAdapter docAdapter)
        {
            m_App    = ext.Application;
            m_MsgSvc = msgSvc;
            m_Logger = logger;

            m_InsertQrCodePage = ext.CreatePage <QrCodeData>();

            m_CurInsertQrCodePageData = new QrCodeData();

            m_QrDataProvider = new QrDataProvider(m_App, m_Logger, docAdapter);
            m_QrCodeManager  = new QrCodePictureManager(m_App, m_QrDataProvider);

            m_InsertQrCodePage.DataChanged += OnPageDataChanged;
            m_InsertQrCodePage.Closed      += OnInserQrCodePageClosed;
            m_InsertQrCodePage.Closing     += OnInsertQrCodePageClosing;
        }