public IUserService.UserEntitis Create(Account account, string password) { try { MailAddress m = new MailAddress(account.Email); } catch (FormatException) { throw new AppException("Email not formatted correctly"); } var acc = context.Accounts.SingleOrDefault(p => p.Email == account.Email); if (acc != null) { throw new AppException("Email already exist"); } byte[] passwordHash, passwordSalt; CreatePasswordHash(password, out passwordHash, out passwordSalt); account.PasswordHash = passwordHash; account.PasswordSalt = passwordSalt; account.Balance = 0; account.OnReady = false; context.Accounts.Add(account); context.SaveChanges(); account = context.Accounts .Include(p => p.Role).SingleOrDefault(p => p.Id == account.Id); IUserService.UserEntitis userEntitis = new IUserService.UserEntitis(account); userEntitis.createUserToken(); return(userEntitis); }
public IActionResult PostAvatar([FromBody] ImageModel imageModel) { String jwt = Request.Headers["Authorization"]; jwt = jwt.Substring(7); //Decode jwt and get payload var stream = jwt; var handler = new JwtSecurityTokenHandler(); var jsonToken = handler.ReadToken(stream); var tokenS = jsonToken as JwtSecurityToken; //I can get Claims using: var email = tokenS.Claims.First(claim => claim.Type == "email").Value; var account = _context.Accounts.SingleOrDefault(p => p.Email == email); if (account == null) { return(BadRequest()); } var nameDelete = account.AvatarUrl.Substring(account.AvatarUrl.LastIndexOf("/") + 1); if (nameDelete != "default.jpg") { try { System.IO.File.Delete(rootpath + "//Avatars//" + nameDelete); } catch (Exception) { throw; } } string newname = account.Id + "_" + imageModel.Name; using (FileStream fs = System.IO.File.Create(rootpath + "\\Avatars\\" + newname)) { fs.Close(); System.IO.File.WriteAllBytes(rootpath + "\\Avatars\\" + newname, Convert.FromBase64String(imageModel.ImageBase64)); } account.AvatarUrl = "freelancervn.somee.com/api/images/avatars/" + newname; _context.Entry(account).State = EntityState.Modified; _context.SaveChanges(); return(Ok(new { message = "Successful", url = account.AvatarUrl })); }
public String FormatDataDB() { var name = ""; foreach (var item in _context.Accounts.ToList()) { name = item.AvatarUrl.Substring(item.AvatarUrl.LastIndexOf("\\") + 1); item.AvatarUrl = "freelancervn.somee.com/api/images/avatars/" + name; } foreach (var item in _context.CapacityProfiles.ToList()) { name = item.ImageUrl.Substring(item.ImageUrl.LastIndexOf("\\") + 1); item.ImageUrl = "freelancervn.somee.com/api/images/images/" + name; } foreach (var item in _context.Specialties.ToList()) { name = item.Image.Substring(item.Image.LastIndexOf("\\") + 1); item.Image = "freelancervn.somee.com/api/images/assets/" + name; } _context.SaveChanges(); //foreach (var item in _context.Accounts.ToList()) //{ // item.AvatarUrl = "\\Avatars\\" + item.AvatarUrl; //} //_context.SaveChanges(); //foreach (var item in _context.CapacityProfiles.ToList()) //{ // item.ImageUrl = "\\Images\\" + item.ImageUrl; //} //_context.SaveChanges(); //foreach (var item in _context.Specialties.ToList()) //{ // item.Image = "\\Assets\\" + item.Image; //} //_context.SaveChanges(); return("OK"); }
public async Task <ActionResult <CapacityProfileResponse> > PostCapacityProfile(CProfilePostModel cProfilePostModel) { String jwt = Request.Headers["Authorization"]; jwt = jwt.Substring(7); //Decode jwt and get payload var stream = jwt; var handler = new JwtSecurityTokenHandler(); var jsonToken = handler.ReadToken(stream); var tokenS = jsonToken as JwtSecurityToken; //I can get Claims using: var email = tokenS.Claims.First(claim => claim.Type == "email").Value; Account account = await _context.Accounts.SingleOrDefaultAsync(p => p.Email == email); if (account == null) { return(BadRequest()); } CapacityProfile capacityProfile = new CapacityProfile() { FreelancerId = account.Id, Name = cProfilePostModel.Name, Description = cProfilePostModel.Description, Urlweb = cProfilePostModel.Urlweb, }; _context.CapacityProfiles.Add(capacityProfile); await _context.SaveChangesAsync(); foreach (var item in cProfilePostModel.Services) { _context.ProfileServices.Add(new ProfileService { Cpid = capacityProfile.Id, ServiceId = item.Id, }); } try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (CapacityProfileExists(capacityProfile.FreelancerId)) { return(Conflict()); } else { throw; } } capacityProfile = _context.CapacityProfiles .Include(p => p.ProfileServices).ThenInclude(p => p.Service) .SingleOrDefault(p => p.Id == capacityProfile.Id); //create image string rootpath = _webHostEnvironment.WebRootPath; var newname = cProfilePostModel.ImageName + "_" + capacityProfile.Id; using (FileStream fs = System.IO.File.Create(rootpath + "\\Images" + newname)) { fs.Close(); System.IO.File.WriteAllBytes(rootpath + "\\Images" + newname, Convert.FromBase64String(cProfilePostModel.ImageBase64)); } capacityProfile.ImageUrl = "freelancervn.somee.com/api/images/images/" + newname; _context.SaveChanges(); return(Ok(new CapacityProfileResponse(capacityProfile))); }