public IActionResult VoegToe(Analyse analyse, LoonkostFormViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    analyse = _analyseRepository.GetById(analyse.AnalyseId, Soort.Loonkost);
                    DecimalConverter dc   = new DecimalConverter();
                    Loonkost         kost = new Loonkost
                    {
                        Beschrijving           = model.Beschrijving,
                        AantalUrenPerWeek      = model.AantalUrenPerWeek,
                        BrutoMaandloonFulltime = dc.ConvertToDecimal(model.BrutoMaandloonFulltime),
                        Ondersteuningspremie   = model.Ondersteuningspremie,
                        AantalMaandenIBO       = model.AantalMaandenIBO,
                        IBOPremie = dc.ConvertToDecimal(model.IBOPremie)
                    };

                    if (model.doelgroep != null)
                    {
                        int doelgroepid = model.doelgroep ?? 0;
                        kost.Doelgroep = _doelgroepRepository.GetById(doelgroepid);
                    }

                    analyse.Loonkosten.Add(kost);
                    analyse.DatumLaatsteAanpassing = DateTime.Now;
                    _analyseRepository.Save();

                    TempData["message"] = Meldingen.VoegToeSuccesvolKost;
                }
            }
            catch (Exception e)
            {
                if (e is ArgumentException || e is FormatException)
                {
                    TempData["error"] = e.Message;
                }
                else
                {
                    _exceptionLogRepository.Add(new ExceptionLog(e, "LoonKosten", "VoegToe -- POST --"));
                    _exceptionLogRepository.Save();
                    TempData["error"] = Meldingen.OpslaanFoutmeldingKost;
                    return(RedirectToAction("Index"));
                }
            }

            return(RedirectToAction("Index"));
        }
        public IActionResult HaalAnalysesOp(Jobcoach jobcoach, IndexViewModel model = null)
        {
            try
            {
                _analyseRepository.SetAnalysesJobcoach(jobcoach, true);
                int totaal = jobcoach.Analyses.Count; //13

                bool volgende = false;
                bool vorige   = false;

                //volgende knop laten zien of niet
                if (totaal > MAX_AANTAL_ANALYSES && model?.EindIndex < totaal)
                {
                    volgende = true;//true // false
                }

                //vorige knop laten zien of niet
                if (model?.BeginIndex != 0)
                {
                    vorige = true;//false //true
                }

                int aantal   = MAX_AANTAL_ANALYSES;
                var analyses = _analyseRepository
                               .GetAnalyses(jobcoach, model.BeginIndex, aantal)
                               .ToList();

                jobcoach.Analyses = analyses;

                model = new IndexViewModel(jobcoach)
                {
                    BeginIndex   = model.BeginIndex,
                    EindIndex    = model.BeginIndex + MAX_AANTAL_ANALYSES,
                    ShowVolgende = volgende,
                    ShowVorige   = vorige
                };

                return(PartialView("_Analyses", model));
            }
            catch (Exception e)
            {
                _exceptionLogRepository.Add(new ExceptionLog(e, "Archief", "HaalAnalysesOp"));
                _exceptionLogRepository.Save();
                TempData["error"] = "Er liep iets mis, probeer later opnieuw";
            }

            return(RedirectToAction("Index"));
        }
Ejemplo n.º 3
0
        public async Task SendAsync(EmailRequest emailRequest)
        {
            var form = new Dictionary <string, string>();

            form["from"] = emailRequest.From ?? from;
            form["to"]   = emailRequest.To;
            if (!string.IsNullOrEmpty(emailRequest.Cc))
            {
                form["cc"] = emailRequest.Cc;
            }
            if (!string.IsNullOrEmpty(emailRequest.Bcc))
            {
                form["bcc"] = emailRequest.Bcc;
            }
            form["subject"] = emailRequest.Subject;
            form["html"]    = emailRequest.Body;

            var request = new HttpRequestMessage(HttpMethod.Post, new Uri(($"https://api.mailgun.net/v3/{domain}/messages")));

            request.Headers.Authorization = new AuthenticationHeaderValue("Basic", $"api:{apiKey}".EncodeWithBase64());
            request.Content = new FormUrlEncodedContent(form);

            var response = await httpClient.SendAsync(request);

            if (!response.IsSuccessStatusCode)
            {
                var content = await response.Content.ReadAsStringAsync();

                var exceptionLog = new ExceptionLog("MailChimpSubscriber", $"To: {emailRequest.To}, Subject: {emailRequest.Subject}", "Mailgun", "Mailgun", content, currentContext.Current.Principal?.Id ?? Guid.Empty, currentContext.Current.IP);
                exceptionLogRepository.Add(exceptionLog);
            }
        }
Ejemplo n.º 4
0
        public IActionResult Index()
        {
            try
            {
                Jobcoach gebruiker = _gebruikerRepository.GetByEmail(HttpContext.User.Identity.Name);

                return(View(new ProfielViewModel(gebruiker)));
            }
            catch (Exception e)
            {
                _exceptionLogRepository.Add(new ExceptionLog(e, "Profiel", "Index"));
                _exceptionLogRepository.Save();
                TempData["error"] = "Er ging onverwachts iets fout tijdens het ophalen van je gegevens," +
                                    " probeer later opnieuw";
            }

            return(RedirectToAction("Index", "Kairos"));
        }
Ejemplo n.º 5
0
        public IActionResult VoegToe(Analyse analyse, EnclaveKostViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    analyse = _analyseRepository.GetById(analyse.AnalyseId, Soort.EnclaveKost);
                    DecimalConverter dc   = new DecimalConverter();
                    EnclaveKost      kost = new EnclaveKost
                    {
                        Soort        = model.Soort,
                        Type         = model.Type,
                        Beschrijving = model.Beschrijving,
                        Bedrag       = dc.ConvertToDecimal(model.Bedrag)
                    };

                    analyse.EnclaveKosten.Add(kost);
                    analyse.DatumLaatsteAanpassing = DateTime.Now;
                    _analyseRepository.Save();

                    TempData["message"] = Meldingen.VoegToeSuccesvolKost;
                }
            }
            catch (Exception e)
            {
                if (e is ArgumentException || e is FormatException)
                {
                    TempData["error"] = e.Message;
                }
                else
                {
                    _exceptionLogRepository.Add(new ExceptionLog(e, "EnclaveKost", "VoegToe -- POST --"));
                    _exceptionLogRepository.Save();
                    TempData["error"] = Meldingen.OpslaanFoutmeldingKost;
                    return(RedirectToAction("Index"));
                }
            }

            PlaatsTotaalInViewData(analyse);

            return(RedirectToAction("Index"));
        }
Ejemplo n.º 6
0
        public IActionResult NieuweAnalyse(Jobcoach jobcoach)
        {
            try
            {
                Analyse analyse = new Analyse();

                _analyseRepository.Add(analyse);
                _analyseRepository.Save();

                if (jobcoach != null)
                {
                    jobcoach = _jobcoachRepository.GetById(jobcoach.PersoonId);
                    jobcoach.Analyses.Add(analyse);
                    _jobcoachRepository.Save();

                    if (HttpContext != null)
                    {// nodig voor testen, HttpContext kan je niet mocken
                        AnalyseFilter.SetAnalyseInSession(HttpContext, analyse);
                    }

                    return(RedirectToAction("SelecteerWerkgever", "Werkgever"));
                }
            }
            catch (Exception e)
            {
                _exceptionLogRepository.Add(new ExceptionLog(e, "Analyse", "NieuweAnalyse"));
                _exceptionLogRepository.Save();
                TempData["error"] = "Er ging iets fout tijdens het starten van een nieuwe analyse, probeer later opnieuw";
            }

            return(RedirectToAction("Index", "Kairos"));
        }
Ejemplo n.º 7
0
        public IActionResult VoegToe(Analyse analyse, UitzendKrachtBesparingViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    analyse = _analyseRepository.GetById(analyse.AnalyseId, Soort.UitzendkrachtBesparing);
                    DecimalConverter       dc   = new DecimalConverter();
                    UitzendKrachtBesparing baat = new UitzendKrachtBesparing
                    {
                        Type         = model.Type,
                        Soort        = model.Soort,
                        Beschrijving = model.Beschrijving,
                        Bedrag       = dc.ConvertToDecimal(model.Bedrag)
                    };

                    analyse.UitzendKrachtBesparingen.Add(baat);
                    analyse.DatumLaatsteAanpassing = DateTime.Now;
                    _analyseRepository.Save();

                    TempData["message"] = Meldingen.VoegToeSuccesvolBaat;
                }
            }
            catch (Exception e)
            {
                if (e is ArgumentException || e is FormatException)
                {
                    TempData["error"] = e.Message;
                }
                else
                {
                    _exceptionLogRepository.Add(new ExceptionLog(e, "UitzendKrachtBesparing", "VoegToe -- POST --"));
                    _exceptionLogRepository.Save();
                    TempData["error"] = Meldingen.OpslaanFoutmeldingKost;
                    return(RedirectToAction("Index"));
                }
            }

            return(RedirectToAction("Index"));
        }
        public IActionResult VoegToe(Analyse analyse, MedewerkerNiveauBaatViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    analyse = _analyseRepository.GetById(analyse.AnalyseId, Soort.MedewerkersHogerNiveau);
                    DecimalConverter     dc   = new DecimalConverter();
                    MedewerkerNiveauBaat baat = new MedewerkerNiveauBaat
                    {
                        Type  = model.Type,
                        Soort = model.Soort,
                        Uren  = model.Uren,
                        BrutoMaandloonFulltime = dc.ConvertToDecimal(model.BrutoMaandloonFulltime)
                    };

                    analyse.MedewerkersHogerNiveauBaten.Add(baat);
                    analyse.DatumLaatsteAanpassing = DateTime.Now;
                    _analyseRepository.Save();

                    TempData["message"] = Meldingen.VoegToeSuccesvolBaat;
                }
            }
            catch (Exception e)
            {
                if (e is ArgumentException || e is FormatException)
                {
                    TempData["error"] = e.Message;
                }
                else
                {
                    _exceptionLogRepository.Add(new ExceptionLog(e, "MedewerkersHogerNiveau", "VoegToe -- POST --"));
                    _exceptionLogRepository.Save();
                    TempData["error"] = Meldingen.OpslaanFoutmeldingKost;
                    return(RedirectToAction("Index"));
                }
            }

            return(RedirectToAction("Index"));
        }
        public async Task <int> MySqlException(DtoExceptionLog mysqlexception)
        {
            return(await _exceptionLogRepository.Add(new ExceptionLog
            {
                Ip = mysqlexception.Ip,
                Method = mysqlexception.Method,
                Path = mysqlexception.Path,
                Source = mysqlexception.Source,
                Message = mysqlexception.Message,

                DateTime = mysqlexception.DateTime
            }));
        }
Ejemplo n.º 10
0
        protected override void DataValidate(FilePathRequest instance, ActionType actionType)
        {
            if (File.Exists(instance.Path))
            {
                return;
            }

            exceptionLogRepository.Add(new ExceptionLog(
                                           "FilePathRequestValidator", string.Empty, "FileNotFound", "FileNotFound",
                                           $"File does not exits. Path: {instance.Path}", Guid.Empty, "0.0.0.0"));

            throw new FileNotFoundException("FileNotFound", instance.Path);
        }
        public IActionResult Index(Analyse analyse)
        {
            try
            {
                if (analyse.Departement == null)
                {
                    TempData["error"] = "U hebt nog geen werkgever geselecteerd, gelieve deze eerst te selecteren";
                    return(RedirectToAction("Index", "Werkgever"));
                }

                ViewData["analyseId"] = analyse.AnalyseId;

                int id = analyse.Departement.Werkgever.WerkgeverId;
                ViewData["WerkgeverId"] = id;

                Werkgever werkgever = _werkgeverRepository.GetById(id);

                analyse.Departement = _departementRepository.GetById(analyse.Departement.DepartementId);

                if (analyse.Departement?.ContactPersoon != null)
                {
                    ContactPersoonViewModel model = new ContactPersoonViewModel(analyse.Departement?.ContactPersoon,
                                                                                analyse.Departement.Werkgever.WerkgeverId);
                    return(View("Index", model));
                }
                else
                {
                    TempData["error"] = "Er is nog geen contactpersoon, voeg hier eventueel een contactpersoon toe";
                    return(RedirectToAction("VoegContactPersoonToe", new { id = werkgever.WerkgeverId }));
                }
            }
            catch (Exception e)
            {
                _exceptionLogRepository.Add(new ExceptionLog(e, "ContactPersoon", "Index"));
                _exceptionLogRepository.Save();
                TempData["error"] = "Er ging onverwachts iets mis, probeer later opnieuw";
                return(RedirectToAction("Index", "Werkgever"));
            }
        }
Ejemplo n.º 12
0
        public void OnException(IExceptionContext exceptionContext)
        {
            if (!isExceptionLogEnabled)
            {
                return;
            }

            try {
                var exceptionLog = exceptionLogResolver.Resolve(exceptionContext);
                exceptionLogRepository.Add(exceptionLog);
            } catch {
                // TODO: log to file system.
            }
        }
Ejemplo n.º 13
0
        public async Task <IActionResult> Index()
        {
            try
            {
                if (HttpContext != null)
                {
                    AnalyseFilter.ClearSession(HttpContext);
                }

                ApplicationUser user = await _userManager.GetUserAsync(User);

                if (user == null)
                {
                    TempData["error"] = "Gelieve je eerst aan te melden alvorens deze pagina te bezoeken.";
                    await _signInManager.SignOutAsync();

                    return(RedirectToAction("Login", "Account"));
                }

                IndexViewModel model = new IndexViewModel
                {
                    BeginIndex = 0,
                    EindIndex  = MAX_AANTAL_ANALYSES
                };
                IEnumerable <Datum> datumTypes = Enum.GetValues(typeof(Datum))
                                                 .Cast <Datum>();

                model.listItems = from date in datumTypes
                                  select new SelectListItem
                {
                    Text  = ((int)date) > 1 ? ((int)date).ToString() + " maanden" : ((int)date).ToString() + " maand",
                    Value = ((int)date).ToString()
                };


                return(View("Index", model));
            }
            catch (Exception e)
            {
                _exceptionLogRepository.Add(new ExceptionLog(e, "Kairos", "Index"));
                _exceptionLogRepository.Save();
                TempData["error"] = "Je analyses konder niet geladen worden, probeer later opnieuw";
            }

            return(View("Index", new IndexViewModel()));
        }
Ejemplo n.º 14
0
        public IActionResult Opslaan(Analyse analyse, SubsidieViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    analyse = _analyseRepository.GetById(analyse.AnalyseId, Soort.Subsidie);
                    // de baat bestaat reeds:
                    DecimalConverter dc   = new DecimalConverter();
                    Subsidie         baat = new Subsidie
                    {
                        Type   = model.Type,
                        Soort  = model.Soort,
                        Bedrag = dc.ConvertToDecimal(model.Bedrag)
                    };

                    analyse.Subsidie = baat;
                    analyse.DatumLaatsteAanpassing = DateTime.Now;
                    _analyseRepository.Save();

                    TempData["message"] = Meldingen.OpslaanSuccesvolBaat;
                }
            }
            catch (Exception e)
            {
                if (e is ArgumentException || e is FormatException)
                {
                    TempData["error"] = e.Message;
                }
                else
                {
                    _exceptionLogRepository.Add(new ExceptionLog(e, "Subsidie", "Opslaan -- POST --"));
                    _exceptionLogRepository.Save();
                    TempData["error"] = Meldingen.OpslaanFoutmeldingKost;
                    return(RedirectToAction("Index"));
                }
            }


            return(RedirectToAction("Index"));
        }
Ejemplo n.º 15
0
        public IActionResult Opslaan(Analyse analyse, LogistiekeBesparingViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    analyse = _analyseRepository.GetById(analyse.AnalyseId, Soort.LogistiekeBesparing);
                    DecimalConverter    dc   = new DecimalConverter();
                    LogistiekeBesparing baat = new LogistiekeBesparing
                    {
                        Type                     = model.Type,
                        Soort                    = model.Soort,
                        TransportKosten          = dc.ConvertToDecimal(model.TransportKosten),
                        LogistiekHandlingsKosten = dc.ConvertToDecimal(model.LogistiekHandlingsKosten)
                    };

                    analyse.LogistiekeBesparing    = baat;
                    analyse.DatumLaatsteAanpassing = DateTime.Now;
                    _analyseRepository.Save();
                }

                TempData["message"] = Meldingen.OpslaanSuccesvolBaat;
            }
            catch (Exception e)
            {
                if (e is ArgumentException || e is FormatException)
                {
                    TempData["error"] = e.Message;
                }
                else
                {
                    _exceptionLogRepository.Add(new ExceptionLog(e, "LogistiekeBesparing", "Opslaan -- GET --"));
                    _exceptionLogRepository.Save();
                    TempData["error"] = Meldingen.OpslaanFoutmeldingKost;
                    return(RedirectToAction("Index"));
                }
            }

            return(RedirectToAction("Index"));
        }
Ejemplo n.º 16
0
        public IActionResult Opslaan(Analyse analyse, ExtraOmzetViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    analyse = _analyseRepository.GetById(analyse.AnalyseId, Soort.ExtraOmzet);
                    DecimalConverter dc   = new DecimalConverter();
                    ExtraOmzet       baat = new ExtraOmzet
                    {
                        Type  = model.Type,
                        Soort = model.Soort,
                        JaarbedragOmzetverlies = dc.ConvertToDecimal(model.JaarbedragOmzetverlies),
                        Besparing = dc.ConvertToDecimal(model.Besparing)
                    };

                    analyse.ExtraOmzet             = baat;
                    analyse.DatumLaatsteAanpassing = DateTime.Now;
                    _analyseRepository.Save();

                    TempData["message"] = Meldingen.OpslaanSuccesvolBaat;
                }
            }
            catch (Exception e)
            {
                if (e is ArgumentException || e is FormatException)
                {
                    TempData["error"] = e.Message;
                }
                else
                {
                    _exceptionLogRepository.Add(new ExceptionLog(e, "ExtraOmzet", "Opslaan -- GET --"));
                    _exceptionLogRepository.Save();
                    TempData["error"] = Meldingen.OpslaanFoutmeldingKost;
                    return(RedirectToAction("Index"));
                }
            }

            return(RedirectToAction("Index"));
        }
        public IActionResult Opslaan(Analyse analyse, WerkgeverViewModel model)
        {
            try
            {
                Departement      departement = _departementRepository.GetById(model.DepartementId);
                Werkgever        werkgever   = departement.Werkgever;
                DecimalConverter dc          = new DecimalConverter();
                analyse = _analyseRepository.GetByIdAll(analyse.AnalyseId);
                // werkgever instellen
                Werkgever nieuweWerkgever = new Werkgever(model.Naam, model.Straat, model.Nummer ?? 0, model.Bus,
                                                          model.Postcode, model.Gemeente, dc.ConvertToDecimal(model.AantalWerkuren), dc.ConvertToDecimal(model.PatronaleBijdrage));

                // departement instellen
                if (departement != null && !string.Equals(model.Departement, departement.Naam))
                {
                    // de jobcoach heeft de departementsnaam gewijzigd,
                    // dus we maken een nieuw departement aan
                    departement = new Departement(model.Departement)
                    {
                        Werkgever = werkgever
                    };
                    werkgever.Departementen.Add(departement);
                }

                if (werkgever != null && !nieuweWerkgever.Equals(werkgever))
                {
                    werkgever.Departementen.Remove(departement);
                    departement = new Departement(model.Departement)
                    {
                        Werkgever = nieuweWerkgever
                    };
                    nieuweWerkgever.Departementen.Add(departement);
                }
                else
                {
                    departement.Werkgever = werkgever;
                }

                // instellen in de analyse
                analyse.Departement = departement;

                // alles opslaan
                _departementRepository.Save();
                _analyseRepository.Save();

                TempData["message"] = "De werkgever is succesvol opgeslaan";

                return(RedirectToAction("Index"));
            }
            catch (Exception e)
            {
                if (e is ArgumentException || e is FormatException)
                {
                    TempData["error"] = e.Message;
                }
                else
                {
                    _exceptionLogRepository.Add(new ExceptionLog(e, "Werkgever", "Opslaan "));
                    _exceptionLogRepository.Save();
                    TempData["error"] = "Er ging onverwachts iets fout, probeer later opnieuw";
                }
            }

            return(View("Index", model));
        }
Ejemplo n.º 18
0
        public IActionResult Index(Analyse analyse)
        {
            ResultaatViewModel model = new ResultaatViewModel();

            try
            {
                analyse            = _analyseRepository.GetByIdAll(analyse.AnalyseId);
                model.AnalyseKlaar = analyse.InArchief;
                model.AnalyseId    = analyse.AnalyseId;

                if (analyse.Departement != null)
                {
                    IDictionary <Soort, decimal> kostenResultaat = analyse.GeefTotalenKosten();
                    IDictionary <Soort, decimal> batenResultaat  = analyse.GeefTotalenBaten();

                    decimal kostenTotaal = kostenResultaat.Sum(t => t.Value);
                    decimal batenTotaal  = batenResultaat.Sum(t => t.Value);

                    model.Resultaten = kostenResultaat;
                    foreach (var rij in batenResultaat)
                    {
                        model.Resultaten.Add(rij);
                    }

                    model.KostenTotaal = kostenTotaal;
                    model.BatenTotaal  = batenTotaal;
                    model.Totaal       = batenTotaal - kostenTotaal;

                    ViewData["SubTotaalBaten"] = model.BatenTotaal;


                    // kleur voor nettoresultaat bepalen
                    if (model.Totaal < 0)
                    {
                        ViewData["klasseTotaal"] = "alert-danger";
                    }
                    else if (model.Totaal == 0)
                    {
                        ViewData["klasseTotaal"] = "alert-warning";
                    }
                    else
                    {
                        ViewData["klasseTotaal"] = "alert-success";
                    }
                }
                else
                {
                    TempData["error"] =
                        "Opgelet! U heeft nog geen werkgever geselecteerd. Er zal dus nog geen resultaat " +
                        "berekend worden voor deze analyse.";
                }
            }
            catch (Exception e)
            {
                _exceptionLogRepository.Add(new ExceptionLog(e, "Resultaat", "Index"));
                _exceptionLogRepository.Save();
                TempData["error"] = "Er ging onverwachts iets fout, probeer later opnieuw";
            }


            return(View(model));
        }
Ejemplo n.º 19
0
 public void Insert(ExceptionLog entity) => _exceptionLogRepository.Add(entity);