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(); }
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; } }