Beispiel #1
0
        public async Task <long> Create(MovimentacaoPost movimentacaoPost, string usuarioId)
        {
            movimentacaoPost.Data = movimentacaoPost.Data == null ? DateTime.Now : movimentacaoPost.Data;
            var tags = await _tagsService.GetTagsByUsuario(usuarioId);

            var tagList = tags.Where(x => movimentacaoPost.Tags.Contains(x.Id))
                          .Select(x => x.Id).ToList();

            var detalhes = new List <Detalhes>();

            foreach (var detalhe in movimentacaoPost.Detalhes)
            {
                detalhes.Add(new Detalhes()
                {
                    Nome  = detalhe.Detalhe,
                    Valor = detalhe.Valor,
                    Tags  = tags.Where(x => detalhe.Tags.Contains(x.Id)).Select(x => new Tags {
                        TagId = x.Id
                    }).ToList()
                });
            }
            var movimentacao = new Movimentacoes
            {
                TipoMovimentacaoId = (long)movimentacaoPost.TipoMovimentacao,
                Data      = Convert.ToDateTime(movimentacaoPost.Data),
                Nome      = movimentacaoPost.Nome,
                Valor     = movimentacaoPost.Valor,
                UsuarioId = usuarioId,
                Detalhes  = detalhes
            };

            return(await _movimentacaoRepository.Create(movimentacao, tagList));
        }
        public async Task <IActionResult> Create(MovimentacaoPost movimentacao)
        {
            try
            {
                var user = await _userManager.GetUserAsync(User);

                var novoId = await _movimentacaoService.Create(movimentacao, user.Id);

                return(RedirectToAction($"{novoId}", "movimentacoes"));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("Nome", ex.Message);
                return(View("Create"));
            }
        }