コード例 #1
0
        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
            });
        }
コード例 #2
0
        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
            });
        }
コード例 #3
0
        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
            });
        }