Пример #1
0
        public void CloseWorkSheet()
        {
            InvoiceSheet.WorkbookPart.Workbook.CalculationProperties.ForceFullCalculation  = true;
            InvoiceSheet.WorkbookPart.Workbook.CalculationProperties.FullCalculationOnLoad = true;
            InvoiceSheet.WorkbookPart.Workbook.Save();

            InvoiceSheet.WorkbookPart.Workbook.CalculationProperties.ForceFullCalculation  = true;
            InvoiceSheet.WorkbookPart.Workbook.CalculationProperties.FullCalculationOnLoad = true;
            InvoiceSheet.Close();
        }
Пример #2
0
        public async Task OnHandle(string handle, params object[] argument)
        {
            switch (handle)
            {
            case "AddProductSheet":
            {
                var kvp = this.SheetByWorksheet.FirstOrDefault(v => Equals(v.Key.Workbook, this.ActiveWorkbook) && v.Value is ProductSheet);

                ProductSheet productSheet;

                if (kvp.Value == null)
                {
                    var iWorksheet = this.ActiveWorkbook.AddWorksheet(0);
                    iWorksheet.Name = "Products";
                    productSheet    = new ProductSheet(this, iWorksheet);
                    this.SheetByWorksheet.Add(iWorksheet, productSheet);
                }
                else
                {
                    productSheet = (ProductSheet)this.SheetByWorksheet[kvp.Key];
                }

                await productSheet.Refresh().ConfigureAwait(false);

                productSheet.Sheet.IsActive = true;
            }

            break;

            case "ListCovid19Sheet":
            {
                var kvp = this.SheetByWorksheet.FirstOrDefault(v => Equals(v.Key.Workbook, this.ActiveWorkbook) && v.Value is Covid19Sheet);

                Covid19Sheet covid19Sheet = null;
                if (kvp.Value == null)
                {
                    var ws = this.ActiveWorkbook.AddWorksheet(0);
                    ws.Name      = "Covid19";
                    covid19Sheet = new Covid19Sheet(this, ws);
                    this.SheetByWorksheet.Add(ws, covid19Sheet);
                }
                else
                {
                    covid19Sheet = (Covid19Sheet)this.SheetByWorksheet[kvp.Key];
                }

                await covid19Sheet.Refresh().ConfigureAwait(false);

                covid19Sheet.Sheet.IsActive = true;
            }

            break;

            case "AddDemoSheet":
            {
                var wsCount = this.SheetByWorksheet.Count(v => Equals(v.Key.Workbook, this.ActiveWorkbook) && v.Value is DemoSheet);

                var iWorksheet = this.ActiveWorkbook.AddWorksheet(0);
                iWorksheet.Name = $"Demo {wsCount}";
                var demoSheet = new DemoSheet(this, iWorksheet);
                this.SheetByWorksheet.Add(iWorksheet, demoSheet);

                await demoSheet.Refresh().ConfigureAwait(false);

                demoSheet.Sheet.IsActive = true;
            }
            break;

            case "InvoicesSheet":
            {
                var kvp = this.SheetByWorksheet.FirstOrDefault(v => Equals(v.Key.Workbook, this.ActiveWorkbook) && v.Value is InvoicesSheet);

                InvoicesSheet invoicesSheet;

                if (kvp.Value == null)
                {
                    var iWorksheet = this.ActiveWorkbook.AddWorksheet(0);
                    iWorksheet.Name = KnownNames.InvoicesSheetName;
                    invoicesSheet   = new InvoicesSheet(this, iWorksheet);

                    this.SheetByWorksheet.Add(iWorksheet, invoicesSheet);
                }
                else
                {
                    invoicesSheet = (InvoicesSheet)this.SheetByWorksheet[kvp.Key];
                }

                await invoicesSheet.Refresh().ConfigureAwait(false);

                invoicesSheet.Sheet.IsActive = true;
            }

            break;

            case "AddInvoiceSheet":
            {
                var wsCount = this.Services.Database.Count <Invoice>();

                var iWorksheet = this.ActiveWorksheet;

                var invoiceSheet = new InvoiceSheet(this, iWorksheet);

                this.SheetByWorksheet.Add(iWorksheet, invoiceSheet);

                await invoiceSheet.Refresh().ConfigureAwait(false);

                //invoiceSheet.Sheet.IsActive = true;
            }
            break;

            case "InsertPicture":
            {
                if (this.SheetByWorksheet.TryGetValue(this.ActiveWorksheet, out var iSheet))
                {
                    if (iSheet is DemoSheet demoSheet)
                    {
                        demoSheet.InsertPicture();
                    }
                }
            }
            break;

            case "SaveInvoiceSheet":
            {
                if (this.SheetByWorksheet.TryGetValue(this.ActiveWorksheet, out var iSheet))
                {
                    if (iSheet is InvoiceSheet invoiceSheet)
                    {
                        await invoiceSheet.Save();
                    }
                }

                foreach (ISheet sheet in this.SheetByWorksheet.Where(v => v.Value is InvoicesSheet).Select(v => v.Value))
                {
                    sheet.IsWorksheetUpToDate = false;
                }
            }
            break;

            case "SaveOrganisationsSheet":
            {
                if (this.SheetByWorksheet.TryGetValue(this.ActiveWorksheet, out var iSheet))
                {
                    if (iSheet is OrganisationsSheet organisationsSheet)
                    {
                        await organisationsSheet.Save();
                    }
                }

                foreach (ISheet sheet in this.SheetByWorksheet.Where(v => v.Value is OrganisationsSheet).Select(v => v.Value))
                {
                    sheet.IsWorksheetUpToDate = false;
                }
            }
            break;

            case "SaveAsPDFInvoiceSheet":
            {
                if (this.SheetByWorksheet.TryGetValue(this.ActiveWorksheet, out var iSheet))
                {
                    if (iSheet is InvoiceSheet invoiceSheet)
                    {
                        invoiceSheet.SaveAsPDF();
                    }
                }
            }
            break;

            case "OrganisationsSheet":
            {
                var kvp = this.SheetByWorksheet.FirstOrDefault(v => Equals(v.Key.Workbook, this.ActiveWorkbook) && v.Value is OrganisationsSheet);

                OrganisationsSheet organisationsSheet;

                if (kvp.Value == null)
                {
                    var iWorksheet = this.ActiveWorkbook.AddWorksheet(0);
                    iWorksheet.Name    = "Organisations";
                    organisationsSheet = new OrganisationsSheet(this, iWorksheet);

                    this.SheetByWorksheet.Add(iWorksheet, organisationsSheet);
                }
                else
                {
                    organisationsSheet = (OrganisationsSheet)this.SheetByWorksheet[kvp.Key];
                }

                await organisationsSheet.Refresh().ConfigureAwait(false);

                organisationsSheet.Sheet.IsActive = true;
            }

            break;

            case "PaymentTermsSheet":
            {
                var kvp = this.SheetByWorksheet.FirstOrDefault(v => Equals(v.Key.Workbook, this.ActiveWorkbook) && v.Value is PaymentTermsSheet);

                PaymentTermsSheet paymentTermsSheet;

                if (kvp.Value == null)
                {
                    var iWorksheet = this.ActiveWorkbook.AddWorksheet(0);
                    iWorksheet.Name   = KnownNames.PaymentTermsSheetName;
                    paymentTermsSheet = new PaymentTermsSheet(this, iWorksheet);

                    this.SheetByWorksheet.Add(iWorksheet, paymentTermsSheet);
                }
                else
                {
                    paymentTermsSheet = (PaymentTermsSheet)this.SheetByWorksheet[kvp.Key];
                }

                await paymentTermsSheet.Refresh().ConfigureAwait(false);

                paymentTermsSheet.Sheet.IsActive = true;
            }

            break;
            }
        }