// Busca a un usuario por su nombre de usuario (Normalizado con mayúscula) public async Task <FermeUser> FindByNameAsync(string normalizedUserName, CancellationToken cancellationToken) { api_docsClient clienteAPI = new api_docsClient(_clientFactory.CreateClient("FermeBackendClient")); JArray usuarios = (JArray)await clienteAPI.GetUsersUsingGETAsync(); foreach (var usuario in usuarios) { var usuarioApi = usuario.ToObject <UserEntity>(); if (usuarioApi.Email.ToUpper() == normalizedUserName) { return(new FermeUser() { SecurityStamp = Guid.NewGuid().ToString(), PasswordHash = usuarioApi.Password, Email = usuarioApi.Email, Login = usuarioApi.Email, NormalizedUserName = usuarioApi.Email.ToUpper(), NormalizedEmail = usuarioApi.Email.ToUpper(), Id = usuarioApi.Id.GetValueOrDefault(), UserName = usuarioApi.Email, FirstName = usuarioApi.Name, LastName = usuarioApi.LastName, Address = usuarioApi.Address, Rut = usuarioApi.Rut.Value, Dv = usuarioApi.Dv, Location = usuarioApi.Location }); } } return(null); }
public async Task <List <SelectListItem> > ObtenerComunasPorCiudad(int idCiudad) { List <SelectListItem> listaComunas = new List <SelectListItem>(); api_docsClient clienteAPI = new api_docsClient(_clientFactory.CreateClient("FermeBackendClient")); var comunasCiudad = ((JArray)await clienteAPI.GetLocationsByCityIdUsingGETAsync(idCiudad)).ToObject <List <LocationEntity> >(); foreach (var comuna in comunasCiudad) { SelectListItem itemComuna = new SelectListItem(); itemComuna.Text = comuna.LocatioName; itemComuna.Value = comuna.Id.ToString(); listaComunas.Add(itemComuna); } return(listaComunas); }
public async Task <List <SelectListItem> > ObtenerCiudadesPorRegion(int idRegion) { List <SelectListItem> listaCiudades = new List <SelectListItem>(); api_docsClient clienteAPI = new api_docsClient(_clientFactory.CreateClient("FermeBackendClient")); var ciudadesRegion = ((JArray)await clienteAPI.GetCitiesByRegionIdUsingGETAsync(idRegion)).ToObject <List <CityEntity> >(); foreach (var ciudad in ciudadesRegion) { SelectListItem itemCiudad = new SelectListItem(); itemCiudad.Text = ciudad.CityName; itemCiudad.Value = ciudad.Id.ToString(); listaCiudades.Add(itemCiudad); } return(listaCiudades); }
public async Task <DetailProductModel> ObtenerProductoId(long id) { api_docsClient clienteAPI = new api_docsClient(_clientFactory.CreateClient("FermeBackendClient")); var productoAPI = ((JObject)await clienteAPI.SearchProductUsingGETAsync(id)).ToObject <ProductEntity>(); var producto = new DetailProductModel() { Id = productoAPI.Id.Value, CodigoProducto = productoAPI.ProductCode.Value, Nombre = productoAPI.Name, Imagen = productoAPI.ProductImage, Descripcion = productoAPI.Description, Stock = productoAPI.Stock.Value, Precio = productoAPI.Price.Value, MarcaProducto = productoAPI.BrandProduct }; return(producto); }
public async Task OnGetAsync(string returnUrl = null) { ReturnUrl = returnUrl; ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); //Regiones api_docsClient clientAPI = new api_docsClient(_clientFactory.CreateClient("FermeBackendClient")); var regiones = ((JArray)await clientAPI.GetRegionUsingGETAsync()).ToObject <List <RegionEntity> >(); Regiones = new List <SelectListItem>(); foreach (var region in regiones) { Regiones.Add(new SelectListItem() { Text = region.RegionName, Value = region.Id.ToString() }); } }
public async Task <String> Sale(SaleModel sale) { try{ var identity = HttpContext.User.Identity as ClaimsIdentity; api_docsClient clienteAPI = new api_docsClient(_clientFactory.CreateClient("FermeBackendClient")); List <ProductSaleEntity> productsSalesApi = new List <ProductSaleEntity>(); foreach (var product in sale.Cart) { ProductSaleEntity productSaleAPI = new ProductSaleEntity(); productSaleAPI.Product = new ProductEntity { Id = product.Id }; productSaleAPI.Quantity = 1; productsSalesApi.Add(productSaleAPI); } SaleEntity saleApi = new SaleEntity { Products_sale = productsSalesApi, User = new UserEntity { Id = long.Parse(identity.FindFirst("Id").Value) }, Document = new DocumentEntity { Document_type = new DocumentTypeEntity { Id = int.Parse(sale.DocumentType) } }, Payment_method = new PaymentMethodEntity { Id = 1 } }; Console.Out.WriteLine(JsonConvert.SerializeObject(saleApi)); await clienteAPI.RecordedSaleUsingPOSTAsync(saleApi); } catch (Exception ex) { Console.Out.WriteLine(ex.Message); throw (ex); } return(JsonConvert.SerializeObject("OK")); }
public async Task <List <ProductModel> > ObtenerProductos() { List <ProductModel> Productos = new List <ProductModel>(); api_docsClient clienteAPI = new api_docsClient(_clientFactory.CreateClient("FermeBackendClient")); var productosAPI = ((JArray)await clienteAPI.GetProductsUsingGETAsync()).ToObject <List <ProductEntity> >(); foreach (var productoAPI in productosAPI) { var producto = new ProductModel() { Id = productoAPI.Id.Value, CodigoProducto = productoAPI.ProductCode.Value, Nombre = productoAPI.Name, Imagen = productoAPI.ProductImage, Stock = productoAPI.Stock.Value, Precio = productoAPI.Price.Value, MarcaProducto = productoAPI.BrandProduct }; Productos.Add(producto); } return(Productos); }
public async Task <FermeUser> FindByIdAsync(string userId, CancellationToken cancellationToken) { api_docsClient clienteAPI = new api_docsClient(_clientFactory.CreateClient("FermeBackendClient")); var usuarioApi = ((JObject)await clienteAPI.SearchUserUsingGETAsync(long.Parse(userId))).ToObject <UserEntity>(); return(new FermeUser() { SecurityStamp = Guid.NewGuid().ToString(), PasswordHash = usuarioApi.Password, Email = usuarioApi.Email, Login = usuarioApi.Email, NormalizedUserName = usuarioApi.Email.ToUpper(), NormalizedEmail = usuarioApi.Email.ToUpper(), Id = usuarioApi.Id.GetValueOrDefault(), UserName = usuarioApi.Email, FirstName = usuarioApi.Name, LastName = usuarioApi.LastName, Address = usuarioApi.Address, Rut = usuarioApi.Rut.Value, Dv = usuarioApi.Dv, Location = usuarioApi.Location }); }
// Realiza un POST en base a los datos ingresados en el formulario de registro public async Task <IdentityResult> CreateAsync(FermeUser user, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); //TODO: Registro debe contener mas datos UserEntity usuario = new UserEntity() { Id = 0, Name = user.FirstName, BirthDate = user.BirthDate, Rut = user.Rut, Dv = user.Dv, Enable = true, Genere = user.Genere, LastName = user.LastName + " " + user.SecondSurname, Email = user.Email, Password = user.PasswordHash, //Phone=user.Phone Address = user.Address + " " + user.Block, Location = user.Location }; // Llama al clientFactory y pide un cliente para el backend api_docsClient clienteAPI = new api_docsClient(_clientFactory.CreateClient("FermeBackendClient")); JObject response = (JObject)await clienteAPI.SaveUserUsingPOSTAsync(usuario); if (response["status"].Value <string>() == "error") { var error = new IdentityError() { Code = "API", Description = "Error guardando el usuario nuevo" }; return(IdentityResult.Failed(error)); } // Obtener ID del usuario recién creado var id = response["user_saved"]["id"].Value <int>(); // Creación nuevo rol UserRoleEntity rol = new UserRoleEntity() { Id = 0, Role = new RoleEntity() { Id = 2 }, User = new UserEntity() { Id = id } }; // Guardar rol vía API JObject responseRol = (JObject)await clienteAPI.SaveUserRoleUsingPOSTAsync(rol); if (responseRol.ContainsKey("status")) { var error = new IdentityError() { Code = "API", Description = "Error guardando rol del usuario" }; return(IdentityResult.Failed(error)); } return(IdentityResult.Success); }
public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl = returnUrl ?? Url.Content("~/"); ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); if (ModelState.IsValid) { api_docsClient clientAPI = new api_docsClient(_clientFactory.CreateClient("FermeBackendClient")); var comunas = ((JArray)await clientAPI.GetLocationsUsingGETAsync()).ToObject <List <LocationEntity> >(); var comuna = (from c in comunas where c.Id.ToString() == Input.Location select c).FirstOrDefault(); var user = new FermeUser { UserName = Input.Email, Email = Input.Email, FirstName = Input.FirstName, LastName = Input.LastName, SecondSurname = Input.SecondSurname, Rut = int.Parse(Input.Rut), Dv = Input.Dv, Genere = Input.Genere, //Phone=Input.Phone Address = Input.Address, BirthDate = Input.BirthDate, Block = Input.Block, Location = comuna }; var result = await _userManager.CreateAsync(user, Input.Password); if (result.Succeeded) { _logger.LogInformation("User created a new account with password."); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code)); var callbackUrl = Url.Page( "/Account/ConfirmEmail", pageHandler: null, values: new { area = "Identity", userId = user.Id, code = code }, protocol: Request.Scheme); await _emailSender.SendEmailAsync(Input.Email, "Confirm your email", $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>."); if (_userManager.Options.SignIn.RequireConfirmedAccount) { return(RedirectToPage("RegisterConfirmation", new { email = Input.Email })); } else { await _signInManager.SignInAsync(user, isPersistent : false); return(LocalRedirect(returnUrl)); } } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } // If we got this far, something failed, redisplay form return(Page()); }