public IEnumerable <FreelancerVm> BestFreelancer() { var model = new List <Freelancer>(); var result = new List <FreelancerVm>(); try { model = _dbContext.Freelancers .Include(x => x.ApplicationUser) .OrderByDescending(x => x.Rating) .Take(5).ToList(); foreach (var i in model) { var freelancer = new FreelancerVm { ApplicationUserId = i.ApplicationUserId, Avatar = $"{_imgServer}{i.ApplicationUser.Avatar}", Name = i.ApplicationUser.Name, LastName = i.ApplicationUser.LastName, Rating = i.Rating }; result.Add(freelancer); } } catch (Exception) { result = null; } return(result); }
public IActionResult Put([FromBody] FreelancerVm model) { if (model.Id != 0) { return(Ok(_freelancer.Update(model))); } else { return(BadRequest("Some fields are empty")); } }
public bool Add(FreelancerVm entity) { try { UpdateByFreelancerUserVm user = new UpdateByFreelancerUserVm { Id = entity.ApplicationUserId, PhoneNumber = entity.PhoneNumber, Avatar = entity.Avatar, Address = entity.Address }; _accountService.UpdateByFreelancer(user); //preparamos el model del freelancer var freelancer = new Freelancer { CreatedAt = _dateTime, ApplicationUserId = entity.ApplicationUserId, Biography = entity.Biography, Historial = entity.Address, Interest = entity.Interest, Lenguaje = entity.Lenguaje, Level = entity.Level, PriceHour = entity.PriceHour, Rating = entity.Rating, Lat = entity.Lat, Long = entity.Long, Profesion = entity.Profesion }; //agregamos el freelancer _dbContext.Add(freelancer); _dbContext.SaveChanges(); FreelancerHability model; //buscamos el ultimo id del freelancer //e iteramos en el listado de habilidades y los vamos agregando a la tabla var id = _dbContext.Freelancers.Max(x => x.Id); foreach (var i in entity.Habilities) { model = new FreelancerHability { FreelancerId = id, HabilityId = i.Id }; _freelancerHabilityService.Add(model); } return(true); } catch (Exception) { return(false); } }
public IActionResult Post([FromBody] FreelancerVm model) { if (model.ApplicationUserId != null && model.PriceHour > 0 && model.Lenguaje != null && model.Interest != null) { model.Avatar = "d3697ecd-96f7-4bc0-b4df-de05673f7639.png"; _freelancer.Add(model); return(new CreatedAtRouteResult("freelancerCreated", new { id = model.Id }, model)); } else { return(BadRequest("Some fields are empty")); } }
public bool Update(FreelancerVm entity) { try { var freelancer = _dbContext.Freelancers. First(x => x.Id == entity.Id); var user = _dbContext.ApplicationUsers.First(x => x.Id == freelancer.ApplicationUserId); //ApplicationUser user.Name = entity.Name; user.PhoneNumber = entity.PhoneNumber; user.LastName = entity.LastName; _dbContext.ApplicationUsers.Update(user); //freelancer freelancer.Lenguaje = entity.Lenguaje; freelancer.Biography = entity.Biography; freelancer.PriceHour = entity.PriceHour; freelancer.Interest = entity.Interest; freelancer.ApplicationUser.Address = entity.Address; freelancer.Profesion = entity.Profesion; freelancer.UpdateAt = _dateTime; freelancer.Long = entity.Long; freelancer.Lat = entity.Lat; _dbContext.Update(freelancer); _dbContext.SaveChanges(); FreelancerHability freelancerHability; foreach (var i in entity.Habilities) { //si existe no la agreges si no agregala if (!_freelancerHabilityService.Exist(entity.Id, i.Id)) { freelancerHability = new FreelancerHability { FreelancerId = entity.Id, HabilityId = i.Id }; _freelancerHabilityService.Add(freelancerHability); } } return(true); } catch (Exception) { return(false); } }
public FreelancerVm GetByIdUser(string id) { var result = new FreelancerVm(); try { var freelancer = _dbContext.Freelancers .Include(x => x.Habilities) .First(x => x.ApplicationUserId == id); var user = _dbContext.ApplicationUsers.Single(x => x.Id == id); result.Id = freelancer.Id; result.Lenguaje = freelancer.Lenguaje; result.PriceHour = freelancer.PriceHour; result.Biography = freelancer.Biography; result.Interest = freelancer.Interest; result.Level = freelancer.Level; result.Address = freelancer.ApplicationUser.Address; result.Rating = freelancer.Rating; result.Profesion = freelancer.Profesion; result.Name = user.Name; result.LastName = user.LastName; result.Avatar = $"{_imgServer}{user.Avatar}"; result.Lat = freelancer.Lat; result.Long = freelancer.Long; result.Email = user.Email; result.PhoneNumber = user.PhoneNumber; result.ApplicationUserId = user.Id; var h = new List <Hability>(); foreach (var i in freelancer.Habilities) { h.Add(_habilityService.GetById(i.HabilityId)); } result.Habilities = h; } catch (Exception) { result = null; } return(result); }
public IEnumerable <FreelancerVm> Filter(int?idHability, int?rating) { var result = new List <FreelancerVm>(); var resultadoF = new List <Freelancer>(); var freelancers = _dbContext.Freelancers.ToList(); var resultadoFF = new List <Freelancer>(); var l = new List <FreelancerHability>(); bool rate(Freelancer x) => !rating.HasValue || rating.Value == x.Rating; var habilidadselecionada = new List <Hability>(); if (idHability != null) { foreach (var item in _dbContext.Habilities) { var hability = _dbContext.Habilities.FirstOrDefault(x => x.Id == idHability.Value); if (hability != null) { habilidadselecionada.Add(hability); break; } } if (habilidadselecionada.Count() == 1) { foreach (var item in habilidadselecionada) { l = _dbContext.FreelancerHabilities.Where(x => x.HabilityId == item.Id).ToList(); foreach (var o in l) { var k = _dbContext.Freelancers.Include(x => x.ApplicationUser).Include(x => x.Habilities).Where(x => x.Id == o.FreelancerId) .Where(rate).ToList(); foreach (var d in k) { resultadoF.Add(d); } } } foreach (var q in resultadoF) { resultadoFF.Add(q); } } } else { foreach (var g in _dbContext.Freelancers.Include(x => x.ApplicationUser).Include(x => x.Habilities). Where(rate).ToList()) { resultadoFF.Add(g); } } foreach (var final in resultadoFF) { var frelancer = new FreelancerVm { ApplicationUserId = final.ApplicationUserId, Id = final.Id, Name = final.ApplicationUser.Name, LastName = final.ApplicationUser.LastName, PriceHour = final.PriceHour, Biography = final.Biography, Avatar = $"{_imgServer}{final.ApplicationUser.Avatar}", Profesion = final.Profesion, Long = final.Long, Lat = final.Lat, Rating = final.Rating, Email = final.ApplicationUser.Email }; var h = new List <Hability>(); var a = final.Habilities; if (final.Habilities != null) { foreach (var i in final.Habilities) { h.Add(_habilityService.GetById(i.HabilityId)); } } frelancer.Habilities = h; result.Add(frelancer); } return(result); }
public IEnumerable <FreelancerVm> Search(string parameter) { var result = new List <FreelancerVm>(); try { var freelancer = _dbContext.Freelancers .Include(x => x.ApplicationUser) .Include(x => x.Habilities) .Where(x => x.ApplicationUser.Name.Contains(parameter) || x.ApplicationUser.LastName.Contains(parameter) || x.Profesion.Contains(parameter) || x.Interest.Contains(parameter)).ToList(); /* * Si se encuentra un freelancer entonces lo añadira */ if (freelancer.Count() != 0) { foreach (var i in freelancer) { ApplicationUser user = _dbContext.ApplicationUsers. Single(x => x.Id == i.ApplicationUserId); var h = new List <Hability>(); foreach (var j in i.Habilities) { h.Add(_habilityService.GetById(j.HabilityId)); } var model = new FreelancerVm { Id = i.Id, Lenguaje = i.Lenguaje, PriceHour = i.PriceHour, Biography = i.Biography, Interest = i.Interest, Level = i.Level, Address = i.ApplicationUser.Address, Rating = i.Rating, Profesion = i.Profesion, Name = user.Name, LastName = user.LastName, Avatar = $"http://localhost:57455/img/{user.Avatar}", Lat = i.Lat, Long = i.Long, Email = user.Email, PhoneNumber = user.PhoneNumber, ApplicationUserId = user.Id, Habilities = h }; result.Add(model); } } } catch (Exception) { result = null; } return(result); }
public IndexVm <FreelancerVm> GetAll(int page = 1) { var result = new IndexVm <FreelancerVm>(); var freelancer = new List <FreelancerVm>(); try { var quantityOfPerson = 6; var model = _dbContext.Freelancers.OrderBy(x => x.Id) .Include(x => x.ApplicationUser) .Include(x => x.Habilities) .Skip((page - 1) * quantityOfPerson) .Take(quantityOfPerson).ToList(); /* * en cada iteracion va a desglosar habilities para traer la * entidad hija que es hability y de esta forma incluirla en la respuesta */ foreach (var i in model) { var n = i.Habilities; /* * creamos una lista para agregarsela al modelo freelancerVm para solo enviar * la lista */ var h = new List <Hability>(); foreach (var j in n) { h.Add(_habilityService.GetById(j.HabilityId)); } /* * creamos un nuevo modelo para personalizar la informacion enviada al usuarios * de esta manera evitamos enviar toda la informacion del usuario * y solo enviamos la necesaria */ var d = new FreelancerVm() { Id = i.Id, Lenguaje = i.Lenguaje, PriceHour = i.PriceHour, Biography = i.Biography, Interest = i.Interest, Level = i.Level, Address = i.ApplicationUser.Address, Rating = i.Rating, Profesion = i.Profesion, LastName = i.ApplicationUser.LastName, Name = i.ApplicationUser.Name, Avatar = $"{_imgServer}{i.ApplicationUser.Avatar}", Email = i.ApplicationUser.Email, Habilities = h, Lat = i.Lat, Long = i.Long, PhoneNumber = i.ApplicationUser.PhoneNumber, ApplicationUserId = i.ApplicationUser.Id }; freelancer.Add(d); } var totalOfRegister = model.Count(); result.Entities = freelancer; result.ActualPage = page; result.TotalOfRegister = totalOfRegister; result.RegisterByPage = quantityOfPerson; } catch (Exception e) { result = null; } return(result); }