Implemented database backups and restores into the AdvertisingProfitControlData DLL and added a form, DatabaseRecovery, to manage the backups and restores. Updated the installer to include the data DLL file into the install bundle.

This commit is contained in:
2017-06-23 03:12:51 -05:00
parent 308b60bd84
commit 12a6b36370
20 changed files with 5378 additions and 80 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ namespace AdvertsingProfitControl
{
InitializeComponent();
labelProductVerion.Text = $@"Advertising Profit Control Version: {Assembly.GetEntryAssembly().GetName().Version}";
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var version = db.Versions.SingleOrDefault(x => x.Id == 1);
databaseVersionLabel.Text = version == null ? @"Database Version: N/A" : $@"Database Version: {version.VersionNumber}";
reportGeneratingVersionLabel.Text = @"Report Generating Engine Version: " + ReportGenerator.Version;
@@ -127,6 +127,12 @@
</Compile>
<Compile Include="AdvertisingProfitControlTableHelper.cs" />
<Compile Include="ApplicationColors.cs" />
<Compile Include="DatabaseRecovery.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="DatabaseRecovery.Designer.cs">
<DependentUpon>DatabaseRecovery.cs</DependentUpon>
</Compile>
<Compile Include="FrmChangeShrink.cs">
<SubType>Form</SubType>
</Compile>
@@ -210,6 +216,9 @@
<EmbeddedResource Include="AboutBox.resx">
<DependentUpon>AboutBox.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="DatabaseRecovery.resx">
<DependentUpon>DatabaseRecovery.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FrmAddRecord.resx">
<DependentUpon>FrmAddRecord.cs</DependentUpon>
</EmbeddedResource>
+1 -1
View File
@@ -38,7 +38,7 @@ namespace AdvertsingProfitControl
/// <param name="writer"></param>
private void BuildReportBackPage(DateTime date, ref HtmlTextWriter writer)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var dateRecord = db.WeekEndingDates.SingleOrDefault(x => x.EndingDate == date);
var invoices = db.Invoices.Where(x => x.FkDateId == dateRecord.Id).ToList();
var weeklySale = db.WeeklySales.SingleOrDefault(x => x.FkDateId == dateRecord.Id);
+338
View File
@@ -0,0 +1,338 @@
namespace AdvertsingProfitControl
{
partial class DatabaseRecovery
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DatabaseRecovery));
this.mainLayoutPanel = new System.Windows.Forms.TableLayoutPanel();
this.backupGroupBox = new System.Windows.Forms.GroupBox();
this.backupOptionsPanel = new System.Windows.Forms.Panel();
this.backupResultLabel = new System.Windows.Forms.Label();
this.backupInformationLabel = new System.Windows.Forms.Label();
this.customBackupLocationSelectionButton = new System.Windows.Forms.Button();
this.customBackupLocationLabel = new System.Windows.Forms.Label();
this.customBackupLocationTextBox = new System.Windows.Forms.TextBox();
this.createBackupButton = new System.Windows.Forms.Button();
this.restoreGroupBox = new System.Windows.Forms.GroupBox();
this.restoreOptionsPanel = new System.Windows.Forms.Panel();
this.restoreResultLabel = new System.Windows.Forms.Label();
this.customRestoreLocationSelectionButton = new System.Windows.Forms.Button();
this.customRestoreLocationLabel = new System.Windows.Forms.Label();
this.restoreLocationTextBox = new System.Windows.Forms.TextBox();
this.restoreInfoLabel = new System.Windows.Forms.Label();
this.restoreBackupButton = new System.Windows.Forms.Button();
this.existingBackupsGroupBox = new System.Windows.Forms.GroupBox();
this.exisitingBackupsListView = new System.Windows.Forms.ListView();
this.listViewItemOptionsPanel = new System.Windows.Forms.Panel();
this.deleteBackupFileButton = new System.Windows.Forms.Button();
this.mainLayoutPanel.SuspendLayout();
this.backupGroupBox.SuspendLayout();
this.backupOptionsPanel.SuspendLayout();
this.restoreGroupBox.SuspendLayout();
this.restoreOptionsPanel.SuspendLayout();
this.existingBackupsGroupBox.SuspendLayout();
this.listViewItemOptionsPanel.SuspendLayout();
this.SuspendLayout();
//
// mainLayoutPanel
//
this.mainLayoutPanel.ColumnCount = 2;
this.mainLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.mainLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.mainLayoutPanel.Controls.Add(this.backupGroupBox, 0, 0);
this.mainLayoutPanel.Controls.Add(this.restoreGroupBox, 0, 2);
this.mainLayoutPanel.Controls.Add(this.existingBackupsGroupBox, 1, 0);
this.mainLayoutPanel.Controls.Add(this.listViewItemOptionsPanel, 1, 3);
this.mainLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.mainLayoutPanel.Location = new System.Drawing.Point(0, 0);
this.mainLayoutPanel.Name = "mainLayoutPanel";
this.mainLayoutPanel.RowCount = 4;
this.mainLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.mainLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F));
this.mainLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.mainLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F));
this.mainLayoutPanel.Size = new System.Drawing.Size(1048, 598);
this.mainLayoutPanel.TabIndex = 0;
//
// backupGroupBox
//
this.backupGroupBox.Controls.Add(this.backupOptionsPanel);
this.backupGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
this.backupGroupBox.Location = new System.Drawing.Point(3, 3);
this.backupGroupBox.Name = "backupGroupBox";
this.mainLayoutPanel.SetRowSpan(this.backupGroupBox, 2);
this.backupGroupBox.Size = new System.Drawing.Size(518, 293);
this.backupGroupBox.TabIndex = 0;
this.backupGroupBox.TabStop = false;
this.backupGroupBox.Text = "Backup Options";
//
// backupOptionsPanel
//
this.backupOptionsPanel.Controls.Add(this.backupResultLabel);
this.backupOptionsPanel.Controls.Add(this.backupInformationLabel);
this.backupOptionsPanel.Controls.Add(this.customBackupLocationSelectionButton);
this.backupOptionsPanel.Controls.Add(this.customBackupLocationLabel);
this.backupOptionsPanel.Controls.Add(this.customBackupLocationTextBox);
this.backupOptionsPanel.Controls.Add(this.createBackupButton);
this.backupOptionsPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.backupOptionsPanel.Location = new System.Drawing.Point(3, 25);
this.backupOptionsPanel.Name = "backupOptionsPanel";
this.backupOptionsPanel.Size = new System.Drawing.Size(512, 265);
this.backupOptionsPanel.TabIndex = 0;
//
// backupResultLabel
//
this.backupResultLabel.AutoSize = true;
this.backupResultLabel.Location = new System.Drawing.Point(10, 222);
this.backupResultLabel.Name = "backupResultLabel";
this.backupResultLabel.Size = new System.Drawing.Size(0, 25);
this.backupResultLabel.TabIndex = 5;
//
// backupInformationLabel
//
this.backupInformationLabel.AutoSize = true;
this.backupInformationLabel.Location = new System.Drawing.Point(10, 10);
this.backupInformationLabel.Name = "backupInformationLabel";
this.backupInformationLabel.Size = new System.Drawing.Size(499, 100);
this.backupInformationLabel.TabIndex = 4;
this.backupInformationLabel.Text = resources.GetString("backupInformationLabel.Text");
//
// customBackupLocationSelectionButton
//
this.customBackupLocationSelectionButton.Location = new System.Drawing.Point(470, 159);
this.customBackupLocationSelectionButton.Name = "customBackupLocationSelectionButton";
this.customBackupLocationSelectionButton.Size = new System.Drawing.Size(39, 29);
this.customBackupLocationSelectionButton.TabIndex = 3;
this.customBackupLocationSelectionButton.Text = "...";
this.customBackupLocationSelectionButton.UseVisualStyleBackColor = true;
this.customBackupLocationSelectionButton.Click += new System.EventHandler(this.UpdateCustomBackupLocationOnBackupLocationButtonClick);
//
// customBackupLocationLabel
//
this.customBackupLocationLabel.AutoSize = true;
this.customBackupLocationLabel.Location = new System.Drawing.Point(10, 131);
this.customBackupLocationLabel.Name = "customBackupLocationLabel";
this.customBackupLocationLabel.Size = new System.Drawing.Size(325, 25);
this.customBackupLocationLabel.TabIndex = 2;
this.customBackupLocationLabel.Text = "(Optional) Specify Backup Location:";
//
// customBackupLocationTextBox
//
this.customBackupLocationTextBox.Location = new System.Drawing.Point(15, 159);
this.customBackupLocationTextBox.Name = "customBackupLocationTextBox";
this.customBackupLocationTextBox.Size = new System.Drawing.Size(452, 29);
this.customBackupLocationTextBox.TabIndex = 1;
//
// createBackupButton
//
this.createBackupButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.createBackupButton.Location = new System.Drawing.Point(335, 215);
this.createBackupButton.Name = "createBackupButton";
this.createBackupButton.Size = new System.Drawing.Size(171, 39);
this.createBackupButton.TabIndex = 0;
this.createBackupButton.Text = "Create Backup";
this.createBackupButton.UseVisualStyleBackColor = true;
this.createBackupButton.Click += new System.EventHandler(this.CreateBackupOnButtonClick);
//
// restoreGroupBox
//
this.restoreGroupBox.Controls.Add(this.restoreOptionsPanel);
this.restoreGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
this.restoreGroupBox.Location = new System.Drawing.Point(3, 302);
this.restoreGroupBox.Name = "restoreGroupBox";
this.mainLayoutPanel.SetRowSpan(this.restoreGroupBox, 2);
this.restoreGroupBox.Size = new System.Drawing.Size(518, 293);
this.restoreGroupBox.TabIndex = 1;
this.restoreGroupBox.TabStop = false;
this.restoreGroupBox.Text = "Restore Options";
//
// restoreOptionsPanel
//
this.restoreOptionsPanel.Controls.Add(this.restoreResultLabel);
this.restoreOptionsPanel.Controls.Add(this.customRestoreLocationSelectionButton);
this.restoreOptionsPanel.Controls.Add(this.customRestoreLocationLabel);
this.restoreOptionsPanel.Controls.Add(this.restoreLocationTextBox);
this.restoreOptionsPanel.Controls.Add(this.restoreInfoLabel);
this.restoreOptionsPanel.Controls.Add(this.restoreBackupButton);
this.restoreOptionsPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.restoreOptionsPanel.Location = new System.Drawing.Point(3, 25);
this.restoreOptionsPanel.Name = "restoreOptionsPanel";
this.restoreOptionsPanel.Size = new System.Drawing.Size(512, 265);
this.restoreOptionsPanel.TabIndex = 0;
//
// restoreResultLabel
//
this.restoreResultLabel.AutoSize = true;
this.restoreResultLabel.Location = new System.Drawing.Point(10, 225);
this.restoreResultLabel.Name = "restoreResultLabel";
this.restoreResultLabel.Size = new System.Drawing.Size(0, 25);
this.restoreResultLabel.TabIndex = 7;
//
// customRestoreLocationSelectionButton
//
this.customRestoreLocationSelectionButton.Location = new System.Drawing.Point(465, 159);
this.customRestoreLocationSelectionButton.Name = "customRestoreLocationSelectionButton";
this.customRestoreLocationSelectionButton.Size = new System.Drawing.Size(39, 29);
this.customRestoreLocationSelectionButton.TabIndex = 6;
this.customRestoreLocationSelectionButton.Text = "...";
this.customRestoreLocationSelectionButton.UseVisualStyleBackColor = true;
this.customRestoreLocationSelectionButton.Click += new System.EventHandler(this.UpdateRestoreLocationOnCustomBackupLocationButtonClick);
//
// customRestoreLocationLabel
//
this.customRestoreLocationLabel.AutoSize = true;
this.customRestoreLocationLabel.Location = new System.Drawing.Point(10, 131);
this.customRestoreLocationLabel.Name = "customRestoreLocationLabel";
this.customRestoreLocationLabel.Size = new System.Drawing.Size(163, 25);
this.customRestoreLocationLabel.TabIndex = 5;
this.customRestoreLocationLabel.Text = "Backup Location:";
//
// restoreLocationTextBox
//
this.restoreLocationTextBox.Location = new System.Drawing.Point(15, 159);
this.restoreLocationTextBox.Name = "restoreLocationTextBox";
this.restoreLocationTextBox.Size = new System.Drawing.Size(447, 29);
this.restoreLocationTextBox.TabIndex = 4;
//
// restoreInfoLabel
//
this.restoreInfoLabel.AutoSize = true;
this.restoreInfoLabel.Location = new System.Drawing.Point(15, 4);
this.restoreInfoLabel.Name = "restoreInfoLabel";
this.restoreInfoLabel.Size = new System.Drawing.Size(426, 100);
this.restoreInfoLabel.TabIndex = 1;
this.restoreInfoLabel.Text = "To restore the database from a previous backup\r\neither select one from the list t" +
"o the right or\r\nspecify a location below if the database backup \r\nis not in a de" +
"fault location (like a flashdrive).";
//
// restoreBackupButton
//
this.restoreBackupButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.restoreBackupButton.Enabled = false;
this.restoreBackupButton.Location = new System.Drawing.Point(338, 220);
this.restoreBackupButton.Name = "restoreBackupButton";
this.restoreBackupButton.Size = new System.Drawing.Size(168, 35);
this.restoreBackupButton.TabIndex = 0;
this.restoreBackupButton.Text = "Restore Backup";
this.restoreBackupButton.UseVisualStyleBackColor = true;
this.restoreBackupButton.Click += new System.EventHandler(this.RestoreSelectedBackupOnBackupRestoreButtonClick);
//
// existingBackupsGroupBox
//
this.existingBackupsGroupBox.Controls.Add(this.exisitingBackupsListView);
this.existingBackupsGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
this.existingBackupsGroupBox.Location = new System.Drawing.Point(527, 3);
this.existingBackupsGroupBox.Name = "existingBackupsGroupBox";
this.mainLayoutPanel.SetRowSpan(this.existingBackupsGroupBox, 3);
this.existingBackupsGroupBox.Size = new System.Drawing.Size(518, 542);
this.existingBackupsGroupBox.TabIndex = 2;
this.existingBackupsGroupBox.TabStop = false;
this.existingBackupsGroupBox.Text = "Existing Backups";
//
// exisitingBackupsListView
//
this.exisitingBackupsListView.Dock = System.Windows.Forms.DockStyle.Fill;
this.exisitingBackupsListView.Location = new System.Drawing.Point(3, 25);
this.exisitingBackupsListView.MultiSelect = false;
this.exisitingBackupsListView.Name = "exisitingBackupsListView";
this.exisitingBackupsListView.Size = new System.Drawing.Size(512, 514);
this.exisitingBackupsListView.TabIndex = 0;
this.exisitingBackupsListView.UseCompatibleStateImageBehavior = false;
this.exisitingBackupsListView.View = System.Windows.Forms.View.Details;
//
// listViewItemOptionsPanel
//
this.listViewItemOptionsPanel.Controls.Add(this.deleteBackupFileButton);
this.listViewItemOptionsPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.listViewItemOptionsPanel.Location = new System.Drawing.Point(527, 551);
this.listViewItemOptionsPanel.Name = "listViewItemOptionsPanel";
this.listViewItemOptionsPanel.Size = new System.Drawing.Size(518, 44);
this.listViewItemOptionsPanel.TabIndex = 3;
//
// deleteBackupFileButton
//
this.deleteBackupFileButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.deleteBackupFileButton.Enabled = false;
this.deleteBackupFileButton.Location = new System.Drawing.Point(276, 3);
this.deleteBackupFileButton.Name = "deleteBackupFileButton";
this.deleteBackupFileButton.Size = new System.Drawing.Size(239, 38);
this.deleteBackupFileButton.TabIndex = 0;
this.deleteBackupFileButton.Text = "Delete Selected Backup";
this.deleteBackupFileButton.UseVisualStyleBackColor = true;
this.deleteBackupFileButton.Click += new System.EventHandler(this.deleteBackupFileButton_Click);
//
// DatabaseRecovery
//
this.AutoScaleDimensions = new System.Drawing.SizeF(11F, 24F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1048, 598);
this.Controls.Add(this.mainLayoutPanel);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.Name = "DatabaseRecovery";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Database Backup and Recovery";
this.mainLayoutPanel.ResumeLayout(false);
this.backupGroupBox.ResumeLayout(false);
this.backupOptionsPanel.ResumeLayout(false);
this.backupOptionsPanel.PerformLayout();
this.restoreGroupBox.ResumeLayout(false);
this.restoreOptionsPanel.ResumeLayout(false);
this.restoreOptionsPanel.PerformLayout();
this.existingBackupsGroupBox.ResumeLayout(false);
this.listViewItemOptionsPanel.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.TableLayoutPanel mainLayoutPanel;
private System.Windows.Forms.GroupBox backupGroupBox;
private System.Windows.Forms.GroupBox restoreGroupBox;
private System.Windows.Forms.GroupBox existingBackupsGroupBox;
private System.Windows.Forms.Panel backupOptionsPanel;
private System.Windows.Forms.Button createBackupButton;
private System.Windows.Forms.Panel restoreOptionsPanel;
private System.Windows.Forms.Button restoreBackupButton;
private System.Windows.Forms.Button customBackupLocationSelectionButton;
private System.Windows.Forms.Label customBackupLocationLabel;
private System.Windows.Forms.TextBox customBackupLocationTextBox;
private System.Windows.Forms.Label backupInformationLabel;
private System.Windows.Forms.Label backupResultLabel;
private System.Windows.Forms.Label restoreInfoLabel;
private System.Windows.Forms.Button customRestoreLocationSelectionButton;
private System.Windows.Forms.Label customRestoreLocationLabel;
private System.Windows.Forms.TextBox restoreLocationTextBox;
private System.Windows.Forms.Label restoreResultLabel;
private System.Windows.Forms.ListView exisitingBackupsListView;
private System.Windows.Forms.Panel listViewItemOptionsPanel;
private System.Windows.Forms.Button deleteBackupFileButton;
}
}
+176
View File
@@ -0,0 +1,176 @@
using System;
using System.IO;
using System.Windows.Forms;
using AdvertisingProfitControlData;
namespace AdvertsingProfitControl
{
public partial class DatabaseRecovery : Form
{
public bool RestoredDatabase;
public DatabaseRecovery()
{
InitializeComponent();
exisitingBackupsListView.ItemSelectionChanged += UpdateRestoreLocationTextBoxOnItemSelectionChange;
restoreLocationTextBox.TextChanged += UpdateRestoreButtonOnRestoreLocationTextChange;
//Grab the list of backups and fill the list box.
var headerColumn = new ColumnHeader
{
Width = exisitingBackupsListView.Width - 10,
TextAlign = HorizontalAlignment.Center
};
exisitingBackupsListView.Columns.Add(headerColumn);
UpdateBackupList();
}
private void UpdateRestoreButtonOnRestoreLocationTextChange(object sender, EventArgs e)
{
restoreBackupButton.Enabled = restoreLocationTextBox.Text.Length != 0;
}
private void UpdateRestoreLocationTextBoxOnItemSelectionChange(object sender, ListViewItemSelectionChangedEventArgs e)
{
//Update the restore location text box when an item is selected.
restoreLocationTextBox.Text = ((FileInfo) e.Item.Tag).FullName;
deleteBackupFileButton.Enabled = true;
}
private void UpdateBackupList()
{
var backup = new Backup();
var fileList = backup.GetSingleFileBackupFilesList();
exisitingBackupsListView.Items.Clear();
if (fileList.Count > 0)
{
foreach (var file in fileList)
{
var item = new ListViewItem
{
Text = file.Name,
Tag = file
};
exisitingBackupsListView.Items.Add(item);
}
exisitingBackupsListView.Columns[0].Text = @"Current Backups";
}
else
{
exisitingBackupsListView.Columns[0].Text = @"No Backups Exist";
}
}
private void CreateBackupOnButtonClick(object sender, EventArgs e)
{
var backup = new Backup();
var customBackupLocation = string.Empty;
if (!string.IsNullOrWhiteSpace(customBackupLocationTextBox.Text))
{
//Check to see if the folder selected or typed exists.
var folder = new DirectoryInfo(customBackupLocationTextBox.Text);
if (folder.Exists)
{
customBackupLocation = customBackupLocationTextBox.Text;
}
else
{
MessageBox.Show(
@"The selected backup folder doesn't exist. Please choose a different folder to store the backup.",
@"Backup Folder Location Invalid", MessageBoxButtons.OK, MessageBoxIcon.Error);
backupResultLabel.Text = @"Custom backup location invalid.";
return;
}
}
if (backup.SingleFileBackup(customBackupLocation))
{
backupResultLabel.Text = @"Successfully created backup(s).";
customBackupLocationTextBox.Text = string.Empty;
}
else
{
MessageBox.Show(backup.ErrorMessage, @"Failed to Create Backup", MessageBoxButtons.OK, MessageBoxIcon.Error);
backupResultLabel.Text = @"Failed to create backup(s).";
}
UpdateBackupList();
}
private void UpdateCustomBackupLocationOnBackupLocationButtonClick(object sender, EventArgs e)
{
var dialog = new FolderBrowserDialog {Description = @"Select a folder to place the backup file into."};
dialog.ShowDialog();
if (dialog.SelectedPath != string.Empty)
{
customBackupLocationTextBox.Text = dialog.SelectedPath;
}
}
private void UpdateRestoreLocationOnCustomBackupLocationButtonClick(object sender, EventArgs e)
{
var dialog = new OpenFileDialog
{
Multiselect = false,
Filter = @"Backup Files | *." + Backup.DefaultBackupExtension,
Title = @"Select your backup file to restore from."
};
dialog.ShowDialog();
restoreLocationTextBox.Text = dialog.FileName;
}
private void RestoreSelectedBackupOnBackupRestoreButtonClick(object sender, EventArgs e)
{
var restore = new Restore();
//Check for the file's existence before proceeding.
if (!File.Exists(restoreLocationTextBox.Text))
{
MessageBox.Show(@"Database backup file could not be found at the location" + Environment.NewLine + @"'" + restoreLocationTextBox.Text + @"'.", @"Database Backup File Not Found", MessageBoxButtons.OK, MessageBoxIcon.Error);
restoreInfoLabel.Text = @"Restore file location invalid.";
return;
}
if (restore.SingleFileRestore(restoreLocationTextBox.Text))
{
restoreResultLabel.Text = @"Successfully restored the database.";
restoreLocationTextBox.Text = string.Empty;
RestoredDatabase = true;
}
else
{
MessageBox.Show(restore.ErrorMessage, @"Failed to Restore Backup", MessageBoxButtons.OK, MessageBoxIcon.Error);
restoreInfoLabel.Text = @"Failed to restore the database.";
}
}
private void deleteBackupFileButton_Click(object sender, EventArgs e)
{
if (exisitingBackupsListView.SelectedItems.Count == 0)
{
deleteBackupFileButton.Enabled = false;
return;
}
var selectedItem = exisitingBackupsListView.SelectedItems[0];
var fileInfo = (FileInfo) selectedItem.Tag;
try
{
File.Delete(fileInfo.FullName);
restoreLocationTextBox.Text = string.Empty;
deleteBackupFileButton.Enabled = false;
}
catch (IOException exception)
{
MessageBox.Show(exception.Message, @"Failed to Delete File " + fileInfo.Name, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
UpdateBackupList();
}
}
}
File diff suppressed because it is too large Load Diff
+17 -1
View File
@@ -1,5 +1,8 @@
using System;
using System.Data.SqlClient;
using System.IO;
using System.Security.AccessControl;
using System.Security.Principal;
using System.Windows.Forms;
using AdvertisingProfitControlData;
using Microsoft.Win32;
@@ -13,6 +16,19 @@ namespace AdvertsingProfitControl
public FrmLoginForm()
{
InitializeComponent();
//Check to see if the backup folder exists.
if (!Directory.Exists(Backup.DefaultBackupLocation))
{
Directory.CreateDirectory(Backup.DefaultBackupLocation);
//Create it and set its permissions so SQL can write to it.
//Reference: https://stackoverflow.com/questions/5298905/add-everyone-privilege-to-folder-using-c-net
var sec = Directory.GetAccessControl(Backup.DefaultBackupLocation);
// Using this instead of the "Everyone" string means we work on non-English systems.
var everyone = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
sec.AddAccessRule(new FileSystemAccessRule(everyone, FileSystemRights.Modify | FileSystemRights.Synchronize, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow));
Directory.SetAccessControl(Backup.DefaultBackupLocation, sec);
}
//Scan the registry for SQL server instances (not the recommended way).
var registryView = Environment.Is64BitOperatingSystem ? RegistryView.Registry64 : RegistryView.Registry32;
using (var hklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, registryView))
{
@@ -57,7 +73,7 @@ namespace AdvertsingProfitControl
}
ConnectionSuccessful = true;
//Try to initialize the database.
var db = new AdvertisingProfitControlModel(connectionString);
var db = new AdvertisingProfitControlDbContext(connectionString);
//Force the UI thread to draw the label's text so the user can see it.
informationLabel.Text = @"Connection successful! Preparing main form...";
informationLabel.Invalidate();
+17 -7
View File
@@ -37,6 +37,7 @@
this.addRecordsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.modifyRecordMainMenu = new System.Windows.Forms.ToolStripMenuItem();
this.reportsMainMenu = new System.Windows.Forms.ToolStripMenuItem();
this.generateReportMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolsMainMenu = new System.Windows.Forms.ToolStripMenuItem();
this.clearRecordToolsMainMenu = new System.Windows.Forms.ToolStripMenuItem();
@@ -111,7 +112,7 @@
this.grossProfitEstimatedWeeklyDeptmartmentExpenseLabel = new System.Windows.Forms.Label();
this.perfectGrossProfitLabel = new System.Windows.Forms.Label();
this.grossProfitDollarGrossProfitLabel = new System.Windows.Forms.Label();
this.generateReportMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.backupRestoreToolsMainMenu = new System.Windows.Forms.ToolStripMenuItem();
this.mainMenu.SuspendLayout();
this.mainTableLayoutPanel.SuspendLayout();
this.commentMainTableLayoutPanel.SuspendLayout();
@@ -176,7 +177,7 @@
// exitFileMainMenu
//
this.exitFileMainMenu.Name = "exitFileMainMenu";
this.exitFileMainMenu.Size = new System.Drawing.Size(138, 34);
this.exitFileMainMenu.Size = new System.Drawing.Size(240, 34);
this.exitFileMainMenu.Text = "E&xit";
this.exitFileMainMenu.Click += new System.EventHandler(this.ExitProgram);
//
@@ -212,6 +213,13 @@
this.reportsMainMenu.Size = new System.Drawing.Size(95, 34);
this.reportsMainMenu.Text = "R&eports";
//
// generateReportMenuItem
//
this.generateReportMenuItem.Name = "generateReportMenuItem";
this.generateReportMenuItem.Size = new System.Drawing.Size(256, 34);
this.generateReportMenuItem.Text = "&Generate Report";
this.generateReportMenuItem.Click += new System.EventHandler(this.GenerateReportMenuItemClick);
//
// settingsToolStripMenuItem
//
this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem";
@@ -222,6 +230,7 @@
// toolsMainMenu
//
this.toolsMainMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.backupRestoreToolsMainMenu,
this.clearRecordToolsMainMenu,
this.manageItemsToolsMainMenu,
this.manageSuppliersToolsMainMenu,
@@ -1008,12 +1017,12 @@
this.grossProfitDollarGrossProfitLabel.TabIndex = 2;
this.grossProfitDollarGrossProfitLabel.Text = "Dollar Gross Profit: ";
//
// generateReportMenuItem
// backupRestoreToolsMainMenu
//
this.generateReportMenuItem.Name = "generateReportMenuItem";
this.generateReportMenuItem.Size = new System.Drawing.Size(256, 34);
this.generateReportMenuItem.Text = "&Generate Report";
this.generateReportMenuItem.Click += new System.EventHandler(this.GenerateReportMenuItemClick);
this.backupRestoreToolsMainMenu.Name = "backupRestoreToolsMainMenu";
this.backupRestoreToolsMainMenu.Size = new System.Drawing.Size(282, 34);
this.backupRestoreToolsMainMenu.Text = "&Database Backup";
this.backupRestoreToolsMainMenu.Click += new System.EventHandler(this.DisplayDatabaseRecoveryFormOnBackupRestoreClick);
//
// FrmMain
//
@@ -1146,6 +1155,7 @@
private System.Windows.Forms.ToolStripMenuItem testToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem settingsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem generateReportMenuItem;
private System.Windows.Forms.ToolStripMenuItem backupRestoreToolsMainMenu;
}
}
+36 -24
View File
@@ -27,7 +27,7 @@ namespace AdvertsingProfitControl
private void frmMain_Load(object sender, EventArgs e)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
RefreshDateListing();
ConstructApcDataGridViews();
ConstructInvoicesDataGridView();
@@ -136,7 +136,7 @@ namespace AdvertsingProfitControl
private void DisplayNewRecordForm(object sender, EventArgs e)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var form = new NewModifyRecord();
form.ShowDialog();
//One the user has closed the add record form, check to see if there is a newer date
@@ -157,6 +157,19 @@ namespace AdvertsingProfitControl
LoadDate(_currentActiveDate);
}
private void DisplayDatabaseRecoveryFormOnBackupRestoreClick(object sender, EventArgs e)
{
var form = new DatabaseRecovery();
form.ShowDialog();
if (!form.RestoredDatabase) return;
//If a database restore operation occurred then load the most recent date.
var db = new AdvertisingProfitControlDbContext();
var recentDate = db.WeekEndingDates.OrderByDescending(x => x.EndingDate).FirstOrDefault();
if (recentDate == null) return;
_currentActiveDate = recentDate.EndingDate;
LoadDate(recentDate.EndingDate);
}
private void ClearCurrentRecord(object sender, EventArgs e)
{
var result = MessageBox.Show(@"Are you sure you want to delete all records for the date " + _currentActiveDate.ToShortDateString() + @"?", @"Clear Date", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
@@ -165,7 +178,7 @@ namespace AdvertsingProfitControl
return;
}
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var dateRecord = db.WeekEndingDates.Single(x => x.EndingDate == _currentActiveDate);
var projections = db.Projections.Where(x => x.WeekEndingDate.EndingDate == dateRecord.EndingDate);
var inventories = db.Inventories.Where(x => x.WeekEndingDate.EndingDate == dateRecord.EndingDate);
@@ -242,7 +255,6 @@ namespace AdvertsingProfitControl
adItemManager.ShowDialog();
}
private void manageSuppliersToolsMainMenu_Click(object sender, EventArgs e)
{
var form = new FrmManageSuppliers();
@@ -447,7 +459,7 @@ namespace AdvertsingProfitControl
private void LoadDate(DateTime date)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
//Check to see if that date record can be found before clearing the form.
var dateRecord = db.WeekEndingDates.SingleOrDefault(x => x.EndingDate == date);
if (dateRecord == null)
@@ -478,7 +490,7 @@ namespace AdvertsingProfitControl
private void LoadProjectionsTable(WeekEndingDate dateRecord)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var adSpecialIndex = -1;
decimal totalSales = 0;
decimal totalProfitReturn = 0;
@@ -538,7 +550,7 @@ namespace AdvertsingProfitControl
private void LoadInventoryTable(WeekEndingDate dateRecord)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var adSpecialIndex = -1;
var inventories = db.Inventories.Where(x => x.WeekEndingDate.Id == dateRecord.Id).Select(x => x).OrderBy(x => x.RowPosition);
@@ -570,7 +582,7 @@ namespace AdvertsingProfitControl
private void LoadActualSalesTable(WeekEndingDate dateRecord)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var adSpecialIndex = -1;
decimal totalSales = 0;
decimal totalProfitReturn = 0;
@@ -630,7 +642,7 @@ namespace AdvertsingProfitControl
private void LoadInvoices(WeekEndingDate dateRecord)
{
_totalInvoicePurchases = 0;
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var invoices = db.Invoices.Where(x => x.WeekEndingDate.Id == dateRecord.Id).Select(x => x);
foreach (var invoice in invoices)
@@ -660,7 +672,7 @@ namespace AdvertsingProfitControl
{
//Clear the department sales and prepare to add up a total.
_departmentSales = 0;
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var weeklySales = db.WeeklySales.Where(x => x.WeekEndingDate.Id == dateRecord.Id).Select(x => x);
foreach (var sale in weeklySales)
{
@@ -719,7 +731,7 @@ namespace AdvertsingProfitControl
private void LoadTaxable(WeekEndingDate dateRecord)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var taxables = db.Taxables.Where(x => x.WeekEndingDate.Id == dateRecord.Id).Select(x => x);
foreach (var taxable in taxables)
{
@@ -750,7 +762,7 @@ namespace AdvertsingProfitControl
private void LoadCostAnalysis(WeekEndingDate dateRecord)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var analysis = db.CostAnalysis.Where(x => x.WeekEndingDate.Id == dateRecord.Id).Select(x => x);
foreach (var a in analysis)
{
@@ -870,7 +882,7 @@ namespace AdvertsingProfitControl
private void RefreshDateListing()
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
monthCalendar.BoldedDates = db.WeekEndingDates.Select(zdate => zdate.EndingDate).ToArray();
if (monthCalendar.BoldedDates.Length > 0)
{
@@ -931,7 +943,7 @@ namespace AdvertsingProfitControl
{
var result = MessageBox.Show(@"Are you sure you want to remove all records for the year of " + _currentActiveDate.Year + @"? This cannot be undone!", @"Clear " + _currentActiveDate.Year + @"'s Records", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);
if (result != DialogResult.Yes) return;
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var distinctYears = db.WeekEndingDates.Select(x => x.EndingDate.Year).Distinct().ToArray();
if (distinctYears.Length == 1)
{
@@ -953,7 +965,7 @@ namespace AdvertsingProfitControl
private bool ClearSelectedDate(int year)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var status = true;
using (var scope = new TransactionScope())
@@ -988,7 +1000,7 @@ namespace AdvertsingProfitControl
private void ClearProjectionRecords(WeekEndingDate dateRecord)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
using (var scope = new TransactionScope())
{
@@ -1001,7 +1013,7 @@ namespace AdvertsingProfitControl
private void ClearInventoyRecords(WeekEndingDate dateRecord)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
using (var scope = new TransactionScope())
{
@@ -1014,7 +1026,7 @@ namespace AdvertsingProfitControl
private void ClearActualSalesRecords(WeekEndingDate dateRecord)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
using (var scope = new TransactionScope())
{
@@ -1027,7 +1039,7 @@ namespace AdvertsingProfitControl
private void ClearInvoices(WeekEndingDate dateRecord)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
using (var scope = new TransactionScope())
{
@@ -1040,7 +1052,7 @@ namespace AdvertsingProfitControl
private void ClearWeeklySales(WeekEndingDate dateRecord)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
using (var scope = new TransactionScope())
{
@@ -1053,7 +1065,7 @@ namespace AdvertsingProfitControl
private void ClearTaxableRecords(WeekEndingDate dateRecord)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
using (var scope = new TransactionScope())
{
@@ -1066,7 +1078,7 @@ namespace AdvertsingProfitControl
private void ClearCostAnalysisRecords(WeekEndingDate dateRecord)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
using (var scope = new TransactionScope())
{
@@ -1079,7 +1091,7 @@ namespace AdvertsingProfitControl
private void ClearCommentsRecords(WeekEndingDate dateRecord)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
using (var scope = new TransactionScope())
{
@@ -1109,7 +1121,7 @@ namespace AdvertsingProfitControl
private void testToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show(@"Nothing to debug here!", @"Debug Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
+4 -4
View File
@@ -30,7 +30,7 @@ namespace AdvertsingProfitControl
if(filterComboBox.Enabled == false) return;
adItemsListView.Columns[0].Text = @"Current Ad Items (" + (filterComboBox.SelectedItem.ToString() == "All" ? "No Filter" : @"Filter " + filterComboBox.SelectedItem) + @"):";
adItemsListView.Items.Clear();
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var adItems = db.AdItems.Select(x => x);
foreach (var adItem in adItems)
{
@@ -92,7 +92,7 @@ namespace AdvertsingProfitControl
adItemsListView.Items.Clear();
filterComboBox.Items.Clear();
filterComboBox.Items.Add("All");
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var adItems = db.AdItems.Select(x => x).OrderBy(x => x.Name);
var adItemCount = 0;
var numberFound = false;
@@ -153,7 +153,7 @@ namespace AdvertsingProfitControl
{
var item = adItemsListView.SelectedItems[0];
var oldAdItem = (AdItem)item.Tag;
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var adItemEntry = db.AdItems.Single(x => x.Id == oldAdItem.Id);
//Check to see if the ad special is used by other tables.
if (adItemEntry.ActualSales.Count > 0)
@@ -208,7 +208,7 @@ namespace AdvertsingProfitControl
private void AddUpdateItem(object sender, EventArgs e)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
if (!_isUpdating)
{
if (!db.AdItems.Any(x => x.Name == newItemTextBox.Text))
@@ -50,7 +50,7 @@ namespace AdvertsingProfitControl
private void RefreshSupplierListing()
{
suppliersListBox.Items.Clear();
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var suppliers = db.Suppliers.Select(x => x).OrderBy(x => x.Name);
var supplierCount = 0;
foreach (var supplier in suppliers)
@@ -72,7 +72,7 @@ namespace AdvertsingProfitControl
private void registerSupplierButton_Click(object sender, EventArgs e)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
if (!_isUpdating)
{
if (!db.Suppliers.Any(x => x.Name == newSupplierTextBox.Text))
@@ -123,7 +123,7 @@ namespace AdvertsingProfitControl
{
var item = suppliersListBox.SelectedItems[0];
var oldSupplier = (Supplier)item.Tag;
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var supplier = db.Suppliers.Single(x => x.Id == oldSupplier.Id);
//Check to see if the ad special is used by other tables.
if (supplier.Invoices.Count > 0)
@@ -50,7 +50,7 @@ namespace AdvertsingProfitControl
private void RegisterNewAdSpecial(object sender, EventArgs e)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
if (!_isUpdating)
{
if (!db.AdSpecials.Any(x => x.Name == newAdSpecialTextBox.Text))
@@ -100,7 +100,7 @@ namespace AdvertsingProfitControl
private void RefreshAdSpecialListing()
{
adSpecialsListBox.Items.Clear();
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var adSpecials = db.AdSpecials.Select(x => x).OrderBy(x => x.Name);
foreach (var adSpecial in adSpecials)
{
@@ -120,7 +120,7 @@ namespace AdvertsingProfitControl
{
var item = adSpecialsListBox.SelectedItems[0];
var adSpecial = (AdSpecial) item.Tag;
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var ad = db.AdSpecials.Single(x => x.Id == adSpecial.Id);
//Check to see if the ad special is used by other tables.
if (ad.ActualSales.Count > 0)
@@ -39,7 +39,7 @@ namespace AdvertsingProfitControl
/// <param name="writer"></param>
private void BuildReportFrontPage(DateTime date, ref HtmlTextWriter writer)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var dateRecord = db.WeekEndingDates.SingleOrDefault(x => x.EndingDate == date);
if (dateRecord == null)
{
+24 -24
View File
@@ -61,7 +61,7 @@ namespace AdvertsingProfitControl
public NewModifyRecord()
{
InitializeComponent();
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
//Check to see if there are dates in the database.
if (db.WeekEndingDates.Any())
{
@@ -85,7 +85,7 @@ namespace AdvertsingProfitControl
public void InitializeForm()
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
weekEndingCalendar.BoldedDates = db.WeekEndingDates.Select(zdate => zdate.EndingDate).ToArray();
weekEndingCalendar.DateChanged += ValidateDateChanged;
//next pull all the ad items into memory.
@@ -2737,7 +2737,7 @@ namespace AdvertsingProfitControl
private void LoadDate(DateTime date)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var dateRecord = db.WeekEndingDates.SingleOrDefault(x => x.EndingDate == date);
if (dateRecord == null)
{
@@ -2765,7 +2765,7 @@ namespace AdvertsingProfitControl
projectionsDataGridView.CellValidating -= ValidateSalesDataGridViewCellContents;
projectionsDataGridView.RowValidating -= ValidateProjectedRow;
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var adSpecialIndex = -1;
var projections = db.Projections.Where(x => x.WeekEndingDate.Id == dateRecord.Id).Select(x => x).OrderBy(x => x.RowPosition);
var index = 0;
@@ -2831,7 +2831,7 @@ namespace AdvertsingProfitControl
inventoryDataGridView.CellValidating -= ValidateInventoryCellContents;
inventoryDataGridView.RowValidating -= ValidateInventoryRow;
//Create a local ad special index since Projections should have filled the ad special index in for the class.
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var adSpecialIndex = -1;
var inventories = db.Inventories.Where(x => x.WeekEndingDate.Id == dateRecord.Id).Select(x => x).OrderBy(x => x.RowPosition);
var index = 0;
@@ -2893,7 +2893,7 @@ namespace AdvertsingProfitControl
actualSalesDataGridView.CellValidating -= ValidateSalesDataGridViewCellContents;
actualSalesDataGridView.RowValidating -= ValidateActualSalesRow;
//Create a local ad special index since Projections should have filled the ad special index in for the class.
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var adSpecialIndex = -1;
var actualSales = db.ActualSales.Where(x => x.WeekEndingDate.Id == dateRecord.Id).Select(x => x).OrderBy(x => x.RowPosition);
var index = 0;
@@ -2950,7 +2950,7 @@ namespace AdvertsingProfitControl
private void LoadInvoices(WeekEndingDate dateRecord)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var invoices = db.Invoices.Where(x => x.WeekEndingDate.Id == dateRecord.Id).Select(x => x);
var index = 0;
foreach (var invoice in invoices)
@@ -2973,7 +2973,7 @@ namespace AdvertsingProfitControl
commentsTextBox.Enter -= StoreBeginningTextBoxValue;
commentsTextBox.KeyDown -= CheckForKeyCommand;
commentsTextBox.Leave -= CheckForTextChangeOnLeave;
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var comments = db.Notes.SingleOrDefault(x => x.FkDateId == dateRecord.Id);
if (comments != null)
{
@@ -3011,7 +3011,7 @@ namespace AdvertsingProfitControl
totalWeeklySalesTextBox.Enter -= StoreBeginningTextBoxValue;
totalWeeklySalesTextBox.Validating -= ValidateWeeklySales;
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var weeklySale = db.WeeklySales.SingleOrDefault(x => x.FkDateId == dateRecord.Id);
if (weeklySale == null)
{
@@ -3068,7 +3068,7 @@ namespace AdvertsingProfitControl
saturdayTaxableTextBox.Validating -= ValidateTaxableFields;
totalTaxableTextBox.Enter -= StoreBeginningTextBoxValue;
totalTaxableTextBox.Validating -= ValidateTaxableFields;
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var taxable = db.Taxables.SingleOrDefault(x => x.FkDateId == dateRecord.Id);
if (taxable == null)
{
@@ -3117,7 +3117,7 @@ namespace AdvertsingProfitControl
suppliesTextBox.Enter -= StoreBeginningTextBoxValue;
suppliesTextBox.Validating -= ValidateCostAnalysisValues;
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var costAnalysis = db.CostAnalysis.SingleOrDefault(x => x.FkDateId == dateRecord.Id);
if (costAnalysis == null)
{
@@ -3154,7 +3154,7 @@ namespace AdvertsingProfitControl
private bool SaveRecords()
{
var success = true;
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
//Get the date ID for the current active date.
if (_currentActiveDate.DayOfWeek != DayOfWeek.Saturday)
{
@@ -3303,7 +3303,7 @@ namespace AdvertsingProfitControl
private void SaveProjections(WeekEndingDate date)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var lastRow = -1;
using (var scope = new TransactionScope())
{
@@ -3482,7 +3482,7 @@ namespace AdvertsingProfitControl
private void SaveInventory(WeekEndingDate date)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var lastRow = -1;
using (var scope = new TransactionScope())
{
@@ -3623,7 +3623,7 @@ namespace AdvertsingProfitControl
private void SaveActualSales(WeekEndingDate date)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var lastRow = -1;
using (var scope = new TransactionScope())
{
@@ -3804,7 +3804,7 @@ namespace AdvertsingProfitControl
private void SaveInvoices(WeekEndingDate date)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var lastRow = -1;
using (var scope = new TransactionScope())
{
@@ -3936,7 +3936,7 @@ namespace AdvertsingProfitControl
informationLabel.Text += @"No changes detected to Weekly Sales." + Environment.NewLine;
return;
}
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
using (var scope = new TransactionScope())
{
try
@@ -4011,7 +4011,7 @@ namespace AdvertsingProfitControl
informationLabel.Text += @"No changes detected to Taxable." + Environment.NewLine;
return;
}
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
using (var scope = new TransactionScope())
{
try
@@ -4086,7 +4086,7 @@ namespace AdvertsingProfitControl
informationLabel.Text += @"No changes detected to Cost Analysis." + Environment.NewLine;
return;
}
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
using (var scope = new TransactionScope())
{
try
@@ -4153,7 +4153,7 @@ namespace AdvertsingProfitControl
informationLabel.Text += @"No changes detected for Comments." + Environment.NewLine;
return;
}
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
using (var scope = new TransactionScope())
{
try
@@ -4209,7 +4209,7 @@ namespace AdvertsingProfitControl
private static AdSpecial GetAdSpecial(string adSpecialText)
{
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var adSpecial = new AdSpecial();
//An ad special does exist so grab its ID from the database.
if (db.AdSpecials.Any(x => x.Name == adSpecialText))
@@ -4227,7 +4227,7 @@ namespace AdvertsingProfitControl
private static bool DeleteApcRow(int projectionId, int inventoryId, int actualSalesId)
{
var result = true;
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
using (var scope = new TransactionScope())
{
try
@@ -4263,7 +4263,7 @@ namespace AdvertsingProfitControl
private static bool DeleteInvoiceRow(int invoiceId)
{
var result = true;
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
using (var scope = new TransactionScope())
{
try
@@ -4325,7 +4325,7 @@ namespace AdvertsingProfitControl
ClearFormState();
addRecordButton.Text = @"Add Record";
var db = new AdvertisingProfitControlModel();
var db = new AdvertisingProfitControlDbContext();
var recentDate = db.WeekEndingDates.OrderByDescending(x => x.EndingDate).FirstOrDefault(x => x.EndingDate.Year == _currentActiveDate.Year);
if (recentDate == null)
{
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.5.1.1")]
[assembly: AssemblyFileVersion("2.5.1.1")]
[assembly: AssemblyVersion("3.0.0.0")]
[assembly: AssemblyFileVersion("3.0.0.0")]