/// <summary> /// This helper function store uploaded images in memory /// </summary> public static Models.Image CreateUserImage(AppDbContext db, int Id, string imageToStore) { Image image; string dbPath = ""; var byteArray = Convert.FromBase64String(imageToStore); Directory.CreateDirectory( HttpContext.Current.Server.MapPath("~/Image/Advertisements/" + Id)); string folderPath = HttpContext.Current.Server.MapPath("~/Image/Advertisements/" + Id + "/"); string fileName = "UserImage" + "_" + DateTime.Now.ToString("yy-MM-dd-hh-mm-ss") + ".jpg"; string imagePath = folderPath + fileName; dbPath = "/Image/Advertisements/" + Id + "/" + fileName; using (MemoryStream mStream = new MemoryStream(byteArray)) { image = Image.FromStream(mStream); image.Save(imagePath, ImageFormat.Jpeg); } //We create image instance to store it in db with associated advertisement var userImage = new Models.Image() { Name = "User" + "_" + Id + "Ad", ImagePath = dbPath, Type = ImageType.USER_IMAGE, CreatedAt = DateTime.Now, UpdatedAt = DateTime.Now }; db.Images.Add(userImage); return(userImage); }
private void saveChanges_Click(object sender, EventArgs e) { var mainForm = (SoftCinemaForm)((Button)sender).Parent.Parent.Parent; mainForm.RenderSideBar(); try { string email = this.emailTextBox.Text; string phoneNumber = this.phoneNumberTextBox.Text; string password = this.passwordTextBox.Text; Models.Image profilePic = new Models.Image() { Content = imageBytes }; ImageService.AddImage(profilePic.Content); bool isDeleted = false; UserService.AddOrUpdateUser(user.Username, password, email, phoneNumber, (Role)user.Role, profilePic); user.ProfilePicture = profilePic; UserService.AddImageToUser(user, profilePic); UserService.AddImageToUser(MyAccountForm._currentUser, profilePic); MyAccountForm._currentUser = user; TopPanelForm.ShowGreetings(); } catch (Exception exception) { MessageBox.Show(Constants.ErrorMessages.UserUpdateErrorMesage); } SoftCinemaForm.SetContentHolderForm(new MyAccountForm()); }
//Utilities public void ShowGreetings() { GreetingLabel.Show(); GreetingLabel.ForeColor = Color.White; GreetingLabel.Text = string.Format(Constants.GreetingsMessage, AuthenticationManager.GetCurrentUser().Username); //Show Image User currentUser = AuthenticationManager.GetCurrentUser(); byte[] imageBytes = imageService.GetProfilePicture(currentUser.Username); if (imageBytes != null) { System.Drawing.Image image = imageService.byteArrayToImage(imageBytes); profilePicPictureBox.Image = imageService.ScaleImage(image, 55, 54); profilePicPictureBox.Size = new Size(profilePicPictureBox.Image.Width, profilePicPictureBox.Image.Height); } else { Image image = Image.FromFile(@"../../Utilities/Images/default.jpg"); byte[] imageToBytes = imageService.imageToByteArray(image); Models.Image newImage = new Models.Image() { Content = imageToBytes }; currentUser.ProfilePicture = newImage; profilePicPictureBox.Image = imageService.ScaleImage(image, 55, 54); } profilePicPictureBox.Location = new Point(590, profilePicPictureBox.Location.Y); profilePicPictureBox.Show(); LogoutButton.Show(); }
public static Models.Image CreateDefaultImage(string name, WebImageType type) { string defaultPath = ""; ImageType imageType; switch (type) { case WebImageType.AVATAR: defaultPath = "/Image/Games/Default/Default.jpg"; imageType = ImageType.AVATAR; break; case WebImageType.COVER: defaultPath = "/Image/Games/Default/DefaultCover.jpg"; imageType = ImageType.COVER; break; case WebImageType.NOTIFICATION_IMAGE: defaultPath = "/Image/Games/Default/Default.jpg"; imageType = ImageType.NOTIFICATION_IMAGE; break; default: throw new ArgumentOutOfRangeException(nameof(type), type, null); } //We create image instance and store it in database var defaultImage = new Models.Image() { Name = name, ImagePath = defaultPath, Type = imageType, CreatedAt = DateTime.Now, UpdatedAt = DateTime.Now }; return(defaultImage); }
private void saveChanges_Click(object sender, EventArgs e) { var mainForm = (SoftCinemaForm)((Button)sender).Parent.Parent.Parent; mainForm.RenderSideBar(); try { string email = this.emailTextBox.Text; string phoneNumber = this.phoneNumberTextBox.Text; string password = string.Empty; if (userService.isPasswordValid(this.passwordTextBox.Text)) { password = this.passwordTextBox.Text; } Models.Image profilePic = null; if (_image != null) { profilePic = new Models.Image() { Content = imageBytes }; } bool isDeleted = false; userService.EditUser(user.Username, email, phoneNumber, password, profilePic); MyAccountForm._currentUser = user; mainForm.RenderTopPanelForm(); } catch (Exception) { MessageBox.Show(Constants.ErrorMessages.UserUpdateErrorMesage); } SoftCinemaForm.SetContentHolderForm(new MyAccountForm()); }
public static Models.Image CreateWebImage(HttpPostedFileBase file, string name, WebImageType type) { string baseAddressInMemory = ""; ImageType imageType; switch (type) { case WebImageType.AVATAR: baseAddressInMemory = "/Image/Games/"; imageType = ImageType.AVATAR; break; case WebImageType.COVER: baseAddressInMemory = "/Image/Games/"; imageType = ImageType.COVER; break; case WebImageType.GAMEPLAY: baseAddressInMemory = "/Image/Games/"; imageType = ImageType.GAMEPLAY; break; case WebImageType.NOTIFICATION_IMAGE: baseAddressInMemory = "/Image/Notifications/"; imageType = ImageType.NOTIFICATION_IMAGE; break; default: throw new ArgumentOutOfRangeException(nameof(type), type, null); } string avatarPhotoFilePath = ""; var folderRandomIndex = RandomHelper.RandomInt(0, 10000); var fileRandomIndex = RandomHelper.RandomInt(0, 10000); var avatarPhotoFileExtension = Path.GetExtension(file.FileName); Directory.CreateDirectory(HttpContext.Current.Server.MapPath("~" + baseAddressInMemory + folderRandomIndex)); var avatarPhotoFileName = fileRandomIndex + DateTime.Now.ToString("yy-MM-dd-hh-mm-ss") + avatarPhotoFileExtension; avatarPhotoFilePath = baseAddressInMemory + folderRandomIndex + "/" + avatarPhotoFileName; avatarPhotoFileName = Path.Combine(HttpContext.Current.Server.MapPath("~" + baseAddressInMemory + folderRandomIndex + "/"), avatarPhotoFileName); file.SaveAs(avatarPhotoFileName); //We create image instance and store it in database var webImage = new Models.Image() { Name = name, ImagePath = avatarPhotoFilePath, Type = imageType, CreatedAt = DateTime.Now, UpdatedAt = DateTime.Now }; return(webImage); }
public async Task <IHttpActionResult> Create(AdvertisementCreateDto advertisementCreate) { if (ModelState.IsValid) { var session = await db.Sessions.SingleOrDefaultAsync( QueryHelper.GetSessionObjectValidationQuery(advertisementCreate.Session)); if (session != null) { var user = session.User; var isImageEmpty = string.IsNullOrEmpty(advertisementCreate.UserImage); Models.Image userImage = null; if (!isImageEmpty) { //we write user's uploaded image in memory userImage = ImageHandler.CreateUserImage(db, user.Id, advertisementCreate.UserImage); } var newAdvertisement = new Advertisement() { User = user, MedType = advertisementCreate.MedType, GameId = advertisementCreate.GameId, GameReg = advertisementCreate.GameReg, Latitude = advertisementCreate.Latitude, Longitude = advertisementCreate.Longitude, LocationRegionId = advertisementCreate.LocationRegionId, LocationCityId = advertisementCreate.LocationCityId, LocationProvinceId = advertisementCreate.LocationProvinceId, Price = advertisementCreate.Price, PlatformId = advertisementCreate.PlatformId, Caption = advertisementCreate.Caption, UserImage = userImage, isDeleted = false, CreatedAt = DateTime.Now, UpdatedAt = DateTime.Now }; db.Advertisements.Add(newAdvertisement); if (advertisementCreate.ExchangeGames.Count > 0) //we have some games to exchange { foreach (var game in advertisementCreate.ExchangeGames) { var newExchange = new Exchange() { AdvertisementId = newAdvertisement.Id, GameId = game }; db.Exchanges.Add(newExchange); } } await db.SaveChangesAsync(); // Broadcasting NotificationGenerator.NewAdvertisementNotification(db, newAdvertisement); return(Ok(newAdvertisement.Id)); } return(Unauthorized()); } return(BadRequest()); }