/// <summary> /// Returns a view with the Details of a client /// </summary> /// <param name="idCliente"></param> /// <returns></returns> public ActionResult Detalhes(int id) { ClientePedidoModel cPedModel = new ClientePedidoModel(); Ecommerce_Cliente cliente = new ClienteService().GetById(id); if (cliente != null) { cPedModel.Cliente = cliente; Ecommerce_Cliente_Endereco clienteEndereco = new EnderecoService().GetDefaultShippingAddress(id); List<Ecommerce_Pedido> listaPedidos = new PedidoService().GetOrdersByIdCliente(cliente.IdCliente); if (clienteEndereco != null) { cPedModel.ClienteEndereco = clienteEndereco; } if (listaPedidos != null) { cPedModel.Pedidos = listaPedidos; } } else { cPedModel.Cliente = new Ecommerce_Cliente(); cPedModel.ClienteEndereco = new Ecommerce_Cliente_Endereco(); cPedModel.Pedidos = new List<Ecommerce_Pedido>(); } return View(cPedModel); }
/// <summary> /// Returns a pagedList to a Partial View /// </summary> /// <param name="page"></param> /// <returns></returns> public ActionResult Listagem(int? page, int? numPedido, String nome, String email, int? IdEstado, String Cidade, int? IdPerfilComprador) { page = page ?? 1; //var clientes = new ClienteService().GetByPage(page.Value); var clientes = new ClienteService().GetByPageFiltered(page.Value, numPedido, nome, email, IdEstado, Cidade, IdPerfilComprador, EnumerableExtensions.QuantityRegistersPerPage); List<ClientePedidoModel> listaClientes = new List<ClientePedidoModel>(); foreach (var c in clientes.Item1) { List<Ecommerce_Pedido> listaPedidos = new PedidoService().GetOrdersByIdCliente(c.IdCliente); int countPedidos = listaPedidos.Count; var clientePedido = new ClientePedidoModel { Cliente = c, Pedidos = listaPedidos, CountPedidos = countPedidos }; listaClientes.Add(clientePedido); } var list = new MvcList<ClientePedidoModel>(listaClientes, page.Value, clientes.Item2, EnumerableExtensions.QuantityRegistersPerPage); return PartialView(list); }
public void CanDetailPacotes() { var service = new ClienteService(); var result1 = service.FindPacoteCredito(526, "1018760"); Assert.IsNotNull(result1); var result2 = service.FindAllPacoteHistorico(526, "1018760"); Assert.IsNotNull(result2.GetEnumerator().Current); }
public void CanCheckPassword() { var service = new ClienteService(); Assert.IsNull(service.FindByLogin("LOGIN INEXISTENTE")); /* var userById = service.FindByLogin("1630"); Assert.IsNotNull(userById); Assert.AreEqual(userById.Identificador, 1630); Assert.AreEqual(userById.Cnpj, "05859449000123"); var userByCnpj = service.FindByLogin("5859449000123"); Assert.IsNotNull(userByCnpj); Assert.AreEqual(userByCnpj.Identificador, 1630); Assert.AreEqual(userByCnpj.Cnpj, "05859449000123"); */ }
public ActionResult LoadUpdate() { if (UserAuthenticated == null || !UserAuthenticated.IdCliente.HasValue) { return PartialView("RegistrationUpdate", new ChangeProfileModel()); } var cliente = new ClienteService().GetById(UserAuthenticated.IdCliente.Value); var model = new ChangeProfileModel { DataNascimento = cliente.DataNascimento, Email = cliente.Email, OldEmail = cliente.Email, Nome = cliente.NomeCompleto, NumeroTelefone = cliente.Telefone }; return PartialView("RegistrationUpdate", model); }
public void CanListPacotes() { var service = new ClienteService(); var result = service.FindAllPacoteCredito(526); // VISUAL - URUGUAIANA Assert.IsNotNull(result.GetEnumerator().Current); }
public void CanGetByLogin() { var service = new ClienteService(); Assert.IsNotNull(service); }
public void CanFindPacote() { var service = new ClienteService(); var result = service.FindPacoteCredito(526, "1020967"); Assert.IsNotNull(result); }
public ActionResult LogIn(LogInModel model, String returnUrl) { if (!ModelState.IsValid) { return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Validation, Message = @Resources.Resource.Msg_Geral_DadosInvalidos }); } Model.Usuario usuario = null; Perfil perfil = new Perfil(); // TODO: M.L. 2012/11/15 16:06 - Alterar a Senha de Todos novamente, quem é do EC deverá ser Encryption.EncryptMd5(senha@email) var senha = Encryption.EncryptMd5(String.Format("{1}@{0}", model.Password.Trim(), model.UserName.Trim())); var isValid = new UsuarioService().ValidateEcommerce(model.UserName.Trim(), senha); if (isValid) { usuario = new UsuarioService().GetRecords(usu => usu.Email == model.UserName.Trim() && usu.IsAtivo).FirstOrDefault(); } if (usuario == null) { return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Alert, Message = @Resources.Resource.Msg_Geral_UsuarioSenhaInvalido }); } var cliente = new ClienteService().GetCustomer(usuario.IdUsuario); if (cliente.IdPerfil != null) { // Armazena o Perfil do Cliente (logado) na Variável perfil = new Perfil { IdPerfil = cliente.Ecommerce_Perfil.IdPerfil, Nome = cliente.Ecommerce_Perfil.Nome, PercentualDesconto = cliente.Ecommerce_Perfil.PercentualDesconto }; } Guid cookieCarrinho = Guid.NewGuid(); var idCliente = 0; if (cliente != null) { idCliente = cliente.IdCliente; var cookie = Request.Cookies[_cookieCartKey]; //check if there is a cart if (cookie != null) { cookieCarrinho = new Guid(cookie.Value); var carrinhoAnonimo = new CarrinhoService().GetCart(cookieCarrinho); //verificar se existem items para o carrinho anonimo if (carrinhoAnonimo != null) { if (carrinhoAnonimo.Ecommerce_CarrinhoItem.Count > 0) { //remove qualquer carrinho antigo do cliente var carrinhosCliente = new CarrinhoService().GetRecords(car => car.IdCliente == idCliente); if (carrinhosCliente.Count > 0) { foreach (var item in carrinhosCliente.ToList()) { new CarrinhoService().DeleteCart(item.GuidCookie); } } new CarrinhoService().AttachCartToClient(cookieCarrinho, idCliente); } else { var carrinhoCliente = new CarrinhoService().GetRecords(car => car.IdCliente == idCliente).FirstOrDefault(); if (carrinhoCliente != null) { cookieCarrinho = carrinhoCliente.GuidCookie; } else { new CarrinhoService().AttachCartToClient(cookieCarrinho, idCliente); } } } else { //verificar se existe alguma carrinho para o cliente var carrinho = new CarrinhoService().GetRecords(car => car.IdCliente == idCliente).FirstOrDefault(); if (carrinho != null) { cookieCarrinho = carrinho.GuidCookie; } else { new CarrinhoService().CreateCart(cookieCarrinho, idCliente); } } cookie.Expires = DateTime.Now.AddDays(-1); // TODO: M.L. 2012/11/15 16:53 - Definir nos Setting o Tempo para expiração do Cookie do Carrinho System.Web.HttpContext.Current.Response.Cookies.Add(cookie); } else { //if cookie was null new CarrinhoService().CreateCart(cookieCarrinho, idCliente); } } var serializeModel = new CustomPrincipalSerializeModel { IdUsuario = usuario.IdUsuario, NomeUsuario = usuario.NomeUsuario, Login = usuario.Login, Email = usuario.Email, IdGrupo = usuario.IdGrupo, IdCliente = idCliente, CookieCarrinho = cookieCarrinho }; //Armazenar o Perfil do Cliente (logado) caso exista serializeModel.Perfil = perfil; var prefixoCookie = ConfigurationManager.AppSettings["EcommerceCookieName"]; FormsAuthenticationUtil.SetCustomAuthCookie(prefixoCookie + model.UserName, new JavaScriptSerializer().Serialize(serializeModel), model.RememberMe); if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/") && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\")) { return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Success, ReturnUrl = returnUrl }, JsonRequestBehavior.AllowGet); } return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Success, ReturnUrl = Url.Content(@"~/Dashboard/") }, JsonRequestBehavior.AllowGet); }
public ActionResult InsertNewCustomer(NovoClienteModel model) { if (ModelState.IsValid) { if (!new ClienteService().EmailIsValid(model.EmailAdress)) { return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Validation, Message = Resources.Resource.NovoCliente_EmailDuplicado }, JsonRequestBehavior.AllowGet); } if (new ClienteService().InsertCustomer(model)) { if (model.IdKit.HasValue) { //var senha = Encryption.EncryptMd5(string.Format("{1}@{0}", model.Password.Trim(), model.EmailAdress.Trim())); Usuario usuario = new UsuarioService().GetRecords(usu => usu.Login == model.EmailAdress.Trim() && usu.IsAtivo).FirstOrDefault(); if (usuario == null) { return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Alert, Message = Resources.Resource.Msg_Geral_UsuarioSenhaInvalido }); } var cliente = new ClienteService().GetRecords(cli => cli.IdUsuario == usuario.IdUsuario).FirstOrDefault(); Guid cookieCarrinho = Guid.NewGuid(); var idCliente = 0; if (cliente != null) { idCliente = cliente.IdCliente; var cookie = Request.Cookies[_cookieCartKey]; //check if there is a cart if (cookie != null) { cookieCarrinho = new Guid(cookie.Value); var carrinhoAnonimo = new CarrinhoService().GetCart(cookieCarrinho); //verificar se existem items para o carrinho anonimo if (carrinhoAnonimo != null) { if (carrinhoAnonimo.Ecommerce_CarrinhoItem.Count > 0) { //remove qualquer carrinho antigo do cliente var carrinhosCliente = new CarrinhoService().GetRecords(car => car.IdCliente == idCliente); if (carrinhosCliente.Count > 0) { foreach (var item in carrinhosCliente.ToList()) { new CarrinhoService().DeleteCart(item.GuidCookie); } } new CarrinhoService().AttachCartToClient(cookieCarrinho, idCliente); } else { var carrinhoCliente = new CarrinhoService().GetRecords(car => car.IdCliente == idCliente).FirstOrDefault(); if (carrinhoCliente != null) { cookieCarrinho = carrinhoCliente.GuidCookie; } else { new CarrinhoService().AttachCartToClient(cookieCarrinho, idCliente); } } } else { //verificar se existe alguma carrinho para o cliente var carrinho = new CarrinhoService().GetRecords(car => car.IdCliente == idCliente).FirstOrDefault(); if (carrinho != null) { cookieCarrinho = carrinho.GuidCookie; } else { new CarrinhoService().CreateCart(cookieCarrinho, idCliente); } } cookie.Expires = DateTime.Now.AddDays(-1); System.Web.HttpContext.Current.Response.Cookies.Add(cookie); } else { //if cookie was null new CarrinhoService().CreateCart(cookieCarrinho, idCliente); } } var serializeModel = new CustomPrincipalSerializeModel { IdUsuario = usuario.IdUsuario, NomeUsuario = usuario.NomeUsuario, Login = usuario.Login, Email = usuario.Email, //IdGrupo = usuario.IdGrupo, IdCliente = idCliente, CookieCarrinho = cookieCarrinho }; var prefixoCookie = ConfigurationManager.AppSettings["EcommerceCookieName"]; FormsAuthenticationUtil.SetCustomAuthCookie(prefixoCookie + model.EmailAdress, new JavaScriptSerializer().Serialize(serializeModel), false); return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Success, ReturnUrl = Url.Content(@"~/Cart/Details") }, JsonRequestBehavior.AllowGet); } return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Success, Message = Resources.Resource.Msg_Geral_CadastroRealizado, ReturnUrl = Url.Content(@"~/Dashboard") }, JsonRequestBehavior.AllowGet); } return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Error, Message = Resources.Resource.Msg_Geral_Erro }, JsonRequestBehavior.AllowGet); } return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Validation, Message = Resources.Resource.Msg_Geral_DadosIncorretos }, JsonRequestBehavior.AllowGet); }
public ActionResult NewCustomer(string email, string zipcode, int? kit, int tipoCliente, bool isCompra) { var model = new NovoClienteModel { Identification = email, EmailAdress = email, ZipCode = zipcode, IdKit = kit, TipoCliente = (TipoCliente)tipoCliente, IsCompra = isCompra, DisplayBirthDate = string.Empty, LikeBeContactedByRacco = true }; var service = new ClienteService(); model.States = service.GetEstados(); ViewBag.Title = Resources.Resource.AccountRegistrar_Titulo; return View(model); }
public ActionResult GerarNovaSenha(int? idCliente, String emailTemp) { var regExpEmail = new Regex(@"^[\w-]+(\.[\w-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)*?\.[a-z]{2,6}|(\d{1,3}\.){3}\d{1,3})(:\d{4})?$"); if (!regExpEmail.IsMatch(emailTemp) && !String.IsNullOrWhiteSpace(emailTemp)) { return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Alert, Message = Resources.Resource.Conta_EmailInvalido }); } var model = new Usuario(); if (idCliente != null) { var cliente = new ClienteService().GetById(idCliente.Value); if (cliente != null) { model = cliente.Usuario; } } if (!String.IsNullOrWhiteSpace(emailTemp)) { model.Email = emailTemp; } if (ModelState.IsValid) { var newPass = Membership.GeneratePassword(6, 2); if (Email.SendNewPassword(model, newPass, false)) { model.Senha = newPass; model.LembreteSenha = String.Format(Resources.Resource.Senha_PerguntaSecreta, DateTime.Now); new UsuarioService().UpdateObject(model); return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Success, Message = Resources.Resource.Conta_SenhaEncaminhadaEmail }, JsonRequestBehavior.AllowGet); } return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Error, Message = Resources.Resource.Autenticacao_RecuperarSenhaErro }, JsonRequestBehavior.AllowGet); } return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Error, Message = Resources.Resource.Msg_Geral_Erro }, JsonRequestBehavior.AllowGet); }
//Monta o arquivo de e-mails dos clientes selecionados private String GenerateFile(List<Ecommerce_Cliente> listaClientes) { //Motagem do nome do arquivo String data = Convert.ToString(DateTime.Now.ToShortDateString().Replace("/", "")); String hora = Convert.ToString(DateTime.Now.ToLongTimeString().Replace(":", "")); String fileName = data + "_" + hora + ".csv"; //Variáveis que recebem o path onde será salvo imagens String serverFiles = HttpContext.Server.MapPath(WebConfigurationManager.AppSettings["UrlNewsletters"]); //Se o diretório não existir, crie if (!Directory.Exists(serverFiles)) { try { Directory.CreateDirectory(serverFiles); } catch (Exception ex) { throw new Exception(ex.Message); } } //Variável que armazena o Path + o nome do arquivo var targetFilePath = Path.Combine(serverFiles, fileName); //Delimitador das informações const string delimiter = ";"; //StringBuilder que armazenará o conteúdo do arquivo var sb = new StringBuilder(); //Criação do Header do Arquivo const string header = "NOME;EMAIL;CIDADE;UF;DATA_NASCIMENTO;DATA_INCLUSAO;TIPO_PERFIL"; //Adiciona o Header no arquivo sb.AppendLine(header); //Para cada cliente, cria uma nova linha foreach (var c in listaClientes) { Ecommerce_Cliente cliente = new ClienteService().GetById(c.IdCliente); //GetRecords(cli => cli.IdCliente == c.IdCliente).FirstOrDefault(); //Cria a linha que receberá os dados //Variáveis. Cidade foi criada pois há dados incompletos //no DB que precisam ser tratados na aplicação Ecommerce_Cliente_Endereco ce = null; String cidade = String.Empty; String estado = String.Empty; //ce recebe o objeto cliente_endereco if (cliente != null) { ce = cliente.Ecommerce_Cliente_Endereco.FirstOrDefault(); } //Valores do estado e cidade if (ce != null) { //Tratamento do campo CIDADE, que no banco está imcompleto if (!String.IsNullOrEmpty(ce.Cidade)) { var objCidade = new CidadeService().GetRecords(cid => cid.IdCidade == ce.IdCidade).FirstOrDefault(); if (objCidade != null) { cidade = objCidade.Nome; } } else if (ce.IdCidade != null) { cidade = ce.Cidade; } //Valor do estado var objEstado = new EstadoService().GetRecords(e => e.IdEstado == ce.IdEstado).FirstOrDefault(); if (objEstado != null) { estado = objEstado.Nome; } } //Criação da linha, com os dados recebídos if (cliente != null) { var line = cliente.NomeCompleto + delimiter + cliente.Email + delimiter + cidade + delimiter + estado + delimiter + cliente.DataNascimento.ToShortDateString() + delimiter + cliente.DataInclusao.ToShortDateString(); //Se houver perfil, adiciona o perfil na linha //se não, adiciona os delimitadores. if (cliente.Ecommerce_Perfil != null) { line += delimiter + cliente.Ecommerce_Perfil.Nome + delimiter; } else { line += delimiter + delimiter; } if (cliente.DesejaContato) { //Adiciona a linha sb.AppendLine(line); } } } //Escreve o arquivo, e salva no path indicado System.IO.File.WriteAllText(targetFilePath, sb.ToString(), Encoding.UTF8); //Criação do Link de Download var linkDownload = Url.Content(WebConfigurationManager.AppSettings["UrlNewsletters"] + fileName); return linkDownload; }
public JsonResult FilterClients(string[] estados, string[] cidades, string[] perfis, string genre) { var listaClientes = new List<Ecommerce_Cliente>(); if (estados != null && estados.Any()) { //Se houver cidade selecionada - Traz por Cidade if (cidades != null && cidades.Any()) { foreach (var i in cidades) { var idCidade = Convert.ToInt32(i); listaClientes.AddRange(new ClienteService().GetRecords( c => c.Ecommerce_Cliente_Endereco.Any(ce => ce.IdCidade == idCidade))); } } //Se não houver cidade selecionada - Traz apenas por estado else { foreach (var i in estados) { var idEstado = Convert.ToInt32(i); listaClientes.AddRange(new ClienteService().GetRecords( c => c.Ecommerce_Cliente_Endereco.Any(ce => ce.IdEstado == idEstado))); } } }else { listaClientes = new ClienteService().GetAll(); } //Dentro daquela lista que o sistema já trouxe //faz o filtro por perfil if (perfis != null && perfis.Any()) { var lst = new List<Ecommerce_Cliente>(); foreach (var i in perfis) { var idPerfil = Convert.ToInt32(i); lst.AddRange(listaClientes.Where(c => c.IdPerfil == idPerfil)); } listaClientes = lst; } if (genre != null && !String.IsNullOrWhiteSpace(genre)) { var genreForSearch = String.Empty; //Se for Homem if (genre.Equals("1")) { genreForSearch = "H"; } //Se for Mulher else if (genre.Equals("2")) { genreForSearch = "M"; } //Se for todos else { genreForSearch = ""; } //Cria uma nova lista de Newsletter de "Não-Clientes" var lst = new List<Newsletter>(); //Procura por "sexo" em especial if (!String.IsNullOrWhiteSpace(genreForSearch)) { lst = new NewsletterService().GetRecords(x => x.Sexo.Equals(genreForSearch)); } //Traz todos os cadastrados else { lst = new NewsletterService().GetAll(); } //Se houverem registros retornados do banco, gera a lista e envia o link para Download. if (lst.Count > 0) { var link = GenerateFileFromSite(lst); return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Success, Message = link }, JsonRequestBehavior.AllowGet); } } if (listaClientes.Count > 0) { var link = GenerateFile(listaClientes); return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Success, Message = link}, JsonRequestBehavior.AllowGet); } return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Error, Message = String.Empty }, JsonRequestBehavior.AllowGet); }