public FormEditProgramActivity(CoreObjects.ProgramActivity programActivity)
        {
            InitializeComponent();

            _programActivity = programActivity;

            textEditMovieTitle.MouseUp += new MouseEventHandler(FormMain.Instance.Editor_MouseUp);
            textEditMovieTitle.MouseDown += new MouseEventHandler(FormMain.Instance.Editor_MouseDown);
            textEditMovieTitle.Enter += new EventHandler(FormMain.Instance.Editor_Enter);
            textEditName.MouseUp += new MouseEventHandler(FormMain.Instance.Editor_MouseUp);
            textEditName.MouseDown += new MouseEventHandler(FormMain.Instance.Editor_MouseDown);
            textEditName.Enter += new EventHandler(FormMain.Instance.Editor_Enter);
            textEditDistributor.MouseUp += new MouseEventHandler(FormMain.Instance.Editor_MouseUp);
            textEditDistributor.MouseDown += new MouseEventHandler(FormMain.Instance.Editor_MouseDown);
            textEditDistributor.Enter += new EventHandler(FormMain.Instance.Editor_Enter);
            textEditContractLength.MouseUp += new MouseEventHandler(FormMain.Instance.Editor_MouseUp);
            textEditContractLength.MouseDown += new MouseEventHandler(FormMain.Instance.Editor_MouseDown);
            textEditContractLength.Enter += new EventHandler(FormMain.Instance.Editor_Enter);
            textEditHouseNumber.MouseUp += new MouseEventHandler(FormMain.Instance.Editor_MouseUp);
            textEditHouseNumber.MouseDown += new MouseEventHandler(FormMain.Instance.Editor_MouseDown);
            textEditHouseNumber.Enter += new EventHandler(FormMain.Instance.Editor_Enter);
            textEditEpisode.MouseUp += new MouseEventHandler(FormMain.Instance.Editor_MouseUp);
            textEditEpisode.MouseDown += new MouseEventHandler(FormMain.Instance.Editor_MouseDown);
            textEditEpisode.Enter += new EventHandler(FormMain.Instance.Editor_Enter);
            memoEditCustomNote.MouseUp += new MouseEventHandler(FormMain.Instance.Editor_MouseUp);
            memoEditCustomNote.MouseDown += new MouseEventHandler(FormMain.Instance.Editor_MouseDown);
            memoEditCustomNote.Enter += new EventHandler(FormMain.Instance.Editor_Enter);

            FormMain.Instance.SetClickEventHandler(this);
        }
 public void UploadStation(CoreObjects.Station station)
 {
     LoadStations();
     CoreObjects.Station existedStation = _stations.Where(x => x.Name.Equals(station.Name)).FirstOrDefault();
     if (existedStation != null)
         _stations.Remove(existedStation);
     station.SaveProgramActivities();
     station.SavePrograms();
     station.SaveProgramNames();
     station.SaveLogo();
     LoadStations(true);
 }
 private void EditProgram(CoreObjects.Program program)
 {
     CoreObjects.Program updatedProgram = program.Clone();
     using (ToolForms.FormEditProgram form = new FormEditProgram(updatedProgram))
     {
         form.Text = string.Format(form.Text, "Edit");
         if (form.ShowDialog() == System.Windows.Forms.DialogResult.OK)
         {
             updatedProgram = form.Program;
             int programIndex = Controllers.StationManager.Instance.SelectedStation.Programs.IndexOf(program);
             Controllers.StationManager.Instance.SelectedStation.DeleteProgram(program, true);
             Controllers.StationManager.Instance.SelectedStation.AddProgram(updatedProgram, programIndex);
         }
     }
 }
        public FormEditProgram(CoreObjects.Program program)
        {
            InitializeComponent();

            _program = program;

            textEditMovieTitle.MouseUp += new MouseEventHandler(FormMain.Instance.Editor_MouseUp);
            textEditMovieTitle.MouseDown += new MouseEventHandler(FormMain.Instance.Editor_MouseDown);
            textEditMovieTitle.Enter += new EventHandler(FormMain.Instance.Editor_Enter);
            textEditName.MouseUp += new MouseEventHandler(FormMain.Instance.Editor_MouseUp);
            textEditName.MouseDown += new MouseEventHandler(FormMain.Instance.Editor_MouseDown);
            textEditName.Enter += new EventHandler(FormMain.Instance.Editor_Enter);
            textEditDistributor.MouseUp += new MouseEventHandler(FormMain.Instance.Editor_MouseUp);
            textEditDistributor.MouseDown += new MouseEventHandler(FormMain.Instance.Editor_MouseDown);
            textEditDistributor.Enter += new EventHandler(FormMain.Instance.Editor_Enter);
            textEditContractLength.MouseUp += new MouseEventHandler(FormMain.Instance.Editor_MouseUp);
            textEditContractLength.MouseDown += new MouseEventHandler(FormMain.Instance.Editor_MouseDown);
            textEditContractLength.Enter += new EventHandler(FormMain.Instance.Editor_Enter);
            memoEditCustomNote.MouseUp += new MouseEventHandler(FormMain.Instance.Editor_MouseUp);
            memoEditCustomNote.MouseDown += new MouseEventHandler(FormMain.Instance.Editor_MouseDown);
            memoEditCustomNote.Enter += new EventHandler(FormMain.Instance.Editor_Enter);
            timeEditStart.MouseUp += new MouseEventHandler(FormMain.Instance.Editor_MouseUp);
            timeEditStart.MouseDown += new MouseEventHandler(FormMain.Instance.Editor_MouseDown);
            timeEditStart.Enter += new EventHandler(FormMain.Instance.Editor_Enter);
            timeEditEnd.MouseUp += new MouseEventHandler(FormMain.Instance.Editor_MouseUp);
            timeEditEnd.MouseDown += new MouseEventHandler(FormMain.Instance.Editor_MouseDown);
            timeEditEnd.Enter += new EventHandler(FormMain.Instance.Editor_Enter);
            spinEditOccurenceNumber.MouseUp += new MouseEventHandler(FormMain.Instance.Editor_MouseUp);
            spinEditOccurenceNumber.MouseDown += new MouseEventHandler(FormMain.Instance.Editor_MouseDown);
            spinEditOccurenceNumber.Enter += new EventHandler(FormMain.Instance.Editor_Enter);
            spinEditWeeksNumber.MouseUp += new MouseEventHandler(FormMain.Instance.Editor_MouseUp);
            spinEditWeeksNumber.MouseDown += new MouseEventHandler(FormMain.Instance.Editor_MouseDown);
            spinEditWeeksNumber.Enter += new EventHandler(FormMain.Instance.Editor_Enter);

            FormMain.Instance.SetClickEventHandler(this);
        }
        public void ReportActivityList(CoreObjects.ProgramActivity[] activities, bool convertToPDF)
        {
            using (ToolForms.FormProgress form = new ToolForms.FormProgress())
            {
                System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ThreadStart(delegate()
                {
                    FormMain.Instance.Invoke((MethodInvoker)delegate()
                    {
                        form.laProgress.Text = "Generating Program List...";
                        form.TopMost = true;
                        form.Show();
                        Application.DoEvents();
                    });

                    InteropClasses.ExcelHelper excelHelper = new InteropClasses.ExcelHelper();

                    if (!Directory.Exists(ConfigurationClasses.SettingsManager.Instance.OutputCache))
                        Directory.CreateDirectory(ConfigurationClasses.SettingsManager.Instance.OutputCache);

                    string destinationPath = Path.Combine(ConfigurationClasses.SettingsManager.Instance.OutputCache, string.Format("{0}.{1}", new string[] { DateTime.Now.ToString("MMddyy-hhmmtt"), convertToPDF ? "pdf" : "xls" }));

                    excelHelper.ReportActivityList(activities, destinationPath, convertToPDF);

                    if (File.Exists(destinationPath))
                        Process.Start(destinationPath);

                    FormMain.Instance.Invoke((MethodInvoker)delegate()
                    {
                        form.Hide();
                        Application.DoEvents();
                    });

                }));
                thread.Start();

                while (thread.IsAlive)
                    Application.DoEvents();

                form.Close();
            }
        }
        public void ReportWeekSchedule(string stationName, CoreObjects.Week[] weeks, bool convertToPDF, bool landscape)
        {
            using (ToolForms.FormProgress form = new ToolForms.FormProgress())
            {
                System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ThreadStart(delegate()
                {
                    FormMain.Instance.Invoke((MethodInvoker)delegate()
                    {
                        form.laProgress.Text = "Generating Program Schedule...";
                        form.TopMost = true;
                        form.Show();
                        Application.DoEvents();
                    });

                    CoreObjects.Station station = _stations.Where(x => x.Name.Equals(stationName)).FirstOrDefault();
                    if (station != null)
                    {
                        InteropClasses.ExcelHelper excelHelper = new InteropClasses.ExcelHelper();

                        if (!Directory.Exists(ConfigurationClasses.SettingsManager.Instance.OutputCache))
                            Directory.CreateDirectory(ConfigurationClasses.SettingsManager.Instance.OutputCache);

                        string destinationPath = Path.Combine(ConfigurationClasses.SettingsManager.Instance.OutputCache, string.Format("{0}.{1}", new string[] { DateTime.Now.ToString("MMddyy-hhmmtt"), convertToPDF ? "pdf" : "xls" }));

                        List<CoreObjects.Day[]> daysByWeeks = new List<CoreObjects.Day[]>();
                        foreach (CoreObjects.Week week in weeks)
                            daysByWeeks.Add(station.GetDays(week.DateStart, week.DateEnd));

                        excelHelper.ReportWeekSchedule(daysByWeeks.ToArray(), destinationPath, convertToPDF, landscape);

                        if (File.Exists(destinationPath))
                            Process.Start(destinationPath);
                    }

                    FormMain.Instance.Invoke((MethodInvoker)delegate()
                    {
                        form.Hide();
                        Application.DoEvents();
                    });

                }));
                thread.Start();

                while (thread.IsAlive)
                    Application.DoEvents();

                form.Close();
            }
        }
        public void ReportWeekSchedule(CoreObjects.Day[][] days, string destinationFilePath, bool convertToPDF, bool landscape)
        {
            string templatePath = string.Format(Controllers.OutputManager.Instance.ReportWeekScheduleTemplatePath, landscape ? "Landscape" : "Portrait");
            if (File.Exists(templatePath) && Connect())
            {
                try
                {
                    Excel.Workbook destinationWorkBook = _excelObject.Workbooks.Add();

                    for (int i = 1; i < 3; i++)
                        try
                        {
                            destinationWorkBook.Worksheets[i].Delete();
                        }
                        catch
                        {
                            break;
                        }

                    int worksheetIndex = 1;
                    DateTime sheduleGenrated = DateTime.Now;

                    foreach (CoreObjects.Day[] weekDays in days)
                    {
                        Excel.Workbook sourceWorkBook = _excelObject.Workbooks.Open(templatePath);
                        Excel.Worksheet workSheet = sourceWorkBook.Worksheets["Week"];

                        string title = string.Format("{0} - Weekly Program Schedule", weekDays.FirstOrDefault().Station.Name);
                        string dateRange = string.Format("Week of {0}", weekDays.FirstOrDefault().Date.ToString("MMMM d, yyyy"));
                        workSheet.PageSetup.CenterHeader = string.Format("&\"{0}{2}\"&{1}", new string[] { ConfigurationClasses.SettingsManager.Instance.OutputSettings.HeaderFont.Name, ConfigurationClasses.SettingsManager.Instance.OutputSettings.HeaderFont.Size.ToString(), ConfigurationClasses.SettingsManager.Instance.OutputSettings.HeaderFont.Bold ? ",bold" : string.Empty }) + title + (char)13 + dateRange;

                        workSheet.PageSetup.CenterFooter = string.Format("&\"{0}{2}\"&{1}", new string[] { ConfigurationClasses.SettingsManager.Instance.OutputSettings.FooterFont.Name, ConfigurationClasses.SettingsManager.Instance.OutputSettings.FooterFont.Size.ToString(), ConfigurationClasses.SettingsManager.Instance.OutputSettings.FooterFont.Bold ? ",bold" : string.Empty }) + "Schedule Generated" + (char)13 + sheduleGenrated.ToString("MM/dd/yy h:mm tt");
                        workSheet.PageSetup.RightFooter = string.Format("&\"{0}{1}\"", new string[] { ConfigurationClasses.SettingsManager.Instance.OutputSettings.FooterFont.Name, ConfigurationClasses.SettingsManager.Instance.OutputSettings.FooterFont.Size.ToString() }) + workSheet.PageSetup.RightFooter;

                        Excel.Range range = workSheet.Range["Data"];
                        range.Font.Name = ConfigurationClasses.SettingsManager.Instance.OutputSettings.BodyFont.Name;
                        range.Font.Size = ConfigurationClasses.SettingsManager.Instance.OutputSettings.BodyFont.Size;
                        range.Font.Bold = ConfigurationClasses.SettingsManager.Instance.OutputSettings.BodyFont.Bold;
                        range.Font.Italic = ConfigurationClasses.SettingsManager.Instance.OutputSettings.BodyFont.Italic;

                        if (ConfigurationClasses.SettingsManager.Instance.OutputSettings.UsePrimeTimeSpecialFontSize)
                        {
                            {
                                int firstColumn = workSheet.Range["day1"].Column;
                                int lastColumn = workSheet.Range["day6"].Column;

                                int firstRow = workSheet.Range["day1"].Row + 1;
                                DateTime time = new DateTime(1, 1, 1, 5, 0, 0);
                                while (!(time.Hour == ConfigurationClasses.SettingsManager.Instance.OutputSettings.WeekPrimeTimeStart.Hour && time.Minute == ConfigurationClasses.SettingsManager.Instance.OutputSettings.WeekPrimeTimeStart.Minute))
                                {
                                    time = time.AddMinutes(30);
                                    firstRow++;
                                }

                                int lastRow = firstRow;
                                while (!(time.Hour == ConfigurationClasses.SettingsManager.Instance.OutputSettings.WeekPrimeTimeEnd.Hour && time.Minute == ConfigurationClasses.SettingsManager.Instance.OutputSettings.WeekPrimeTimeEnd.Minute))
                                {
                                    time = time.AddMinutes(30);
                                    lastRow++;
                                }

                                range = workSheet.Range[GetColumnLetterByIndex(firstColumn) + firstRow.ToString() + ":" + GetColumnLetterByIndex(lastColumn) + lastRow.ToString()];
                                range.Font.Name = ConfigurationClasses.SettingsManager.Instance.OutputSettings.BodyFont.Name;
                                range.Font.Size = ConfigurationClasses.SettingsManager.Instance.OutputSettings.PrimeTimeSpecialFontSize;
                                range.Font.Bold = ConfigurationClasses.SettingsManager.Instance.OutputSettings.BodyFont.Bold;
                                range.Font.Italic = ConfigurationClasses.SettingsManager.Instance.OutputSettings.BodyFont.Italic;
                            }

                            {
                                int firstColumn = workSheet.Range["day7"].Column;
                                int lastColumn = workSheet.Range["day7"].Column;

                                int firstRow = workSheet.Range["day7"].Row + 1;
                                DateTime time = new DateTime(1, 1, 1, 5, 0, 0);
                                while (!(time.Hour == ConfigurationClasses.SettingsManager.Instance.OutputSettings.SundayPrimeTimeStart.Hour && time.Minute == ConfigurationClasses.SettingsManager.Instance.OutputSettings.SundayPrimeTimeStart.Minute))
                                {
                                    time = time.AddMinutes(30);
                                    firstRow++;
                                }

                                int lastRow = firstRow;
                                while (!(time.Hour == ConfigurationClasses.SettingsManager.Instance.OutputSettings.SundayPrimeTimeEnd.Hour && time.Minute == ConfigurationClasses.SettingsManager.Instance.OutputSettings.SundayPrimeTimeEnd.Minute))
                                {
                                    time = time.AddMinutes(30);
                                    lastRow++;
                                }

                                range = workSheet.Range[GetColumnLetterByIndex(firstColumn) + firstRow.ToString() + ":" + GetColumnLetterByIndex(lastColumn) + lastRow.ToString()];
                                range.Font.Name = ConfigurationClasses.SettingsManager.Instance.OutputSettings.BodyFont.Name;
                                range.Font.Size = ConfigurationClasses.SettingsManager.Instance.OutputSettings.PrimeTimeSpecialFontSize;
                                range.Font.Bold = ConfigurationClasses.SettingsManager.Instance.OutputSettings.BodyFont.Bold;
                                range.Font.Italic = ConfigurationClasses.SettingsManager.Instance.OutputSettings.BodyFont.Italic;
                            }
                        }

                        object[,] values = new object[48, 7];
                        for (int j = 0; j < 48; j++)
                        {
                            List<object> cells = new List<object>();
                            for (int i = 0; i < 7; i++)
                                values[j, i] = weekDays[i].ProgramActivities[j].ProgramExtended + (ConfigurationClasses.SettingsManager.Instance.OutputSettings.ShowHouseNumber && !string.IsNullOrEmpty(weekDays[i].ProgramActivities[j].HouseNumber) ? (" (" + weekDays[i].ProgramActivities[j].HouseNumber + ")") : string.Empty);
                        }
                        workSheet.Range["Data"].Value2 = values;

                        for (int i = 0; i < 7; i++)
                        {
                            range = workSheet.Range["day" + (i + 1).ToString()];
                            range.Formula = weekDays[i].Date.ToString(landscape ? "dddd M/d" : "ddd M/d");
                            int columnIndex = range.Column;
                            int rowIndex = range.Row + 1;
                            string programName = string.Empty;
                            int firstRow = 0;
                            for (int r = 0; r < 48; r++)
                            {
                                object value = workSheet.Range[GetColumnLetterByIndex(columnIndex) + (rowIndex + r).ToString()].Value;
                                string currentProgramName = value != null ? value.ToString() : string.Empty;
                                if (!currentProgramName.Equals(programName))
                                {
                                    if (!string.IsNullOrEmpty(programName))
                                        workSheet.Range[GetColumnLetterByIndex(columnIndex) + firstRow.ToString() + ":" + GetColumnLetterByIndex(columnIndex) + (rowIndex + r - 1).ToString()].Merge();
                                    firstRow = rowIndex + r;
                                    programName = currentProgramName;
                                }
                            }
                        }

                        for (int i = 0; i < 7; i++)
                        {
                            range = workSheet.Range["day" + (i + 1).ToString()];
                            int columnIndex = range.Column;
                            int r = 0;
                            object value = null;
                            do
                            {
                                value = null;
                                int rowIndex = 0;
                                Excel.Range rowRange = range.Offset[RowOffset: r];
                                try
                                {
                                    value = rowRange.Formula;
                                    rowIndex = rowRange.Row;
                                }
                                catch { }
                                if (value != null)
                                {
                                    string programName = string.Empty;
                                    int firstColumn = 0;
                                    for (int j = i; j < 7; j++)
                                    {
                                        object nextValue = null;
                                        try
                                        {
                                            nextValue = rowRange.Offset[ColumnOffset: j].Value;
                                        }
                                        catch { }
                                        string currentProgramName = nextValue != null ? nextValue.ToString() : string.Empty;
                                        if (!currentProgramName.Equals(programName))
                                        {
                                            if (!string.IsNullOrEmpty(programName))
                                                workSheet.Range[GetColumnLetterByIndex(firstColumn) + rowIndex.ToString() + ":" + GetColumnLetterByIndex(columnIndex + j - 1) + rowIndex.ToString()].Merge();
                                            firstColumn = columnIndex + j;
                                            programName = currentProgramName;
                                        }
                                    }
                                }
                                r++;
                            }
                            while (value != null && r <= 48);
                        }

                        Excel.Range dataRange = workSheet.Range["Data"];

                        dataRange.Rows.AutoFit();

                        //set correct page breaks
                        try
                        {
                            int fisrtColumnNumber = workSheet.Range["day1"].Column;
                            int lastColumnNumber = workSheet.Range["day7"].Column;
                            Excel.HPageBreaks pageBreaks = workSheet.HPageBreaks;
                            for (int i = 1; i <= pageBreaks.Count; i++)
                            {
                                int currentBreakRow = pageBreaks[i].Location.Row;
                                int newBreakRow = currentBreakRow;
                                Excel.Range beforeRange = pageBreaks[i].Location;
                                for (int j = fisrtColumnNumber; j <= lastColumnNumber; j++)
                                {
                                    Excel.Range cellRange = workSheet.Cells[currentBreakRow, j];
                                    if (cellRange.MergeCells)
                                    {
                                        if (beforeRange.Row > cellRange.MergeArea.Row)
                                        {
                                            beforeRange = cellRange.MergeArea;
                                            newBreakRow = beforeRange.Row;
                                        }
                                    }
                                }
                                if (newBreakRow != currentBreakRow)
                                    workSheet.HPageBreaks.Add(Before: beforeRange);
                            }
                        }
                        catch
                        { }

                        workSheet.Copy(After: destinationWorkBook.Worksheets[worksheetIndex]);
                        worksheetIndex++;
                        workSheet = destinationWorkBook.Worksheets[worksheetIndex];
                        workSheet.Name = weekDays.FirstOrDefault().Date.ToString("MMddyy") + "-" + weekDays.LastOrDefault().Date.ToString("MMddyy");
                        sourceWorkBook.Close();
                    }

                    destinationWorkBook.Worksheets[1].Delete();
                    if (convertToPDF)
                        destinationWorkBook.ExportAsFixedFormat(Filename: destinationFilePath, Type: Excel.XlFixedFormatType.xlTypePDF);
                    else
                        destinationWorkBook.SaveAs(Filename: destinationFilePath, FileFormat: Excel.XlFileFormat.xlWorkbookNormal);

                    destinationWorkBook.Close();
                }
                catch (Exception ex)
                {
                    Controllers.AppManager.Instance.Log.Records.Add(new CoreObjects.LogRecord(ex));
                    Controllers.AppManager.Instance.Log.Save();
                }
                Disconnect();
            }
        }
        public void ReportActivityList(CoreObjects.ProgramActivity[] activities, string destinationFilePath, bool convertToPDF)
        {
            string templatePath = Controllers.OutputManager.Instance.ReporActivityListTemplatePath;
            if (File.Exists(templatePath) && Connect())
            {
                try
                {
                    Excel.Workbook sourceWorkBook = _excelObject.Workbooks.Open(templatePath);
                    Excel.Worksheet workSheet = sourceWorkBook.Worksheets["Program Activities"];

                    DateTime start = activities.FirstOrDefault().Time;
                    DateTime end = activities.LastOrDefault().Time;
                    string title = string.Format("Program Activity For {0}", activities.FirstOrDefault().Day.Station.Name);
                    string dateRange = string.Format("Between {0} and {1} from {2} to {3}", new string[] { start.ToString("MM/dd/yyyy"), end.ToString("MM/dd/yyyy"), start.ToString("hh:mmtt"), end.ToString("hh:mmtt") });
                    workSheet.PageSetup.CenterHeader = "&12&B" + title + (char)13 + dateRange;

                    DateTime sheduleGenrated = DateTime.Now;
                    workSheet.PageSetup.CenterFooter = "&11Generated" + (char)13 + sheduleGenrated.ToString("MM/dd/yy h:mm tt");

                    Excel.Range range = workSheet.Range["Date"];
                    int firstRow = range.Row + 1;
                    int lastRow = firstRow;
                    int firstColumn = range.Column;
                    range = workSheet.Range["Type"];
                    int lastColumn = range.Column;

                    List<object[]> rows = new List<object[]>();
                    foreach (CoreObjects.ProgramActivity activity in activities)
                    {
                        List<object> cells = new List<object>();
                        cells.Add(activity.Date.ToString("MM/dd/yyyy"));
                        cells.Add(activity.Date.ToString("ddd"));
                        cells.Add(activity.Time.ToString("hh:mmtt"));
                        cells.Add(activity.ProgramExtended);
                        cells.Add(activity.HouseNumber);
                        cells.Add(activity.Episode);
                        cells.Add(activity.Type);
                        rows.Add(cells.ToArray());
                        lastRow++;
                    }
                    if (lastRow > firstRow)
                        lastRow--;

                    if (rows.Count > 0)
                    {
                        object[,] values = new object[rows.Count, rows[0].Length];
                        for (int i = 0; i < rows.Count; i++)
                            for (int j = 0; j < rows[0].Length; j++)
                                values[i, j] = rows[i][j];

                        range = workSheet.Range[GetColumnLetterByIndex(firstColumn) + firstRow.ToString() + ":" + GetColumnLetterByIndex(lastColumn) + lastRow.ToString()];
                        range.Value2 = values;
                        range.Rows.AutoFit();
                        range.Borders[Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Excel.XlLineStyle.xlContinuous;
                        range.Borders[Excel.XlBordersIndex.xlEdgeLeft].LineStyle = Excel.XlLineStyle.xlContinuous;
                        range.Borders[Excel.XlBordersIndex.xlEdgeRight].LineStyle = Excel.XlLineStyle.xlContinuous;
                        range.Borders[Excel.XlBordersIndex.xlEdgeTop].LineStyle = Excel.XlLineStyle.xlContinuous;
                        range.Borders[Excel.XlBordersIndex.xlInsideHorizontal].LineStyle = Excel.XlLineStyle.xlContinuous;
                        range.Borders[Excel.XlBordersIndex.xlInsideVertical].LineStyle = Excel.XlLineStyle.xlContinuous;

                        if (convertToPDF)
                            sourceWorkBook.ExportAsFixedFormat(Filename: destinationFilePath, Type: Excel.XlFixedFormatType.xlTypePDF);
                        else
                            sourceWorkBook.SaveAs(Filename: destinationFilePath, FileFormat: Excel.XlFileFormat.xlWorkbookNormal);
                    }

                    sourceWorkBook.Close();
                }
                catch (Exception ex)
                {
                    Controllers.AppManager.Instance.Log.Records.Add(new CoreObjects.LogRecord(ex));
                    Controllers.AppManager.Instance.Log.Save();
                }
                Disconnect();
            }
        }
 public static bool UploadStation(CoreObjects.Station station)
 {
     try
     {
         GetClient().UploadStation(station);
         station.LastLoaded = DateTime.Now;
         station.SaveStationMetaData();
         return true;
     }
     catch(Exception ex)
     {
         AppManager.Instance.Log.Records.Add(new CoreObjects.LogRecord(ex));
         AppManager.Instance.Log.Save();
         return false;
     }
 }