예제 #1
0
파일: FormMacro.cs 프로젝트: tborgund/kgsa
        private void bwMacro_DoWork(object sender, DoWorkEventArgs e)
        {
            try
            {
                if (macroAttempt >= 3)
                    KillElguideProcesses();

                int latency = Convert.ToInt32((1000 * main.appConfig.macroLatency) + (macroAttempt * 300)); // beregn forsinkelse
                int extraWait = 0;

                double span = (DateTime.Now - Dato).TotalDays;
                if (span > 3 && !ignoreExtraWait)
                    extraWait = Convert.ToInt32(span * 5); // Legg til 5 ekstra sekunder pr. dag.
                if (extraWait > 150)
                    extraWait = 150; // Maks 150 ekstra sekunder
                int wait = 0;

                try
                {
                    for (int i = 0; i < program.Count; i++)
                    {
                        if (bwMacro.CancellationPending)
                            break;

                        if (bwMaster != null)
                            if (bwMaster.CancellationPending)
                                break;

                        string programLine = program[i];

                        if (programLine.StartsWith("Start"))
                        {
                            string str = Regex.Match(programLine, @"\(([^)]*)\)").Groups[1].Value;
                            Message("[" + i + "] Starter applikasjon: " + str + "..");

                            if (File.Exists(str))
                                System.Diagnostics.Process.Start(str);
                            else
                            {
                                Error(6, "Kunne ikke starte (" + str + ") - Fil mangler!");
                                return;
                            }
                            System.Threading.Thread.Sleep(latency);
                        }
                        else if (programLine.StartsWith("FindRow"))
                        {
                            string[] a = Regex.Match(programLine, @"\(([^)]*)\)").Groups[1].Value.Split(';');
                            Message("[" + i + "] Finner rad: " + a[1] + " file: " + a[0]);

                            if (!FindRow(a))
                            {
                                Error(1, "Fant ikke rad!");
                                break;
                            }
                            System.Threading.Thread.Sleep(latency / 2);
                        }
                        else if (programLine.StartsWith("ImportNow"))
                        {
                            string strAvdeling = Regex.Match(programLine, @"\(([^)]*)\)").Groups[1].Value;
                            Message("[" + i + "] Importerer data for " + strAvdeling + "..");

                            System.Threading.Thread.Sleep(2000);

                            if (0 != ImportCSV(Convert.ToInt32(strAvdeling)))
                            {
                                Error(1, "Feil oppstod under importering av CSV.");
                                return;
                            }
                        }
                        else if (programLine.StartsWith("FindProcess"))
                        {
                            string process = Regex.Match(programLine, @"\(([^)]*)\)").Groups[1].Value;
                            ActivateApp(process);
                            Message("[" + i + "] Finner prosess: " + process);

                            System.Threading.Thread.Sleep(latency / 2);
                        }
                        else if (programLine.StartsWith("WaitForTitle"))
                        {
                            string title = Regex.Match(programLine, @"\(([^)]*)\)").Groups[1].Value.ToLower();

                            Message("[" + i + "] Venter på vindu med tekst: " + title);

                            int teller = 0;
                            while (!GetActiveWindowTitle().Contains(title) && teller < 30)
                            {
                                System.Threading.Thread.Sleep(latency);
                                teller++;
                                if (bwMacro.CancellationPending)
                                    break;
                                if (bwMaster != null)
                                    if (bwMaster.CancellationPending)
                                        break;
                            }
                            if (teller >= 30)
                            {
                                Error(1, "Ventet for lenge på vindu med tittel '" + title + "'");
                                break;
                            }
                            System.Threading.Thread.Sleep(latency / 2);
                        }
                        else if (programLine.StartsWith("Wait"))
                        {
                            var value = Convert.ToInt32(Regex.Match(programLine, @"\(([^)]*)\)").Groups[1].Value);
                            if (value > 10)
                                wait = extraWait;
                            else
                                wait = 0;
                            decimal delay = value + wait;

                            var teller = Math.Round(delay * main.appConfig.macroLatency, 0);
                            Message("[" + i + "] Vent i " + teller + " sekunder.");

                            while (teller > 0)
                            {
                                if (teller > 0)
                                    Message("[" + i + "] Vent i " + teller + " sekunder.", null, true);
                                System.Threading.Thread.Sleep(1000);
                                teller--;
                                if (bwMacro.CancellationPending)
                                    break;
                                if (bwMaster != null)
                                    if (bwMaster.CancellationPending)
                                        break;
                            }
                        }
                        else if (programLine.StartsWith("KeyHoldStart"))
                        {
                            string key = Regex.Match(programLine, @"\(([^)]*)\)").Groups[1].Value;
                            Message("[" + i + "] KeyHoldStart: " + key);

                            if (key == "SHIFT")
                                InputSimulator.SimulateKeyDown(VirtualKeyCode.SHIFT);
                            if (key == "CONTROL")
                                InputSimulator.SimulateKeyDown(VirtualKeyCode.CONTROL);
                            System.Threading.Thread.Sleep(latency / 2);
                        }
                        else if (programLine.StartsWith("KeyHoldEnd"))
                        {
                            string key = Regex.Match(programLine, @"\(([^)]*)\)").Groups[1].Value;
                            Message("[" + i + "] KeyHoldEnd: " + key);

                            if (key == "SHIFT")
                                InputSimulator.SimulateKeyUp(VirtualKeyCode.SHIFT);
                            if (key == "CONTROL")
                                InputSimulator.SimulateKeyUp(VirtualKeyCode.CONTROL);
                            System.Threading.Thread.Sleep(latency / 2);
                        }
                        else if (programLine.StartsWith("KeyPress"))
                        {
                            string key = Regex.Match(programLine, @"\(([^)]*)\)").Groups[1].Value;
                            Keys key_restored = (Keys)Enum.Parse(typeof(Keys), key);

                            Message("[" + i + "] KeyPress: " + key);

                            InputSimulator.SimulateKeyPress((VirtualKeyCode)key_restored);
                            System.Threading.Thread.Sleep(latency / 2);
                        }
                        else if (programLine.StartsWith("KeyString"))
                        {
                            string str = Regex.Match(programLine, @"\(([^)]*)\)").Groups[1].Value;

                            Message("Venter på Elguide vindu..");
                            int teller = 0;
                            while (!GetActiveWindowTitle().Contains("elguide") && teller < 30)
                            {
                                System.Threading.Thread.Sleep(latency);
                                teller++;
                                if (bwMacro.CancellationPending)
                                    break;
                                if (bwMaster != null)
                                    if (bwMaster.CancellationPending)
                                        break;
                            }
                            if (teller >= 30)
                            {
                                Error(1, "Ventet for lenge Elguide vindu.");
                                break;
                            }

                            Message("[" + i + "] KeyString: " + str + "..");

                            InputSimulator.SimulateTextEntry(str);
                            System.Threading.Thread.Sleep(latency / 2);
                        }
                        else if (programLine.StartsWith("Password"))
                        {
                            string str = Regex.Match(programLine, @"\(([^)]*)\)").Groups[1].Value;
                            Message("[" + i + "] Password");

                            string password = str;

                            if (Regex.IsMatch(str, @"^\d+$") && str.Length > 10)
                            {
                                SimpleAES simple = new SimpleAES();
                                password = simple.DecryptString(str);
                            }

                            if (!GetActiveWindowTitle().Contains("elguide"))
                            {
                                Error(6, "Forventet vindu var IKKE aktivt!");
                                System.Threading.Thread.Sleep(latency / 2);
                                break;
                            }

                            InputSimulator.SimulateTextEntry(password);
                            System.Threading.Thread.Sleep(latency / 2);
                        }
                        else if (programLine.StartsWith("ImportKveldstall"))
                        {
                            Message("[" + i + "] Legger til kveldstall kommandoer..");

                            GenerateCommandsQuick();
                            System.Threading.Thread.Sleep(latency / 2);
                        }
                        else
                        {
                            Message("[" + i + "] Ukjent kommando: " + programLine);
                            System.Threading.Thread.Sleep(latency / 2);
                        }

                        if (i + 1 == program.Count)
                        {
                            Message("Makro fullført!", Color.Green);
                            errorCode = 0;
                        }
                    }
                }
                catch (Exception ex)
                {
                    Error(6, "Unntak oppstod under makro kjøring.", ex);
                    FormError errorMsg = new FormError("Unntak oppstod under makro kjøring", ex);
                    errorMsg.ShowDialog();
                }
            }
            catch (Exception ex)
            {
                Error(1, "Ukjent feil", ex);
            }
        }
예제 #2
0
        public bool FindAndDownloadBudget(BackgroundWorker bw)
        {
            bool attachmentFound = false;
            try
            {
                Log.n("Kobler til e-post server \"" + main.appConfig.epostPOP3server + "\"..");
                using (Pop3Client client = new Pop3Client())
                {
                    client.Connect(main.appConfig.epostPOP3server, main.appConfig.epostPOP3port, main.appConfig.epostPOP3ssl);

                    if (bw != null) {
                        if (bw.CancellationPending) {
                            if (client.Connected)
                                client.Disconnect();
                            return false;
                        }
                    }

                    Log.d("Logger inn med brukernavn \"" + main.appConfig.epostBrukernavn + "\"..");
                    SimpleAES aes = new SimpleAES();
                    client.Authenticate(main.appConfig.epostPOP3username, aes.DecryptString(main.appConfig.epostPOP3password));
                    int count = client.GetMessageCount();

                    Log.d("Innlogging fullført. Antall meldinger i innboks: " + count);
                    if (count == 0)
                    {
                        Log.n("Innboks for \"" + main.appConfig.epostPOP3username + "\" er tom. "
                            + "Endre innstillinger i ditt e-post program til å la e-post ligge igjen på server", Color.Red);
                        client.Disconnect();
                        return false;
                    }

                    main.processing.SetText = "Søker i innboks.. (totalt " + count + " meldinger)";
                    Log.n("Søker i innboks.. (totalt " + count + " meldinger)");
                    for (int i = count + 1; i-- > 1;)
                    {
                        if (attachmentFound || maxEmailAttemptsReached)
                            break;

                        if (bw != null)
                            if (bw.CancellationPending)
                                break;

                        Log.d("Sjekker meldingshode " + (count - i + 1) + "..");
                        MessageHeader header = client.GetMessageHeaders(i);
                        if (HeaderMatch(header))
                        {
                            if (header.DateSent.Date != selectedDate.Date)
                            {
                                Log.d("Fant C810 e-post med annen dato: " + header.DateSent.ToShortDateString()
                                    + " ser etter: " + selectedDate.ToShortDateString() + " Emne: \"" + header.Subject
                                    + "\" Fra: \"" + header.From.MailAddress + "\"");
                                continue;
                            }

                            Log.d("--------- Fant C810 e-post kandidat: Fra: \""
                                + header.From.MailAddress.Address + "\" Emne: \"" + header.Subject
                                + "\" Sendt: " + header.DateSent.ToShortDateString() + " (" + header.DateSent.ToShortTimeString() + ")");

                            Log.d("Laster ned e-post # " + i + "..");
                            Message message = client.GetMessage(i);

                            foreach (MessagePart attachment in message.FindAllAttachments())
                            {
                                if (attachmentFound)
                                    break;

                                Log.d("Vedlegg: " + attachment.FileName);
                                if (AttachmentMatch(attachment))
                                    attachmentFound = ParseAndSaveDailyBudget(attachment,
                                        message.Headers.DateSent,
                                        message.Headers.Subject,
                                        message.Headers.From.MailAddress.Address);
                            }
                        }

                        if (!attachmentFound)
                            Log.d("Fant ingen C810 vedlegg i e-post # " + i);
                    }
                    client.Disconnect();
                }

                if (attachmentFound)
                    return true;
                else if (!attachmentFound && maxEmailAttemptsReached)
                    Log.n("Maksimum antall e-post nedlastninger er overgått. Innboks søk er avsluttet", Color.Red);
                else
                    Log.n("Fant ingen C810 e-post med budsjett for dato " + selectedDate.ToShortDateString() + ". Innboks søk er avsluttet", Color.Red);
            }
            catch (PopServerNotFoundException)
            {
                Log.n("E-post server finnes ikke eller DNS problem ved tilkobling til " + main.appConfig.epostPOP3server, Color.Red);
            }
            catch (PopServerNotAvailableException ex)
            {
                Log.n("E-post server \"" + main.appConfig.epostPOP3server + "\" svarer ikke. Feilmelding: " + ex.Message, Color.Red);
            }
            catch (Exception ex)
            {
                if (ex.Message.Contains("Authentication failed") || ex.Message.Contains("credentials"))
                    Log.n("Feil brukernavn eller passord angitt for " + main.appConfig.epostPOP3username + ". Sjekk e-post innstillinger!", Color.Red);
                else
                {
                    Log.Unhandled(ex);
                    Log.n("Feil ved henting av epost. Beskjed: " + ex.Message);
                }
            }
            return false;
        }
예제 #3
0
        private bool ExportSettings()
        {
            try
            {
                // Fane: GENERELT -------------------------------------------------------------------------
                // GENERELT - Elguide
                if (textBoxAvd.Text.Length == 4)
                    main.appConfig.Avdeling = Convert.ToInt32(textBoxAvd.Text);
                main.appConfig.csvElguideExportFolder = textBoxCSVexportFolder.Text;

                // GENERELT - Import
                if (comboBoxImport.SelectedIndex == 0)
                    main.appConfig.importSetting = "Normal";
                if (comboBoxImport.SelectedIndex == 1)
                    main.appConfig.importSetting = "Full";
                if (comboBoxImport.SelectedIndex == 2)
                    main.appConfig.importSetting = "FullFavoritt";

                // GENERELT - Program
                main.appConfig.WindowMinimizeToTray = checkMinimizeToTray.Checked;
                main.appConfig.WindowExitToTray = checkExitToTray.Checked;
                main.appConfig.useSqlCache = checkBoxActivateSqlCache.Checked;
                main.appConfig.showAdvancedFunctions = checkBoxAdvanced.Checked;
                main.appConfig.experimental = checkBoxActivateExperimental.Checked;

                // Fane: RANKING --------------------------------------------------------------------------
                // RANKING - Utseende
                main.appConfig.kolInntjen = checkBoxRankUtseendeInntjen.Checked;
                main.appConfig.kolProv = checkVisProv.Checked;
                main.appConfig.kolRabatt = kolRabattCheckBox.Checked;
                main.appConfig.kolSalgspris = kolOmsetningCheckBox.Checked;
                main.appConfig.kolVarekoder = !checkBoxKombkol.Checked;
                main.appConfig.sortIndex = Convert.ToInt32(comboBoxRankingSort.SelectedIndex.ToString());
                main.appConfig.rankingAvdelingShowAll = checkRankAvdShowAll.Checked;

                // RANKING - Hitrate krav
                main.appConfig.kravHitrateNettbrett = numericKravHitrateNettbrett.Value;
                main.appConfig.kravHitrateData = numericKravHitrateData.Value;
                main.appConfig.kravHitrateAudioVideo = numericKravHitrateAudioVideo.Value;
                main.appConfig.kravHitrateTele = numericKravHitrateTele.Value;
                main.appConfig.kolKravNettbrett = checkKravNettbrett.Checked;
                main.appConfig.kolKravData = checkKravData.Checked;
                main.appConfig.kolKravAudioVideo = checkKravAudioVideo.Checked;
                main.appConfig.kolKravTele = checkKravTele.Checked;

                // RANKING - Valg
                main.appConfig.ignoreSunday = checkBoxIgnoreSunday.Checked;
                main.appConfig.rankingShowLastWeek = checkBoxRankingShowLastWeek.Checked;
                main.appConfig.rankingCompareLastyear = comboBoxRankingFjoraaret.SelectedIndex;
                main.appConfig.rankingCompareLastmonth = comboBoxRankingForrigeMaaned.SelectedIndex;

                // RANKING - Vinnprodukter
                main.appConfig.vinnDatoFraTil = checkBoxVinn.Checked;
                main.appConfig.vinnFrom = dateTimeVinnFrom.Value;
                main.appConfig.vinnTo = dateTimeVinnTo.Value;
                main.appConfig.vinnSisteDagVare = checkBoxVinnSisteDagVare.Checked;
                main.appConfig.vinnVisVarekoder = checkBoxVinnVisVarekoder.Checked;
                main.appConfig.vinnVisVarekoderExtra = checkBoxVinnVisVarekoderEkstra.Checked;
                main.appConfig.vinnEnkelModus = checkBoxVinnSimple.Checked;
                main.appConfig.vinnVisAftersales = checkBoxVinnVisAftersales.Checked;

                // Fane: PDF ----------------------------------------------------------------------------
                // PDF - PDF Export
                main.appConfig.pdfVisOversikt = checkBoxPDFoversikt.Checked;
                main.appConfig.pdfVisToppselgere = checkBoxPDFtoppselgere.Checked;
                main.appConfig.pdfVisButikk = checkBoxPDFbutikk.Checked;
                main.appConfig.pdfVisKnowHow = checkBoxPDFknowhow.Checked;
                main.appConfig.pdfVisData = checkBoxPDFdata.Checked;
                main.appConfig.pdfVisAudioVideo = checkBoxPDFaudiovideo.Checked;
                main.appConfig.pdfVisTele = checkBoxPDFtele.Checked;
                main.appConfig.pdfVisLister = checkBoxPDFlister.Checked;
                main.appConfig.pdfVisVinnprodukter = checkBoxPDFvinnprodukter.Checked;

                main.appConfig.pdfVisTjenester = checkBoxPDFtjenester.Checked;
                main.appConfig.pdfVisSnittpriser = checkBoxPDFsnittpriser.Checked;

                main.appConfig.pdfVisObsolete = checkBoxPDFobsolete.Checked;
                main.appConfig.pdfVisObsoleteList = checkBoxPDFobsoleteList.Checked;
                main.appConfig.pdfVisWeekly = checkBoxPDFweekly.Checked;
                main.appConfig.pdfVisPrisguide = checkBoxPDFprisguide.Checked;

                main.appConfig.pdfVisService = checkBoxPdfVisService.Checked;

                main.appConfig.pdfVisBudsjett = checkBoxPdfVisBudget.Checked;

                // PDF - Format
                main.appConfig.pdfLandscape = radioButtonPDForiantationSide.Checked;
                main.appConfig.pdfZoom = numericPDFzoon.Value;
                main.appConfig.pdfExpandedGraphs = checkBoxPdfUtvidetGrafer.Checked;
                main.appConfig.pdfTableOfContent = checkBoxPdfToc.Checked;

                // PDF - PDF Export
                main.appConfig.pdfExportFolder = textBoxExportPDF.Text;
                main.appConfig.pdfExport = checkPDFExport.Checked;

                // Fane: TOPPSELGERE -------------------------------------------------------------------
                // TOPPSELGERE - Sortering
                main.appConfig.bestofSortTjenesterSecondary = checkBoxToppselgereSortTjenesterInntjen.Checked;
                main.appConfig.bestofSortInntjenSecondary = checkBoxToppselgereSortInntjening.Checked;

                // TOPPSELGERE - Antall
                main.appConfig.bestofTallInntjen = comboBoxAntallInntjen.SelectedIndex;
                main.appConfig.bestofTallFinans = comboBoxAntallFinans.SelectedIndex;
                main.appConfig.bestofTallStrom = comboBoxAntallStrom.SelectedIndex;
                main.appConfig.bestofTallTjen = comboBoxAntallRTG.SelectedIndex;
                main.appConfig.bestofTallTA = comboBoxAntallTA.SelectedIndex;

                // TOPPSELGERE - Annet
                main.appConfig.bestofCompareChange = checkBoxBestofCompareChange.Checked;
                main.appConfig.bestofVisBesteLastYear = checkBoxToppselgereVisBesteFjoråret.Checked;
                main.appConfig.bestofVisBesteLastYearTotal = radioButtonToppselgereVisBesteFjoråretTotalt.Checked;
                main.appConfig.bestofVisBesteLastOpenday = checkBoxTopplisteVisBesteSisteåpningsdag.Checked;
                main.appConfig.bestofHoppoverKasse = checkBoxBestofHoppoverKasse.Checked;

                // TOPPSELGERE - Lister
                main.appConfig.listerVisInntjen = checkBoxListerInntjening.Checked;
                main.appConfig.listerVisAccessories = checkBoxListerAccessories.Checked;
                main.appConfig.listerMaxLinjer = Convert.ToInt32(numericListerMax.Value);

                // Fane: OVERSIKT ---------------------------------------------------------------------
                // OVERSIKT - Generelt
                main.appConfig.oversiktFilterToDepartments = checkBoxOversiktBegrens.Checked;
                main.appConfig.oversiktHideAftersales = checkBoxOversiktHideAftersales.Checked;
                main.appConfig.oversiktHideKitchen = checkBoxOversiktHideKitchen.Checked;

                // OVERSIKT - Krav
                main.appConfig.oversiktKravVis = checkOversiktVisKrav.Checked;
                main.appConfig.oversiktKravFinansAntall = checkKravAntallFinans.Checked;
                main.appConfig.oversiktKravModAntall = checkKravAntallMod.Checked;
                main.appConfig.oversiktKravStromAntall = checkKravAntallStrom.Checked;
                main.appConfig.oversiktKravRtgsaAntall = checkKravAntallRtgsa.Checked;
                main.appConfig.oversiktKravFinans = checkKravFinans.Checked;
                main.appConfig.oversiktKravMod = checkKravMod.Checked;
                main.appConfig.oversiktKravStrom = checkKravStrom.Checked;
                main.appConfig.oversiktKravRtgsa = checkKravRtgsa.Checked;
                main.appConfig.oversiktKravMtd = checkKravMTD.Checked;
                main.appConfig.oversiktKravMtdShowTarget = checkKravMtdShowTarget.Checked;

                // OVERSIKT - Format og logo
                if (String.IsNullOrEmpty(visningNullTextBox.Text))
                    main.appConfig.visningNull = "&nbsp;";
                else
                    main.appConfig.visningNull = visningNullTextBox.Text;
                main.appConfig.visningJevnfarge = checkBoxJevnfarge.Checked;
                main.appConfig.kolForkort = checkBoxTruncate.Checked;

                // Fane: FAVORITTER --------------------------------------------------------------------------
                // FAVORITTER - Favoritter
                main.appConfig.favAvdeling = "";
                for (int i = listBoxFavAvd.Items.Count; i-- > 0; )
                    if (String.IsNullOrEmpty(listBoxFavAvd.Items[i].ToString()))
                        listBoxFavAvd.Items.RemoveAt(i);
                for (int i = 0; i < listBoxFavAvd.Items.Count; i++)
                {
                    if (listBoxFavAvd.Items[i].ToString().StartsWith(main.appConfig.Avdeling.ToString()))
                        continue;
                    if (!String.IsNullOrEmpty(listBoxFavAvd.Items[i].ToString()))
                        main.appConfig.favAvdeling += listBoxFavAvd.Items[i].ToString().Substring(0, 4);
                    if ((i + 1) < listBoxFavAvd.Items.Count)
                        main.appConfig.favAvdeling += ",";
                }
                main.appConfig.favVis = checkBoxFav.Checked;

                // Fane: AVANSERT ---------------------------------------------------------------------------
                // AVANSERT - hoverdprodukt varegrupper
                if (VerifyStringToIntArray(textBoxHovedMda.Text))
                    main.appConfig.mainproductListMda = StringToIntArray(textBoxHovedMda.Text);
                else
                {
                    tabControlMain.SelectedTab = tabPageAvansert;
                    Log.Alert("Varegruppe skal være på tre siffer og ikke inneholde bokstaver.\nFlere varegrupper deles med komma.", "Feil varegruppe format", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return false;
                }

                if (VerifyStringToIntArray(textBoxHovedAv.Text))
                    main.appConfig.mainproductListAv = StringToIntArray(textBoxHovedAv.Text);
                else
                {
                    tabControlMain.SelectedTab = tabPageAvansert;
                    Log.Alert("Varegruppe skal være på tre siffer og ikke inneholde bokstaver.\nFlere varegrupper deles med komma.", "Feil varegruppe format", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return false;
                }

                if (VerifyStringToIntArray(textBoxHovedSda.Text))
                    main.appConfig.mainproductListSda = StringToIntArray(textBoxHovedSda.Text);
                else
                {
                    tabControlMain.SelectedTab = tabPageAvansert;
                    Log.Alert("Varegruppe skal være på tre siffer og ikke inneholde bokstaver.\nFlere varegrupper deles med komma.", "Feil varegruppe format", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return false;
                }

                if (VerifyStringToIntArray(textBoxHovedTele.Text))
                    main.appConfig.mainproductListTele = StringToIntArray(textBoxHovedTele.Text);
                else
                {
                    tabControlMain.SelectedTab = tabPageAvansert;
                    Log.Alert("Varegruppe skal være på tre siffer og ikke inneholde bokstaver.\nFlere varegrupper deles med komma.", "Feil varegruppe format", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return false;
                }

                if (VerifyStringToIntArray(textBoxHovedData.Text))
                    main.appConfig.mainproductListData = StringToIntArray(textBoxHovedData.Text);
                else
                {
                    tabControlMain.SelectedTab = tabPageAvansert;
                    Log.Alert("Varegruppe skal være på tre siffer og ikke inneholde bokstaver.\nFlere varegrupper deles med komma.", "Feil varegruppe format", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return false;
                }

                // AVANSERT - tilbehør hovedprodukter
                if (VerifyStringToIntArray(textBoxAccMda.Text))
                    main.appConfig.accessoriesListMda = StringToIntArray(textBoxAccMda.Text);
                else
                {
                    tabControlMain.SelectedTab = tabPageAvansert;
                    Log.Alert("Varegruppe skal være på tre siffer og ikke inneholde bokstaver.\nFlere varegrupper deles med komma.", "Feil varegruppe format", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return false;
                }

                if (VerifyStringToIntArray(textBoxAccAv.Text))
                    main.appConfig.accessoriesListAv = StringToIntArray(textBoxAccAv.Text);
                else
                {
                    tabControlMain.SelectedTab = tabPageAvansert;
                    Log.Alert("Varegruppe skal være på tre siffer og ikke inneholde bokstaver.\nFlere varegrupper deles med komma.", "Feil varegruppe format", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return false;
                }

                if (VerifyStringToIntArray(textBoxAccSda.Text))
                    main.appConfig.accessoriesListSda = StringToIntArray(textBoxAccSda.Text);
                else
                {
                    tabControlMain.SelectedTab = tabPageAvansert;
                    Log.Alert("Varegruppe skal være på tre siffer og ikke inneholde bokstaver.\nFlere varegrupper deles med komma.", "Feil varegruppe format", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return false;
                }

                if (VerifyStringToIntArray(textBoxAccTele.Text))
                    main.appConfig.accessoriesListTele = StringToIntArray(textBoxAccTele.Text);
                else
                {
                    tabControlMain.SelectedTab = tabPageAvansert;
                    Log.Alert("Varegruppe skal være på tre siffer og ikke inneholde bokstaver.\nFlere varegrupper deles med komma.", "Feil varegruppe format", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return false;
                }

                if (VerifyStringToIntArray(textBoxAccData.Text))
                    main.appConfig.accessoriesListData = StringToIntArray(textBoxAccData.Text);
                else
                {
                    tabControlMain.SelectedTab = tabPageAvansert;
                    Log.Alert("Varegruppe skal være på tre siffer og ikke inneholde bokstaver.\nFlere varegrupper deles med komma.", "Feil varegruppe format", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return false;
                }

                // Fane: E-POST
                // E-POST - Server
                main.appConfig.epostSMTPserver = textBoxEpostSMTPserver.Text;
                main.appConfig.epostSMTPport = Convert.ToInt32(textBoxEpostSMTPport.Text);
                main.appConfig.epostSMTPssl = checkBoxEmailUseSsl.Checked;
                main.appConfig.epostBrukBcc = checkBoxEmailUseBcc.Checked;
                if (!IsValidEmail(textBoxEpostAvsender.Text) && !String.IsNullOrEmpty(textBoxEpostAvsender.Text))
                {
                    tabControlMain.SelectedTab = tabPageEpost;
                    textBoxEpostAvsender.ForeColor = Color.Red;
                    Log.Alert("E-post avsender er ikke i gyldig format.\nEksempel: [email protected]", "Ugyldig E-post adresse", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return false;
                }
                else
                {
                    textBoxEpostAvsender.ForeColor = Color.Black;
                    main.appConfig.epostAvsender = textBoxEpostAvsender.Text;
                }
                main.appConfig.epostAvsenderNavn = textBoxEpostAvsenderNavn.Text;
                main.appConfig.epostPOP3server = textBoxEpostPOP3server.Text;
                main.appConfig.epostPOP3port = Convert.ToInt32(textBoxEpostPOP3port.Text);
                if (main.appConfig.epostPOP3port == 0)
                    main.appConfig.epostPOP3port = 995;
                main.appConfig.epostPOP3ssl = checkBoxPOP3UseSsl.Checked;
                main.appConfig.epostPOP3username = textBoxEpostPOP3bruker.Text;
                var aes = new SimpleAES();
                if (!String.IsNullOrEmpty(textBoxEpostPOP3pass.Text))
                    main.appConfig.epostPOP3password = aes.EncryptToString(textBoxEpostPOP3pass.Text);
                else
                    main.appConfig.epostPOP3password = "";

                // E-POST - Vedlegg
                main.appConfig.openXml_AllSalesRep_AutoSend = checkBoxOpenXmlSendAllSalesRep.Checked;
                main.appConfig.openXml_AllSalesRep_AutoSend_Daily = radioButtonOpenXmlAllSalesRepDaily.Checked;

                // Fane: SERVICE -------------------------------------------------------------------------
                // SERVICE - Service generelt
                main.appConfig.serviceEgenServiceFilter = textServiceEgenServiceFilter.Text;
                main.appConfig.serviceShowHistory = checkServiceShowHistory.Checked;
                main.appConfig.serviceShowHistoryGraph = checkServiceShowHistoryGraph.Checked;
                main.appConfig.serviceShowTrend = checkServiceShowTrend.Checked;
                main.appConfig.serviceHistoryDays = Convert.ToInt32(numericServiceHistoryDays.Value);
                main.appConfig.serviceFerdigServiceStats = checkBoxServiceFerdigService.Checked;
                main.appConfig.serviceFerdigServiceStatsAntall = (int)numericServiceFerdigStatsAntall.Value;

                // Fane: GRAF ---------------------------------------------------------------------------
                // GRAF - Grafikk
                main.appConfig.graphVis = checkBoxVisGrafikk.Checked;
                main.appConfig.graphScreenDPI = (float)numericGraphDPI.Value;
                main.appConfig.graphWidth = Convert.ToInt32(textBoxGraphWidth.Text);
                main.appConfig.graphExtra = checkBoxGrafikkExtra.Checked;
                main.appConfig.graphAdvanced = checkBoxGrafikkAdvanced.Checked;
                main.appConfig.graphKnowHow = checkBoxGrafikkKnowHow.Checked;
                main.appConfig.graphButikk = checkBoxGrafikkButikk.Checked;
                main.appConfig.graphData = checkBoxGrafikkData.Checked;
                main.appConfig.graphAudioVideo = checkBoxGrafikkAV.Checked;
                main.appConfig.graphTele = checkBoxGrafikkTele.Checked;
                main.appConfig.graphOversikt = checkBoxGrafikkOversikt.Checked;
                try
                {
                    var tmp = Convert.ToInt32(textBoxGraphAntall.Text);
                    if (tmp > 0 && tmp < 366)
                        main.appConfig.graphDager = tmp;
                    if (Convert.ToInt32(textBoxGraphX.Text) > 50 && Convert.ToInt32(textBoxGraphY.Text) > 50)
                    {
                        main.appConfig.graphResX = Convert.ToInt32(textBoxGraphX.Text);
                        main.appConfig.graphResY = Convert.ToInt32(textBoxGraphY.Text);
                    }
                    else
                    {
                        main.appConfig.graphResX = 2000;
                        main.appConfig.graphResY = 600;
                    }
                }
                catch
                {
                    main.appConfig.graphResX = 2000;
                    main.appConfig.graphResY = 600;
                    main.appConfig.graphDager = 40;
                }

                // Fane: LAGER ------------------------------------------------------------------------------------
                // LAGER - Generelt
                main.appConfig.storeCompareMtd = radioLagerUtviklingMTD.Checked;
                main.appConfig.dbStoreViewpoint = pickerLagerViewpoint.Value;
                main.appConfig.storeShowStoreTwo = checkBoxStoreShowStoreTwo.Checked;
                main.appConfig.storeMaxAgePrizes = (int)numericUpDownLagerPriserMaxDager.Value;

                // LAGER - Utgåtte varer
                main.appConfig.storeObsoleteListMainProductsOnly = checkLagerHovedprodukter.Checked;
                main.appConfig.storeObsoleteFilterPercent = (int)numericStoreObsoleteFilter.Value;
                main.appConfig.storeObsoleteFilterMainStoreOnly = checkBoxObsoleteFilterMainStoreOnly.Checked;
                main.appConfig.storeObsoleteSortBy = comboBoxStoreObsoleteSortBy.Text;
                main.appConfig.storeObsoleteSortAsc = checkBoxStoreObsoleteSortAsc.Checked;
                main.appConfig.storeObsoleteFilterMax = (int)numericStoreObsoleteFilterMax.Value;

                // LAGER - Prisguide.no og Ukenytt
                main.appConfig.onlinePrisguidePagesToImport = (int)numericUpDownLagerPrisguideImportPages.Value;

                // Fane: VEDLIKEHOLD -------------------------------------------------------------------------------
                // VEDLIKEHOLD - Annet
                main.appConfig.debug = checkBoxDebug.Checked;
                main.appConfig.debugSql = checkBoxDebugShowSql.Checked;

                main.SaveSettings();
                SendMessage("Innstillinger lagret.", Color.Green);
                return true;
            }
            catch (Exception ex)
            {
                SendMessage(ex.Message.ToString().Replace("\n", "").Replace("\r", ""), Color.Red);
                Log.Unhandled(ex);
                return false;
            }
        }
예제 #4
0
        private void HashPassword(TextBox txtBox)
        {
            try
            {
                string content = txtBox.Text;

                if (content.Contains("Password("))
                {
                    List<string> list = new List<string>(
                           content.Split(new string[] { "\r\n" },
                           StringSplitOptions.RemoveEmptyEntries));

                    int found = 0;
                    for (int i = 0; i < list.Count; i++)
                    {
                        if (list[i].StartsWith("Password"))
                        {
                            string str = Regex.Match(list[i], @"\(([^)]*)\)").Groups[1].Value;
                            if (str.Length > 1 && str.Length < 20 && !Regex.IsMatch(str, @"^\d+$"))
                            {
                                SimpleAES simple = new SimpleAES();
                                string hash = simple.EncryptToString(str);
                                list[i] = "Password(" + hash + ")";
                                found++;
                            }
                        }
                    }
                    if (found > 0)
                        SendMessage(found + " passord kryptert.", Color.Green);
                    else
                        SendMessage("Passord allerede kryptert eller i feil format.");

                    txtBox.Text = string.Join(Environment.NewLine, list.ToArray());
                }
                else
                    SendMessage("Fant ingen linjer med Password()", Color.Red);
            }
            catch (Exception ex)
            {
                Log.Unhandled(ex);
            }
        }
예제 #5
0
        private void ImportAppSettings()
        {
            // Fane: GENERELT
            // GENERELT - Elguide
            if (main.appConfig.Avdeling >= 1000 && main.appConfig.Avdeling <= 1700)
            {
                textBoxAvd.BackColor = ColorTranslator.FromHtml("#b9dc9c");
                textBoxAvd.Text = main.appConfig.Avdeling.ToString();
                button1.Enabled = true;
            }
            else
            {
                textBoxAvd.BackColor = ColorTranslator.FromHtml("#ecc3ad");
                textBoxAvd.Text = "";
                button1.Enabled = false;
            }
            textBoxCSVexportFolder.Text = main.appConfig.csvElguideExportFolder;

            // GENERELT - Import
            if (main.appConfig.importSetting == "Normal")
                comboBoxImport.SelectedIndex = 0;
            if (main.appConfig.importSetting == "Full")
                comboBoxImport.SelectedIndex = 1;
            if (main.appConfig.importSetting == "FullFavoritt")
                comboBoxImport.SelectedIndex = 2;

            // GENERELT - Program
            checkMinimizeToTray.Checked = main.appConfig.WindowMinimizeToTray;
            checkExitToTray.Checked = main.appConfig.WindowExitToTray;
            checkBoxActivateSqlCache.Checked = main.appConfig.useSqlCache;
            checkBoxAdvanced.Checked = main.appConfig.showAdvancedFunctions;
            if (main.appConfig.showAdvancedFunctions)
                AddAdvancedTabs();
            else
                RemoveAdvancedTabs();
            checkBoxActivateExperimental.Checked = main.appConfig.experimental;

            // Fanse: RANKING
            // RANKING - Utseende
            checkBoxRankUtseendeInntjen.Checked = main.appConfig.kolInntjen;
            checkVisProv.Checked = main.appConfig.kolProv;
            kolOmsetningCheckBox.Checked = main.appConfig.kolSalgspris;
            kolRabattCheckBox.Checked = main.appConfig.kolRabatt;
            checkBoxKombkol.Checked = !main.appConfig.kolVarekoder;
            if (main.appConfig.sortIndex > -1)
                comboBoxRankingSort.SelectedIndex = main.appConfig.sortIndex;
            checkRankAvdShowAll.Checked = main.appConfig.rankingAvdelingShowAll;

            // RANKING - Vinnprodukter
            checkBoxVinn.Checked = main.appConfig.vinnDatoFraTil;
            if (main.appConfig.vinnFrom > FormMain.rangeMin)
                dateTimeVinnFrom.Value = main.appConfig.vinnFrom;
            if (main.appConfig.vinnTo > FormMain.rangeMin)
            dateTimeVinnTo.Value = main.appConfig.vinnTo;
            checkBoxVinnSisteDagVare.Checked = main.appConfig.vinnSisteDagVare;
            checkBoxVinnVisVarekoder.Checked = main.appConfig.vinnVisVarekoder;
            checkBoxVinnVisVarekoderEkstra.Checked = main.appConfig.vinnVisVarekoderExtra;
            checkBoxVinnSimple.Checked = main.appConfig.vinnEnkelModus;
            checkBoxVinnVisAftersales.Checked = main.appConfig.vinnVisAftersales;

            // RANKING - Hitrate krav
            checkKravNettbrett.Checked = main.appConfig.kolKravNettbrett;
            checkKravData.Checked = main.appConfig.kolKravData;
            checkKravAudioVideo.Checked = main.appConfig.kolKravAudioVideo;
            checkKravTele.Checked = main.appConfig.kolKravTele;
            SetNumericValue(numericKravHitrateData, main.appConfig.kravHitrateData);
            SetNumericValue(numericKravHitrateAudioVideo, main.appConfig.kravHitrateAudioVideo);
            SetNumericValue(numericKravHitrateTele, main.appConfig.kravHitrateTele);
            SetNumericValue(numericKravHitrateNettbrett, main.appConfig.kravHitrateNettbrett);

            // RANKING - Valg
            checkBoxIgnoreSunday.Checked = main.appConfig.ignoreSunday;
            checkBoxRankingShowLastWeek.Checked = main.appConfig.rankingShowLastWeek;
            comboBoxRankingFjoraaret.SelectedIndex = main.appConfig.rankingCompareLastyear;
            comboBoxRankingForrigeMaaned.SelectedIndex = main.appConfig.rankingCompareLastmonth;

            // Fane: PDF ----------------------------------------------------------------------------
            // PDF - PDF Export

            checkBoxPDFbutikk.Checked = main.appConfig.pdfVisButikk;
            checkBoxPDFknowhow.Checked = main.appConfig.pdfVisKnowHow;
            checkBoxPDFdata.Checked = main.appConfig.pdfVisData;
            checkBoxPDFaudiovideo.Checked = main.appConfig.pdfVisAudioVideo;
            checkBoxPDFtele.Checked = main.appConfig.pdfVisTele;
            checkBoxPDFlister.Checked = main.appConfig.pdfVisLister;
            checkBoxPDFoversikt.Checked = main.appConfig.pdfVisOversikt;
            checkBoxPDFtoppselgere.Checked = main.appConfig.pdfVisToppselgere;
            checkBoxPDFvinnprodukter.Checked = main.appConfig.pdfVisVinnprodukter;

            checkBoxPDFtjenester.Checked = main.appConfig.pdfVisTjenester;
            checkBoxPDFsnittpriser.Checked = main.appConfig.pdfVisSnittpriser;

            checkBoxPdfVisService.Checked = main.appConfig.pdfVisService;

            checkBoxPDFobsolete.Checked = main.appConfig.pdfVisObsolete;
            checkBoxPDFobsoleteList.Checked = main.appConfig.pdfVisObsoleteList;
            checkBoxPDFweekly.Checked = main.appConfig.pdfVisWeekly;
            checkBoxPDFprisguide.Checked = main.appConfig.pdfVisPrisguide;

            checkBoxPdfVisBudget.Checked = main.appConfig.pdfVisBudsjett;

            // PDF - Format
            if (main.appConfig.pdfLandscape)
                radioButtonPDForiantationSide.Checked = true;
            else
                radioButtonPDForiantationUp.Checked = true;
            SetNumericValue(numericPDFzoon, main.appConfig.pdfZoom);
            checkBoxPdfUtvidetGrafer.Checked = main.appConfig.pdfExpandedGraphs;
            checkBoxPdfToc.Checked = main.appConfig.pdfTableOfContent;

            // PDF - PDF Export
            textBoxExportPDF.Text = main.appConfig.pdfExportFolder;
            checkPDFExport.Checked = main.appConfig.pdfExport;

            // Fane: TOPPSELGERE --------------------------------------------------------------------------
            // TOPPSELGERE - Sortering
            checkBoxToppselgereSortTjenesterInntjen.Checked = main.appConfig.bestofSortTjenesterSecondary;
            checkBoxToppselgereSortInntjening.Checked = main.appConfig.bestofSortInntjenSecondary;

            // TOPPSELGERE - Antall
            comboBoxAntallInntjen.SelectedIndex = main.appConfig.bestofTallInntjen;
            comboBoxAntallTA.SelectedIndex = main.appConfig.bestofTallTA;
            comboBoxAntallStrom.SelectedIndex = main.appConfig.bestofTallStrom;
            comboBoxAntallRTG.SelectedIndex = main.appConfig.bestofTallTjen;
            comboBoxAntallFinans.SelectedIndex = main.appConfig.bestofTallFinans;

            // TOPPSELGERE - Annet
            checkBoxBestofCompareChange.Checked = main.appConfig.bestofCompareChange;
            checkBoxToppselgereVisBesteFjoråret.Checked = main.appConfig.bestofVisBesteLastYear;
            if (main.appConfig.bestofVisBesteLastYearTotal)
                radioButtonToppselgereVisBesteFjoråretTotalt.Checked = true;
            else
                radioButtonToppselgereVisBesteFjoråretMtd.Checked = true;
            checkBoxTopplisteVisBesteSisteåpningsdag.Checked = main.appConfig.bestofVisBesteLastOpenday;
            checkBoxBestofHoppoverKasse.Checked = main.appConfig.bestofHoppoverKasse;

            // TOPPSELGERE - Lister
            checkBoxListerInntjening.Checked = main.appConfig.listerVisInntjen;
            checkBoxListerAccessories.Checked = main.appConfig.listerVisAccessories;
            SetNumericValue(numericListerMax, main.appConfig.listerMaxLinjer);

            // Fane: OVERSIKT ---------------------------------------------------------------------------
            // OVERSIKT - Generelt
            checkBoxOversiktBegrens.Checked = main.appConfig.oversiktFilterToDepartments;
            checkBoxOversiktHideAftersales.Checked = main.appConfig.oversiktHideAftersales;
            checkBoxOversiktHideKitchen.Checked = main.appConfig.oversiktHideKitchen;

            // OVERSIKT - Krav
            checkOversiktVisKrav.Checked = main.appConfig.oversiktKravVis;
            checkKravFinans.Checked = main.appConfig.oversiktKravFinans;
            checkKravMod.Checked = main.appConfig.oversiktKravMod;
            checkKravStrom.Checked = main.appConfig.oversiktKravStrom;
            checkKravRtgsa.Checked = main.appConfig.oversiktKravRtgsa;
            checkKravAntallFinans.Checked = main.appConfig.oversiktKravFinansAntall;
            checkKravAntallMod.Checked = main.appConfig.oversiktKravModAntall;
            checkKravAntallStrom.Checked = main.appConfig.oversiktKravStromAntall;
            checkKravAntallRtgsa.Checked = main.appConfig.oversiktKravRtgsaAntall;
            checkKravMTD.Checked = main.appConfig.oversiktKravMtd;
            checkKravMtdShowTarget.Checked = main.appConfig.oversiktKravMtdShowTarget;

            // Fane: UTSEENDE -----------------------------------------------------------------
            // UTSEENDE - Data hitrate farger
            color1.BackColor = main.appConfig.color1;
            if (main.appConfig.color1inv) { color1.ForeColor = Color.White; }
            numericUpDown01.Value = main.appConfig.color1max;
            color2.BackColor = main.appConfig.color2;
            if (main.appConfig.color2inv) { color2.ForeColor = Color.White; }
            numericUpDown02.Value = main.appConfig.color2min;
            numericUpDown03.Value = main.appConfig.color2max;
            color3.BackColor = main.appConfig.color3;
            if (main.appConfig.color3inv) { color3.ForeColor = Color.White; }
            numericUpDown04.Value = main.appConfig.color3min;
            numericUpDown05.Value = main.appConfig.color3max;
            color4.BackColor = main.appConfig.color4;
            if (main.appConfig.color4inv) { color4.ForeColor = Color.White; }
            numericUpDown06.Value = main.appConfig.color4min;
            numericUpDown07.Value = main.appConfig.color4max;
            color5.BackColor = main.appConfig.color5;
            if (main.appConfig.color5inv) { color5.ForeColor = Color.White; }
            numericUpDown08.Value = main.appConfig.color5min;
            numericUpDown09.Value = main.appConfig.color5max;
            color6.BackColor = main.appConfig.color6;
            if (main.appConfig.color6inv) { color6.ForeColor = Color.White; }
            numericUpDown10.Value = main.appConfig.color6min;

            // UTSEENDE - Nettbrett farger
            ncolor1.BackColor = main.appConfig.ncolor1;
            if (main.appConfig.ncolor1inv) { ncolor1.ForeColor = Color.White; }
            numericUpDown1.Value = main.appConfig.ncolor1max;
            ncolor2.BackColor = main.appConfig.ncolor2;
            if (main.appConfig.ncolor2inv) { ncolor2.ForeColor = Color.White; }
            numericUpDown9.Value = main.appConfig.ncolor2min;
            numericUpDown11.Value = main.appConfig.ncolor2max;
            ncolor3.BackColor = main.appConfig.ncolor3;
            if (main.appConfig.ncolor3inv) { ncolor3.ForeColor = Color.White; }
            numericUpDown8.Value = main.appConfig.ncolor3min;
            numericUpDown7.Value = main.appConfig.ncolor3max;
            ncolor4.BackColor = main.appConfig.ncolor4;
            if (main.appConfig.ncolor4inv) { ncolor4.ForeColor = Color.White; }
            numericUpDown6.Value = main.appConfig.ncolor4min;
            numericUpDown5.Value = main.appConfig.ncolor4max;
            ncolor5.BackColor = main.appConfig.ncolor5;
            if (main.appConfig.ncolor5inv) { ncolor5.ForeColor = Color.White; }
            numericUpDown4.Value = main.appConfig.ncolor5min;
            numericUpDown3.Value = main.appConfig.ncolor5max;
            ncolor6.BackColor = main.appConfig.ncolor6;
            if (main.appConfig.ncolor6inv) { ncolor6.ForeColor = Color.White; }
            numericUpDown2.Value = main.appConfig.ncolor6min;

            // UTSEENDE - Format og logo
            if (main.appConfig.visningNull == "&nbsp;")
                visningNullTextBox.Text = "";
            else
                visningNullTextBox.Text = main.appConfig.visningNull;
            checkBoxJevnfarge.Checked = main.appConfig.visningJevnfarge;
            checkBoxTruncate.Checked = main.appConfig.kolForkort;
            if (main.appConfig.chainElkjop)
            {
                panelPictureElkjop.BackColor = Color.Black;
                panelPictureLefdal.BackColor = Color.White;
            }
            else
            {
                panelPictureElkjop.BackColor = Color.White;
                panelPictureLefdal.BackColor = Color.Black;
            }

            // Fane: FAVORITTER
            // FAVORITTER - Favoritt avdelinger
            if (main.appConfig.favAvdeling.Length > 3)
            {
                string[] avdStr = main.appConfig.favAvdeling.Split(',');
                Avdeling avdObject = new Avdeling();
                foreach (string avd in avdStr)
                {
                    string str = avdObject.Get(avd);
                    if (str.Length == 4)
                        listBoxFavAvd.Items.Add(avd);
                    else
                        listBoxFavAvd.Items.Add(avd + ": " + str);
                }
            }
            checkBoxFav.Checked = main.appConfig.favVis;

            // Fane: AVANSERT
            // AVANSERT - hovedprodukt varegrupper
            if (VerifyIntArrayToString(main.appConfig.mainproductListMda))
                textBoxHovedMda.Text = IntArrayToString(main.appConfig.mainproductListMda);
            else
                textBoxHovedMda.Text = "131,132,134,135,136,143,144,145";

            if (VerifyIntArrayToString(main.appConfig.mainproductListAv))
                textBoxHovedAv.Text = IntArrayToString(main.appConfig.mainproductListAv);
            else
                textBoxHovedAv.Text = "224,273";

            if (VerifyIntArrayToString(main.appConfig.mainproductListSda))
                textBoxHovedSda.Text = IntArrayToString(main.appConfig.mainproductListSda);
            else
                textBoxHovedSda.Text = "301,346";

            if (VerifyIntArrayToString(main.appConfig.mainproductListTele))
                textBoxHovedTele.Text = IntArrayToString(main.appConfig.mainproductListTele);
            else
                textBoxHovedTele.Text = "431,447";

            if (VerifyIntArrayToString(main.appConfig.mainproductListData))
                textBoxHovedData.Text = IntArrayToString(main.appConfig.mainproductListData);
            else
                textBoxHovedData.Text = "531,533,534";

            // AVANSERT - tilbehør varegrupper
            if (VerifyIntArrayToString(main.appConfig.accessoriesListMda))
                textBoxAccMda.Text = IntArrayToString(main.appConfig.accessoriesListMda);
            else
                textBoxAccMda.Text = "195";

            if (VerifyIntArrayToString(main.appConfig.accessoriesListAv))
                textBoxAccAv.Text = IntArrayToString(main.appConfig.accessoriesListAv);
            else
                textBoxAccAv.Text = "214";

            if (VerifyIntArrayToString(main.appConfig.accessoriesListSda))
                textBoxAccSda.Text = IntArrayToString(main.appConfig.accessoriesListSda);
            else
                textBoxAccSda.Text = "395";

            if (VerifyIntArrayToString(main.appConfig.accessoriesListTele))
                textBoxAccTele.Text = IntArrayToString(main.appConfig.accessoriesListTele);
            else
                textBoxAccTele.Text = "487";

            if (VerifyIntArrayToString(main.appConfig.accessoriesListData))
                textBoxAccData.Text = IntArrayToString(main.appConfig.accessoriesListData);
            else
                textBoxAccData.Text = "552,569,589";

            // Fane: E-POST
            // E-POST - Server
            textBoxEpostSMTPserver.Text = main.appConfig.epostSMTPserver;
            textBoxEpostSMTPport.Text = main.appConfig.epostSMTPport.ToString();
            checkBoxEmailUseBcc.Checked = main.appConfig.epostBrukBcc;
            checkBoxEmailUseSsl.Checked = main.appConfig.epostSMTPssl;
            textBoxEpostAvsender.Text = main.appConfig.epostAvsender;
            textBoxEpostAvsenderNavn.Text = main.appConfig.epostAvsenderNavn;
            textBoxEpostPOP3server.Text = main.appConfig.epostPOP3server;
            textBoxEpostPOP3port.Text = main.appConfig.epostPOP3port.ToString();
            checkBoxPOP3UseSsl.Checked = main.appConfig.epostPOP3ssl;
            textBoxEpostPOP3bruker.Text = main.appConfig.epostPOP3username;
            var aes = new SimpleAES();
            if (!String.IsNullOrEmpty(main.appConfig.epostPOP3password))
                textBoxEpostPOP3pass.Text = aes.DecryptString(main.appConfig.epostPOP3password);
            else
                textBoxEpostPOP3pass.Text = "";

            // E-POST - Vedlegg
            checkBoxOpenXmlSendAllSalesRep.Checked = main.appConfig.openXml_AllSalesRep_AutoSend;
            radioButtonOpenXmlAllSalesRepDaily.Checked = main.appConfig.openXml_AllSalesRep_AutoSend_Daily;

            // Fane: SERVICE
            // SERVICE - Service generelt
            textServiceEgenServiceFilter.Text = main.appConfig.serviceEgenServiceFilter;
            checkServiceShowHistory.Checked = main.appConfig.serviceShowHistory;
            checkServiceShowHistoryGraph.Checked = main.appConfig.serviceShowHistoryGraph;
            checkServiceShowTrend.Checked = main.appConfig.serviceShowTrend;
            SetNumericValue(numericServiceHistoryDays, main.appConfig.serviceHistoryDays);
            checkBoxServiceFerdigService.Checked = main.appConfig.serviceFerdigServiceStats;
            SetNumericValue(numericServiceFerdigStatsAntall, main.appConfig.serviceFerdigServiceStatsAntall);

            // Fane: GRAF ----------------------------------------------------------------------------
            // GRAF - Grafikk
            checkBoxVisGrafikk.Checked = main.appConfig.graphVis;
            SetNumericValue(numericGraphDPI, main.appConfig.graphScreenDPI);
            textBoxGraphWidth.Text = main.appConfig.graphWidth.ToString();
            checkBoxGrafikkExtra.Checked = main.appConfig.graphExtra;
            checkBoxGrafikkAdvanced.Checked = main.appConfig.graphAdvanced;
            checkBoxGrafikkButikk.Checked = main.appConfig.graphButikk;
            checkBoxGrafikkKnowHow.Checked = main.appConfig.graphKnowHow;
            checkBoxGrafikkData.Checked = main.appConfig.graphData;
            checkBoxGrafikkAV.Checked = main.appConfig.graphAudioVideo;
            checkBoxGrafikkTele.Checked = main.appConfig.graphTele;
            checkBoxGrafikkOversikt.Checked = main.appConfig.graphOversikt;
            textBoxGraphAntall.Text = main.appConfig.graphDager.ToString();
            if (main.appConfig.graphResX > 900 && main.appConfig.graphResY > 300)
            {
                textBoxGraphX.Text = main.appConfig.graphResX.ToString();
                textBoxGraphY.Text = main.appConfig.graphResY.ToString();
            }
            else
            {
                textBoxGraphX.Text = "900";
                textBoxGraphY.Text = "300";
            }

            // Fane: LAGER ------------------------------------------------------------------------------------
            // LAGER - Generelt
            if (main.appConfig.storeCompareMtd)
                radioLagerUtviklingMTD.Checked = true;
            else
                radioLagerUtviklingDato.Checked = true;
            if (main.appConfig.dbStoreViewpoint.Date < main.appConfig.dbStoreTo && main.appConfig.dbStoreViewpoint > main.appConfig.dbStoreFrom)
                pickerLagerViewpoint.Value = main.appConfig.dbStoreViewpoint;
            else if (main.appConfig.dbStoreFrom > FormMain.rangeMin)
                pickerLagerViewpoint.Value = main.appConfig.dbStoreFrom;
            else
                pickerLagerViewpoint.Value = DateTime.Now;
            checkBoxStoreShowStoreTwo.Checked = main.appConfig.storeShowStoreTwo;
            SetNumericValue(numericUpDownLagerPriserMaxDager, main.appConfig.storeMaxAgePrizes);

            // LAGER - Ukurante varer
            SetNumericValue(numericStoreObsoleteFilter, main.appConfig.storeObsoleteFilterPercent);
            SetNumericValue(numericStoreObsoleteFilterMax, main.appConfig.storeObsoleteFilterMax);

            checkLagerHovedprodukter.Checked = main.appConfig.storeObsoleteListMainProductsOnly;
            checkBoxObsoleteFilterMainStoreOnly.Checked = main.appConfig.storeObsoleteFilterMainStoreOnly;

            comboBoxStoreObsoleteSortBy.Text = main.appConfig.storeObsoleteSortBy;
            checkBoxStoreObsoleteSortAsc.Checked = main.appConfig.storeObsoleteSortAsc;

            // LAGER - Prisguide.no og Ukenytt
            SetNumericValue(numericUpDownLagerPrisguideImportPages, main.appConfig.onlinePrisguidePagesToImport);

            // Fane: VEDLIKEHOLD ------------------------------------------------------------------------------
            // VEDLIKEHOLD - Annet
            checkBoxDebug.Checked = main.appConfig.debug;
            checkBoxDebugShowSql.Checked = main.appConfig.debugSql;
        }