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")); } }