public async Task <ActionResult> PostFreelancer(FreelancerViewModel vm) { string res = User.Claims.First(x => x.Type == "UserId").Value; int id = int.Parse(res); vm.UserId = id; var freelancer = new Domain.Entities.Freelancer() { UserForeignKey = id, PayHourly = vm.PayHourly }; await freelancerService.AddAsync(freelancer); await clientService.AddAsync(vm.CompanyName, id); var user = await userService.GetAsync(id); var token = await tokenService.GenerateToken(user, appSettings.JWT_Secret, vm.Password); //Update freelancerId and skillId of Skills var skillsUsers = vm.SkillUsers.Select(c => new SkillUser { FreelancerId = user.Freelancer.Id, SkillId = c.Skill.Id }).ToList(); await skillService.AddRangeAsync(skillsUsers); if (token == "") { return(BadRequest()); } return(Ok(new { token })); }
public async Task <IActionResult> FreelancerWalletAsync() { UserViewModel userViewModel = new UserViewModel(); string userId = RegisterModel.registeredUser; var freelancer = await _context.Freelancer .FirstOrDefaultAsync(m => m.freelancerId == userId); var address = await _context.Address .FirstOrDefaultAsync(m => m.userId == userId); var expertise = await _context.Expertise .FirstOrDefaultAsync(m => m.freelancerId == userId); var user = await _context.Users .FirstOrDefaultAsync(m => m.Id == userId); var wallet = _context.Wallet.FirstOrDefault(m => m.userId == userId); FreelancerViewModel model = new FreelancerViewModel(); model.freelancerId = freelancer.freelancerId; model.lastName = user.lastName; model.firstName = user.firstName; model.photo = freelancer.photo; model.wallet = wallet; userViewModel.FreelancerViewModel = model; return(View(userViewModel)); }
public async Task <IActionResult> ViewJob() { string jobId = Request.Form["jobId"].ToString(); UserViewModel userViewModel = new UserViewModel(); string userId = User.GetUserId(); var freelancer = await _context.Freelancer .FirstOrDefaultAsync(m => m.freelancerId == userId); var user = await _context.Users .FirstOrDefaultAsync(m => m.Id == userId); var job = _context.Job.FirstOrDefault(m => m.jobId == jobId); var customerUser = _context.Users.FirstOrDefault(m => m.Id == job.customerId); FreelancerViewModel model = new FreelancerViewModel(); //var customer = _context.Customer.FirstOrDefault(m => m.customerId == job.customerId); model.freelancerId = freelancer.freelancerId; model.lastName = user.lastName; model.firstName = user.firstName; model.photo = freelancer.photo; userViewModel.FreelancerViewModel = model; userViewModel.customerViewModel = new CustomerViewModel(); userViewModel.customerViewModel.firstName = customerUser.firstName; userViewModel.customerViewModel.lastName = customerUser.lastName; userViewModel.customerViewModel.phoneNumber = customerUser.PhoneNumber; userViewModel.job = job; return(View(userViewModel)); }
public ActionResult FreelancerProfile(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Person p = db.People.FirstOrDefault(x => x.PersonId == id); if (p == null) { return(HttpNotFound()); } AspNetUser aspNetUser = db.AspNetUsers.FirstOrDefault(x => x.Id == p.User_AccountID); Freelancer freelancer = db.Freelancers.FirstOrDefault(f => f.FreelancerId == p.PersonId); var Fskills = db.FreelancerSkills.Where(s => s.FreelancerId == freelancer.FreelancerId); FreelancerViewModel freelancerViewModel = new FreelancerViewModel(); freelancerViewModel.Person = p; freelancerViewModel.AspNetUser = aspNetUser; freelancerViewModel.Freelancer = freelancer; freelancerViewModel.FreelancerSkill = Fskills; return(View(freelancerViewModel)); }
// GET: Customers public async Task <IActionResult> Index() { UserViewModel userViewModel = new UserViewModel(); string userId = User.GetUserId(); var customer = await _context.Customer .FirstOrDefaultAsync(m => m.customerId == userId); var address = await _context.Address .FirstOrDefaultAsync(m => m.userId == userId); var user = await _context.Users .FirstOrDefaultAsync(m => m.Id == userId); var job = _context.Job.Where(m => m.customerId == userId); FreelancerViewModel freelancer = new FreelancerViewModel(); List <ProposalViewModel> proposals = new List <ProposalViewModel>(); ProposalViewModel proposal = new ProposalViewModel(); foreach (var item in job) { var prop = _context.Proposal.Where(m => m.jobId == item.jobId); if (prop != null) { foreach (var i in prop) { var userr = _context.Users.FirstOrDefault(m => m.Id == i.freelancerId); var freelancer1 = _context.Freelancer.FirstOrDefault(m => m.freelancerId == i.freelancerId); freelancer.freelancerId = item.freelancerId; freelancer.firstName = userr.firstName; freelancer.lastName = userr.lastName; freelancer.email = userr.Email; freelancer.phoneNumber = freelancer1.phoneNumber; freelancer.title = freelancer.category; proposal.freelancer = freelancer; proposal.job = item; proposal.freelancerId = item.freelancerId; proposal.bidAmount = i.bidAmount; proposal.description = i.description; proposal.answers = i.answers; proposals.Add(proposal); } } } CustomerViewModel model = new CustomerViewModel(); model.customerId = customer.customerId; model.phoneNumber = customer.phoneNumber; model.lastName = user.lastName; model.firstName = user.firstName; model.photo = customer.photo; userViewModel.customerViewModel = model; userViewModel.jobs = _context.Job.Where(e => e.customerId.Contains(userId)).ToList(); userViewModel.proposals = proposals; return(View(userViewModel)); }
public async Task <IActionResult> SearchFreelancers() { string userId = RegisterModel.registeredUser; var customer = await _context.Customer .FirstOrDefaultAsync(m => m.customerId == userId); var address = await _context.Address .FirstOrDefaultAsync(m => m.userId == userId); var user = await _context.Users .FirstOrDefaultAsync(m => m.Id == userId); CustomerViewModel model = new CustomerViewModel(); model.customerId = customer.customerId; model.phoneNumber = customer.phoneNumber; model.lastName = user.lastName; model.firstName = user.firstName; model.photo = customer.photo; UserViewModel userViewModel = new UserViewModel() { customerViewModel = model }; var freelancers = _context.Freelancer .FromSqlRaw <Freelancer>("SELECT * FROM Freelancer") .ToList(); List <FreelancerViewModel> freelancerViewModels = new List <FreelancerViewModel>(); foreach (var userr in freelancers) { FreelancerViewModel freelancer = new FreelancerViewModel(); var users = _context.Users.Where(e => e.Id.Contains(userr.freelancerId)).FirstOrDefault(); var addresses = _context.Address.Where(e => e.userId.Contains(userr.freelancerId)).FirstOrDefault(); freelancer.freelancerId = users.Id; freelancer.firstName = users.firstName; freelancer.lastName = users.lastName; freelancer.email = users.Email; freelancer.phoneNumber = userr.phoneNumber; freelancer.englishProficiency = userr.englishProficiency; freelancer.rate = userr.rate; freelancer.education = userr.education; freelancer.photo = userr.photo; freelancer.city = addresses.city; freelancer.pobox = addresses.pobox; freelancerViewModels.Add(freelancer); //freelancer = null; } userViewModel.freelancers = freelancerViewModels; return(View(userViewModel)); }
// GET: Freelancers public async Task <IActionResult> Index() { UserViewModel userViewModel = new UserViewModel(); string userId = User.GetUserId(); var freelancer = await _context.Freelancer .FirstOrDefaultAsync(m => m.freelancerId == userId); var address = await _context.Address .FirstOrDefaultAsync(m => m.userId == userId); var expertise = await _context.Expertise .FirstOrDefaultAsync(m => m.freelancerId == userId); var user = await _context.Users .FirstOrDefaultAsync(m => m.Id == userId); var job = _context.Job; FreelancerViewModel model = new FreelancerViewModel(); var proposal = _context.Proposal.Where(m => m.freelancerId == userId); List <ProposalViewModel> proposals = new List <ProposalViewModel>(); ProposalViewModel prop = new ProposalViewModel(); foreach (var item in proposal) { prop.jobId = item.jobId; prop.description = item.description; prop.answers = item.answers; prop.bidAmount = item.bidAmount; prop.jobTitle = _context.Job.FirstOrDefault(m => m.jobId == item.jobId).title; proposals.Add(prop); } model.freelancerId = freelancer.freelancerId; model.phoneNumber = freelancer.phoneNumber; model.title = freelancer.title; model.rate = freelancer.rate; model.score = freelancer.score; model.lastName = user.lastName; model.firstName = user.firstName; model.region = address.region; model.city = address.city; model.expertiseStatus = "Unverified"; model.professionalOverview = freelancer.professionalOverview; model.hourlyRate = freelancer.hourlyRate; model.photo = freelancer.photo; model.houseNumber = address.houseNumber; userViewModel.FreelancerViewModel = model; userViewModel.jobs = job.ToList(); userViewModel.proposals = proposals; return(View(userViewModel)); }
public ActionResult ViewFreelancerProfile(int?id) { Person p = db.People.FirstOrDefault(x => x.PersonId == id); AspNetUser aspNetUser = db.AspNetUsers.FirstOrDefault(x => x.Id == p.User_AccountID); Freelancer freelancer = db.Freelancers.FirstOrDefault(f => f.FreelancerId == p.PersonId); var Fskills = db.FreelancerSkills.Where(s => s.FreelancerId == freelancer.FreelancerId); FreelancerViewModel freelancerViewModel = new FreelancerViewModel(); freelancerViewModel.Person = p; freelancerViewModel.AspNetUser = aspNetUser; freelancerViewModel.Freelancer = freelancer; freelancerViewModel.FreelancerSkill = Fskills; return(View(freelancerViewModel)); }
public ActionResult ViewFreelancers() { var freelancers = db.Freelancers; List <FreelancerViewModel> list = new List <FreelancerViewModel>(); foreach (Freelancer freelancer in freelancers) { Person p = db.People.FirstOrDefault(x => x.PersonId == freelancer.FreelancerId); if (p.Approved == true) { FreelancerViewModel freelancerViewModel = new FreelancerViewModel(); freelancerViewModel.Freelancer = freelancer; freelancerViewModel.Person = p; AspNetUser aspNetUser = db.AspNetUsers.FirstOrDefault(x => x.Id == p.User_AccountID); freelancerViewModel.AspNetUser = aspNetUser; var Fskills = db.FreelancerSkills.Where(s => s.FreelancerId == freelancer.FreelancerId); freelancerViewModel.FreelancerSkill = Fskills; list.Add(freelancerViewModel); } } return(View(list)); }
public async Task <IActionResult> SubmitProposal() { string jobId = Request.Query["jobId"].ToString(); UserViewModel userViewModel = new UserViewModel(); string userId = User.GetUserId(); var freelancer = await _context.Freelancer .FirstOrDefaultAsync(m => m.freelancerId == userId); var user = await _context.Users .FirstOrDefaultAsync(m => m.Id == userId); FreelancerViewModel model = new FreelancerViewModel(); model.freelancerId = freelancer.freelancerId; model.phoneNumber = freelancer.phoneNumber; model.lastName = user.lastName; model.firstName = user.firstName; model.photo = freelancer.photo; userViewModel.job = new Job(); userViewModel.job.jobId = jobId; userViewModel.FreelancerViewModel = model; return(View(userViewModel)); }
public async Task <IActionResult> SearchFreelancers(string keyword) { string userId = RegisterModel.registeredUser; var customer = await _context.Customer .FirstOrDefaultAsync(m => m.customerId == userId); var address = await _context.Address .FirstOrDefaultAsync(m => m.userId == userId); var userss = await _context.Users .FirstOrDefaultAsync(m => m.Id == userId); CustomerViewModel model = new CustomerViewModel(); model.customerId = customer.customerId; model.phoneNumber = customer.phoneNumber; model.lastName = userss.lastName; model.firstName = userss.firstName; model.photo = customer.photo; UserViewModel userViewModel = new UserViewModel() { customerViewModel = model }; keyword = Request.Form["keyword"].ToString(); keyword = StringExtensions.FirstCharToUpper(keyword); if (keyword != null) { List <FreelancerViewModel> freelancerViewModels = new List <FreelancerViewModel>(); FreelancerViewModel freelancer = new FreelancerViewModel(); var users = _context.Users.Where(e => e.firstName.Contains(keyword) || e.lastName.Contains(keyword)).ToList(); List <Freelancer> freelancers = new List <Freelancer>(); List <Address> addresses = new List <Address>(); foreach (var user in users) { freelancer.freelancerId = user.Id; freelancer.firstName = user.firstName; freelancer.lastName = user.lastName; freelancer.email = user.Email; freelancers.Add(_context.Freelancer.Where(e => e.freelancerId.Contains(user.Id)).FirstOrDefault()); foreach (var item in freelancers) { freelancer.phoneNumber = item.phoneNumber; freelancer.englishProficiency = item.englishProficiency; freelancer.rate = item.rate; freelancer.education = item.education; freelancer.photo = item.photo; } addresses.Add(_context.Address.Where(e => e.userId.Contains(user.Id)).FirstOrDefault()); foreach (var col in addresses) { freelancer.city = col.city; freelancer.pobox = col.pobox; } freelancerViewModels.Add(freelancer); } userViewModel.freelancers = freelancerViewModels; return(View(userViewModel)); } return(View(userViewModel)); }