public async Task <JsonNetResult> GetUsuario() { var user = await UserManager.FindByIdAsync(User.Identity.GetUserId()); if (user.DadosUsuario != null && !String.IsNullOrEmpty(user.DadosUsuario.DataNascimento)) { user.DadosUsuario.DataNascimento = user.DadosUsuario.DataNascimento.Substring(0, 2) + "/" + user.DadosUsuario.DataNascimento.Substring(2, 2) + "/" + user.DadosUsuario.DataNascimento.Substring(4); } user.DadosUsuario.Email = user.Email; var usuario = new UsuarioViewModel(); UsuarioCopy.DBToViewModel(user.DadosUsuario, usuario); return(new JsonNetResult { Data = usuario }); }
public async Task <JsonNetResult> GetUsuarioByPhone(string telefone) { var result = new ServiceResultViewModel(true, new List <string>(), null); if (telefone.Length < 14) { result.Succeeded = false; result.Errors.Add("O telefone não está preenchido corretamente"); return(new JsonNetResult { Data = result }); } ApplicationDbContext contexto = new ApplicationDbContext(); var user = contexto.DadosUsuarios.Where(u => u.Telefone == telefone).FirstOrDefault(); UsuarioViewModel usuario = new UsuarioViewModel(); if (user != null) { if (!String.IsNullOrEmpty(user.DataNascimento)) { user.DataNascimento = user.DataNascimento.Substring(0, 2) + "/" + user.DataNascimento.Substring(2, 2) + "/" + user.DataNascimento.Substring(4); } UsuarioCopy.DBToViewModel(user, usuario); } else { usuario.ClienteNovo = true; usuario.Telefone = telefone; usuario.Estado = "MG"; usuario.Cidade = "Cataguases"; } result.data = usuario; return(new JsonNetResult { Data = result }); }
public async Task <JsonResult> GravarPedido(PedidoViewModel pedidoViewModel) { var result = new ServiceResultViewModel(true, new List <string>(), null); if (pedidoViewModel.DadosCliente.Telefone.Length < 14) { result.Succeeded = false; result.Errors.Add("O telefone não está preenchido corretamente"); return(new JsonNetResult { Data = result }); } if (pedidoViewModel.PedidoExterno && pedidoViewModel.CodPedido <= 0) { try { //var ped = _rep.GetPedidoAberto("", pedidoViewModel.DadosCliente.Telefone).Result; var ped = BrasaoHamburgueria.Helper.AsyncHelpers.RunSync <PedidoViewModel>(() => _rep.GetPedidoAberto("", pedidoViewModel.DadosCliente.Telefone)); if (ped != null) { result.Succeeded = false; result.Errors.Add("O cliente " + pedidoViewModel.DadosCliente.Telefone + " possui o pedido " + ped.CodPedido + " em aberto. Finalize-o antes de fazer outro pedido para este cliente."); return(new JsonNetResult { Data = result }); } } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); } } try { //primeiro verifica se a casa está aberta para delivery if (!pedidoViewModel.PedidoExterno && !ParametroRepository.CasaAberta() && pedidoViewModel.CodPedido <= 0) { var horarioFuncionamento = ParametroRepository.GetHorarioAbertura(); result.Succeeded = false; result.Errors.Add("No momento estamos fechados. Abriremos " + horarioFuncionamento.DiaSemana + " das " + horarioFuncionamento.Abertura.ToString("HH:mm") + " às " + horarioFuncionamento.Fechamento.ToString("HH:mm") + "."); } else { result.data = await _rep.GravaPedido(pedidoViewModel, User.Identity.GetUserName()); if (pedidoViewModel.DadosCliente.ClienteNovo) { try { ApplicationDbContext contexto = new ApplicationDbContext(); Usuario usu = new Usuario(); UsuarioViewModel usuVm = new UsuarioViewModel(); PropertyCopy.Copy(pedidoViewModel.DadosCliente, usuVm); UsuarioCopy.ViewModelToDB(usuVm, usu); usu.UsuarioExterno = true; contexto.DadosUsuarios.Add(usu); contexto.SaveChanges(); } catch (Exception ex) { //nao faz nada porque o pedido foi gravado e sao transacoes diferentes } result.Succeeded = true; } else if (pedidoViewModel.DadosCliente.Salvar) { try { ApplicationDbContext contexto = new ApplicationDbContext(); string userName = User.Identity.GetUserName(); var usu = contexto.DadosUsuarios.Where(d => d.Email == userName).FirstOrDefault(); if (usu != null) { UsuarioViewModel usuVm = new UsuarioViewModel(); PropertyCopy.Copy(pedidoViewModel.DadosCliente, usuVm); UsuarioCopy.ViewModelToDB(usuVm, usu); contexto.SaveChanges(); } } catch (Exception ex) { //nao faz nada porque o pedido foi gravado e sao transacoes diferentes } } } } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); } return(new JsonNetResult { Data = result }); }