Exemple #1
0
        private bool SavePictureToCache(CoursePictureModel picture)
        {
            bool result = false;

            try
            {
                string directory = GetCompanyCacheDirectory(picture.CompanyID);
                if (!Directory.Exists(directory))
                {
                    Directory.CreateDirectory(directory);
                }

                // save big picture
                string filePath = GetCacheFilePath(picture.CompanyID, picture.CourseID);
                SaveFile(filePath, picture.Picture);

                // save thumbnail picture
                string thumbnailPath = GetCacheThumbnailPath(picture.CompanyID, picture.CourseID);
                ResizeAndSaveFile(thumbnailPath, ThumbnailPictureWidthOrHeight, picture.Picture);

                result = true;
            }
            catch (Exception e)
            {
                this.eventLog.LogWarning(e);
            }

            return(result);
        }
Exemple #2
0
 public void UpdateCoursePicture(CoursePictureModel picture)
 {
     using (var dataContext = this.dataContextFactory.Create())
     {
         dataContext.p_UpsertCoursePicture(picture.CompanyID, picture.CourseID, ReadToEnd(picture.Picture));
     }
 }
Exemple #3
0
        private CoursePictureModel GetThumbnailFromCache(int companyID, int courseID)
        {
            CoursePictureModel result   = null;
            string             filePath = GetCacheThumbnailPath(companyID, courseID);

            try
            {
                if (!File.Exists(filePath))
                {
                    return(null);
                }

                using (var fileStream = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                {
                    var destination = new MemoryStream();
                    fileStream.CopyTo(destination);
                    result = new CoursePictureModel
                    {
                        CompanyID = companyID,
                        CourseID  = courseID,
                        Picture   = destination
                    };
                }
            }
            catch (Exception e)
            {
                this.eventLog.LogWarning(e);
            }

            return(result);
        }
Exemple #4
0
        public void UpdateCoursePicture(string tempPictureName, int companyID, int courseID)
        {
            string tempPath    = GetTempPicturePath(tempPictureName);
            Stream tempPicture = GetPictureFromTemp(tempPath);

            if (tempPicture == null)
            {
                throw new FileNotFoundException();
            }

            var model = new CoursePictureModel
            {
                CompanyID = companyID,
                CourseID  = courseID,
                Picture   = tempPicture
            };

            imageStorage.UpdateCoursePicture(model);

            object locker = GetOrAddConcurrentKey(companyID, courseID);

            lock (locker)
            {
                SavePictureToCache(model);
            }

            DeletePictureFromTemp(tempPath);
        }
Exemple #5
0
        public CoursePictureModel GetTempPicture(string tempImageName)
        {
            CoursePictureModel result   = null;
            string             tempPath = GetTempPicturePath(tempImageName);
            Stream             image    = GetPictureFromTemp(tempPath);

            if (image != null)
            {
                result = new CoursePictureModel
                {
                    Picture = image
                };
            }
            return(result);
        }
Exemple #6
0
        public CoursePictureModel GetCoursePicture(int companyID, int courseID)
        {
            CoursePictureModel result = null;

            using (var dataContext = this.dataContextFactory.Create())
            {
                var picture = dataContext.p_GetCoursePicture(companyID, courseID).FirstOrDefault();
                if (picture != null)
                {
                    result = new CoursePictureModel()
                    {
                        Picture   = picture.Picture != null ? new MemoryStream(picture.Picture) : null,
                        CompanyID = picture.CompanyID,
                        CourseID  = picture.ID
                    };
                }
            }
            return(result);
        }
Exemple #7
0
        public HttpResponseMessage GetImage([FromUri] CoursePictureQuery query)
        {
            CoursePictureModel pictureModel = null;
            var response = new HttpResponseMessage();

            try
            {
                if (!string.IsNullOrEmpty(query.TempName))
                {
                    pictureModel = imageService.GetTempPicture(query.TempName);
                }
                else if (query.CompanyID > 0 && query.CourseID > 0)
                {
                    pictureModel = imageService.GetPicture(query.CompanyID, query.CourseID);
                }
            }
            catch (CourseNotFoundException ex)
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound));
            }

            Stream outputStream = null;

            if (pictureModel != null && pictureModel.Picture != null && pictureModel.Picture.Length > 0)
            {
                outputStream = pictureModel.Picture;
            }
            else
            {
                string path = System.Web.HttpContext.Current.Server.MapPath(@"~/images/empty-course.png");
                outputStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
            }
            outputStream.Position = 0;
            response.Content      = new StreamContent(outputStream);
            response.Content.Headers.ContentType = new MediaTypeHeaderValue("image/png");

            return(response);
        }