/// <summary> /// Add a picture of a kitten on the site (Create two photo: first is standart for slider and second is small for slider) /// </summary> /// <param name="file">Memory stream of image</param> /// <param name="kittenName">Name of kitten which picture we want to add</param> private void AddPhoto(MemoryStream file, string kittenName) { lock (_lockObj) { var smallPictureStream = new MemoryStream(); string kittenNameNumbered = _picturesRepository.GetNewNumberOfImage(kittenName); string kittenNameNumberedSmall = _picturesRepository.GetNewNumberOfImage(kittenName, true); string dirPath = Server.MapPath(PicturesLinksConstructor.KittensImageDirectoryPath + "/" + kittenName); string linkPath = PicturesLinksConstructor.KittensImageDirectoryPath + "/" + kittenName + "/" + kittenNameNumbered; string smallLinkPath = PicturesLinksConstructor.KittensImageDirectoryPath + "/" + kittenName + "/" + kittenNameNumberedSmall; if (!Directory.Exists(dirPath)) { Directory.CreateDirectory(dirPath); } file.Position = 0; file.CopyTo(smallPictureStream); WebImage savedImage = SaveImage(dirPath + "\\" + kittenNameNumbered, file, PictureSizes.StandartSliderPicture); WebImage savedSmallImage = SaveImage(dirPath + "\\" + kittenNameNumberedSmall, smallPictureStream, PictureSizes.SmallSliderPicture); if (savedImage != null && savedSmallImage != null) { _kittensRepository.AddPictureForTheKitten(kittenName, new Pictures() { Image = linkPath, ImageSmall = smallLinkPath, CssClass = savedImage.Width > savedImage.Height ? DBKittensRepository.SmallImageHorizontal : DBKittensRepository.SmallImageVertical }); _kittensRepository.Save(); } } }