예제 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="neuEinahmeAusgabe"></param>
        /// <param name="currentUser"></param>
        /// <param name="imageViewModel"></param>
        /// <param name="tagViewModels"></param>
        private EinnahmeAusgabe SaveEinnahmeAusgabeInDB(
            EinnahmeAusgabeViewModel neuEinnahmeAusgabeViewModel,
            FinanceAppUser currentUser,
            DateTime?buchungsDatum = null)
        {
            EinnahmeAusgabe neuEinahmeAusgabe = _Mapper.Map <EinnahmeAusgabeViewModel, EinnahmeAusgabe>(neuEinnahmeAusgabeViewModel);

            neuEinahmeAusgabe.User = currentUser;

            if (buchungsDatum.HasValue)
            {
                if (neuEinahmeAusgabe.Wiederkehrend)
                {
                    neuEinahmeAusgabe.Benennung += $"{Environment.NewLine}{Environment.NewLine}Dies ist ein wiederkehrender Eintrag vom {neuEinahmeAusgabe.Buchungsdatum.ToString("dddd, dd MMMM yyyy")}" +
                                                   $"{Environment.NewLine}aktuelles Buchungsdatum: {buchungsDatum.Value.ToString("dddd, dd MMMM yyyy")}";
                }

                neuEinahmeAusgabe.Buchungsdatum = buchungsDatum.Value;
            }


            EinnahmeAusgabe einnahmeAusgabe = _EinnahmeAusgabenRepository.AddNeueEinnahmeAusgabe(neuEinahmeAusgabe);

            //Verweis EinnahmeAusgabe <> hochgeladenes Bild
            foreach (var imgId in neuEinnahmeAusgabeViewModel.ListImages.Select(i => i.ImageId))
            {
                _ImageRepository.AssignImage2EinnahmeAusgabe(imgId, einnahmeAusgabe);
            }

            //Verweis EinnahmeAusgabe <> Tag
            var tagListe = _Mapper.Map <IList <TagViewModel>, IList <Tag> >(neuEinnahmeAusgabeViewModel.ListTags);

            foreach (var tag in tagListe)
            {
                _TagsRepository.AddTagToEinnahmeAusgabe(einnahmeAusgabe, tag, currentUser);
            }

            return(einnahmeAusgabe);
        }