Example #1
0
        public JObject GetUserBookmark()
        {
            var user = SessionProvider.GetValue <UserModel>(CommonConst.CommonValue.SESSION_USER_KEY);

            if (user == null)
            {
                return(ResponseBuilder.CreateReponse(CommonConst._401_UNAUTHORIZED));
            }

            var filter = new JObject();

            filter[CommonConst.CommonField.USER_ID] = user.user_id;

            var     bookmarkData = DBProxy.FirstOrDefault(ImageProcessor.MYPHOTO_IMAGE_BOOKMARK_COLLECTION, filter.ToString());
            JObject responseData = new JObject();

            if (bookmarkData != null)
            {
                JArray data = new JArray();
                foreach (var item in bookmarkData[ImageProcessor.IMAGES])
                {
                    var d = ImageGalleryHelper.GetImageData(DBProxy, SessionProvider, item[ImageProcessor.FILE_HASH].ToString()).First();
                    d[ImageProcessor.GALLERY_ID] = item[ImageProcessor.GALLERY_ID];
                    data.Add(d);
                }
                responseData[CommonConst.CommonField.NAME] = "My Bookmarked Images";
                responseData[ImageProcessor.IMAGES]        = data;
            }
            return(ResponseBuilder.CreateReponse(CommonConst._1_SUCCESS, responseData));
        }
        // GET: ListImageModal
        public ActionResult Index(string dir, int?page = 1)
        {
            var files = ImageGalleryHelper.BrowseFiles(dir);

            var folders = ImageGalleryHelper.BrowseFolders(dir);


            var items = new Dictionary <string, string>();

            folders.ToList().ForEach(folder =>
            {
                items.Add(folder, "folder");
            });

            files.ToList().ForEach(file =>
            {
                items.Add(file, "file");
            });

            var counter     = 0;
            var paged_items = new Dictionary <string, string>();

            for (int i = 0; i < items.Count; i++)
            {
                var number_of_skip_items = PAGE_SIZE * (page - 1);
                if (i >= number_of_skip_items && counter < PAGE_SIZE)
                {
                    paged_items.Add(items.Keys.ElementAt(i), items.Values.ElementAt(i));
                    counter++;
                }
            }
            ViewBag.Items = paged_items;
            return(View());
        }
Example #3
0
        private JObject GetGalleryImages(string id)
        {
            JObject filter = new JObject();

            filter[CommonConst.CommonField.DISPLAY_ID] = id;

            var data = DBProxy.FirstOrDefault(ImageProcessor.MYPHOTO_GALLERY_COLLECTION, filter.ToString());

            if (data != null)
            {
                ImageGalleryHelper.AddDefaultOwner(data);
                if (ImageGalleryHelper.IsValidaUser(data, SessionProvider))
                {
                    AddGalleryThumbnailImage(data);

                    return(ResponseBuilder.CreateReponse(CommonConst._1_SUCCESS, GetGalleryPageData(data)));
                }
                else
                {
                    data.Remove(ImageProcessor.AUTH_USERS);
                    data.Remove(ImageProcessor.FILE_HASHS);
                    return(ResponseBuilder.CreateReponse(CommonConst._401_UNAUTHORIZED, data));
                }
            }
            else
            {
                return(ResponseBuilder.CreateReponse(CommonConst._404_RESOURCE_NOT_FOUND));
            }
        }
Example #4
0
        public JObject Bookmark()
        {
            try
            {
                var fileHash  = HttpProxy.GetQueryString(ImageProcessor.FILE_HASH);
                var galleryId = HttpProxy.GetQueryString(ImageProcessor.GALLERY_ID);

                if (string.IsNullOrEmpty(fileHash) || string.IsNullOrEmpty(galleryId))
                {
                    return(ResponseBuilder.CreateReponse(CommonConst._400_BAD_REQUEST));
                }

                if (!ImageGalleryHelper.HasAccess(DBProxy, SessionProvider, galleryId, fileHash))
                {
                    return(ResponseBuilder.CreateReponse(CommonConst._401_UNAUTHORIZED));
                }
                var user = SessionProvider.GetValue <UserModel>(CommonConst.CommonValue.SESSION_USER_KEY);

                var filter = new JObject();
                filter[CommonConst.CommonField.USER_ID] = user.user_id;

                var bookmarkData = DBProxy.FirstOrDefault(ImageProcessor.MYPHOTO_IMAGE_BOOKMARK_COLLECTION, filter.ToString());
                if (bookmarkData == null)
                {
                    bookmarkData = new JObject();
                    bookmarkData[CommonConst.CommonField.DISPLAY_ID] = CommonUtility.GetNewID();
                    bookmarkData[CommonConst.CommonField.USER_ID]    = user.user_id;
                    bookmarkData[ImageProcessor.IMAGES] = new JArray();
                }

                JObject bookmarrkResponse = new JObject();
                var     bookmarkFile      = (bookmarkData[ImageProcessor.IMAGES] as JArray).FirstOrDefault(f => f[ImageProcessor.FILE_HASH].ToString() == fileHash);
                Logger.Debug("Get Bookmark data");
                if (bookmarkFile != null)
                {
                    (bookmarkData[ImageProcessor.IMAGES] as JArray).Remove(bookmarkFile);
                    bookmarrkResponse[ImageProcessor.COUNT] = -1;
                    Logger.Debug("Removed");
                }
                else
                {
                    bookmarkFile = new JObject();
                    bookmarkFile[ImageProcessor.FILE_HASH]  = fileHash;
                    bookmarkFile[ImageProcessor.GALLERY_ID] = galleryId;
                    (bookmarkData[ImageProcessor.IMAGES] as JArray).Add(bookmarkFile);
                    bookmarrkResponse[ImageProcessor.COUNT] = +1;
                    Logger.Debug("Adding");
                }

                DBProxy.Update(ImageProcessor.MYPHOTO_IMAGE_BOOKMARK_COLLECTION, filter.ToString(), bookmarkData, true, MergeArrayHandling.Replace);

                return(ResponseBuilder.CreateReponse(CommonConst._1_SUCCESS, bookmarrkResponse));
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message, ex);
                return(ResponseBuilder.CreateReponse(CommonConst._500_SERVER_ERROR));
            }
        }
Example #5
0
        JObject GetGalleryPageData(JObject data)
        {
            string strPagesize    = HttpProxy.GetQueryString(CommonConst.CommonField.PAGE_SIZE_KEY.ToLower());
            string strCurrentPage = HttpProxy.GetQueryString(CommonConst.CommonField.CURRENT_PAGE_KEY.ToLower());

            if (_paramContainer.GetKey(CommonConst.CommonField.PAGE_SIZE_KEY.ToLower()) != null)
            {
                strPagesize = (string)_paramContainer.GetKey(CommonConst.CommonField.PAGE_SIZE_KEY.ToLower());
            }
            if (_paramContainer.GetKey(CommonConst.CommonField.CURRENT_PAGE_KEY.ToLower()) != null)
            {
                strCurrentPage = (string)_paramContainer.GetKey(CommonConst.CommonField.CURRENT_PAGE_KEY.ToLower());
            }

            int pageSize    = 50;
            int currentPage = 1;

            int.TryParse(strPagesize, out pageSize);
            int.TryParse(strCurrentPage, out currentPage);

            int startCount = (pageSize * (currentPage));
            int endCount   = startCount + pageSize;

            if (data[ImageProcessor.FILE_HASHS] == null)
            {
                data[ImageProcessor.FILE_HASHS] = new JArray();
            }
            var fileHashs  = (data[ImageProcessor.FILE_HASHS] as JArray);
            int totalPages = 0;

            if (fileHashs.Count > 0 && pageSize != 0)
            {
                totalPages = fileHashs.Count / pageSize;
            }

            var images = new JArray();

            for (int i = startCount; i < endCount && i < fileHashs.Count; i++)
            {
                var fileData = ImageGalleryHelper.GetImageData(DBProxy, SessionProvider, fileHashs[i].ToString());
                if (fileData.Count == 0)
                {
                    Logger.Error(string.Format("Image File not found {0}", fileHashs[i].ToString()));
                }
                else
                {
                    images.Add(fileData[0]);
                }
            }
            data.Remove(ImageProcessor.FILE_HASHS);
            data[ImageProcessor.IMAGES] = images;
            data[CommonConst.CommonField.PAGE_SIZE_KEY]          = pageSize;
            data[CommonConst.CommonField.TOTAL_RECORD_COUNT_KEY] = fileHashs.Count;
            data[CommonConst.CommonField.TOTAL_PAGES_KEY]        = totalPages;
            data[CommonConst.CommonField.CURRENT_PAGE_KEY]       = currentPage;

            return(data);
        }
Example #6
0
        public JObject Like()
        {
            try
            {
                var fileHash  = HttpProxy.GetQueryString(ImageProcessor.FILE_HASH);
                var galleryId = HttpProxy.GetQueryString(ImageProcessor.GALLERY_ID);

                if (string.IsNullOrEmpty(fileHash) || string.IsNullOrEmpty(galleryId))
                {
                    return(ResponseBuilder.CreateReponse(CommonConst._400_BAD_REQUEST));
                }

                if (!ImageGalleryHelper.HasAccess(DBProxy, SessionProvider, galleryId, fileHash))
                {
                    return(ResponseBuilder.CreateReponse(CommonConst._401_UNAUTHORIZED));
                }
                var user = SessionProvider.GetValue <UserModel>(CommonConst.CommonValue.SESSION_USER_KEY);

                var filter = new JObject();
                filter[ImageProcessor.FILE_HASH] = fileHash;

                var likeData = DBProxy.FirstOrDefault(ImageProcessor.MYPHOTO_IMAGE_LIKE_COLLECTION, filter.ToString());
                if (likeData == null)
                {
                    likeData = new JObject();
                    likeData[ImageProcessor.USERS]               = new JArray();
                    likeData[ImageProcessor.FILE_HASH]           = fileHash;
                    likeData[ImageProcessor.COUNT]               = 0;
                    likeData[CommonConst.CommonField.DISPLAY_ID] = CommonUtility.GetNewID();
                }

                var totalCount = 0;
                int.TryParse(likeData[ImageProcessor.COUNT].ToString(), out totalCount);
                JObject like     = new JObject();
                var     likeUser = (likeData[ImageProcessor.USERS] as JArray).FirstOrDefault(f => f.ToString() == user.user_id);
                if (likeUser != null)
                {
                    (likeData[ImageProcessor.USERS] as JArray).Remove(likeUser);
                    totalCount--;
                    like[ImageProcessor.COUNT] = -1;
                }
                else
                {
                    (likeData[ImageProcessor.USERS] as JArray).Add(user.user_id);
                    totalCount++;
                    like[ImageProcessor.COUNT] = +1;
                }
                likeData[ImageProcessor.COUNT] = (likeData[ImageProcessor.USERS] as JArray).Count;

                DBProxy.Update(ImageProcessor.MYPHOTO_IMAGE_LIKE_COLLECTION, filter.ToString(), likeData, true, MergeArrayHandling.Replace);
                return(ResponseBuilder.CreateReponse(CommonConst._1_SUCCESS, like));
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message, ex);
                return(ResponseBuilder.CreateReponse(CommonConst._500_SERVER_ERROR));
            }
        }
Example #7
0
        private string  UploadFile(string galleryId, UserModel user, string fileName, IKeyValueStorage keyValueStorage)
        {
            FileInfo fi = new FileInfo(fileName);

            Logger.Debug(string.Format("Getting File Data"));

            byte[] fileData = _fileUploader.GetFileData(fileName);
            using (Bitmap image = ImageGalleryHelper.GetImageBitmapFromByte(fileData))
            {
                Logger.Debug(string.Format("Getting file Hash"));
                var fileModel = new FileModel()
                {
                    file_hash = Hashing.GetFileHash(fileData), file_paths = new List <string>()
                };
                JObject fileFilter = new JObject();
                fileFilter[ImageProcessor.FILE_HASH] = fileModel.file_hash;
                if (DBProxy.FirstOrDefault(ImageProcessor.MYPHOTO_COLLECTION, fileFilter.ToString()) == null)
                {
                    Logger.Debug(string.Format("CreateFileDataJObject"));
                    var imageJObjectData = ImageGalleryHelper.CreateFileDataJObject(fileModel, string.Empty, image, keyValueStorage);
                    imageJObjectData[CommonConst.CommonField.DISPLAY_ID] = CommonUtility.GetNewID();
                    imageJObjectData[ImageProcessor.OWNER] = user.user_id;
                    DBProxy.Write(ImageProcessor.MYPHOTO_COLLECTION, imageJObjectData);
                }

                var filter = new JObject();
                filter[CommonConst.CommonField.DISPLAY_ID] = galleryId;
                Logger.Debug(string.Format("Getting gallery "));
                var galleryData = DBProxy.FirstOrDefault(ImageProcessor.MYPHOTO_GALLERY_COLLECTION, filter.ToString());
                if (galleryData == null)
                {
                    galleryData = new JObject();
                    galleryData[ImageProcessor.FILE_HASHS] = new JArray();
                    (galleryData[ImageProcessor.FILE_HASHS] as JArray).Add(fileModel.file_hash);
                    galleryData[ImageProcessor.GALLERY_THUMBNAIL] = fileModel.file_hash;
                    galleryData[ImageProcessor.OWNER]             = user.user_id;
                    galleryData[ImageProcessor.AUTH_USERS]        = new JArray();
                    (galleryData[ImageProcessor.AUTH_USERS] as JArray).Add(user.user_id);
                }
                else
                {
                    if (galleryData[ImageProcessor.FILE_HASHS] == null)
                    {
                        galleryData[ImageProcessor.FILE_HASHS] = new JArray();
                    }
                    Logger.Debug(string.Format("Adding file to collection "));
                    (galleryData[ImageProcessor.FILE_HASHS] as JArray).Insert(0, fileModel.file_hash);
                }
                galleryData[ImageProcessor.FILES_COUNT] = (galleryData[ImageProcessor.FILE_HASHS] as JArray).Count;

                DBProxy.Update(ImageProcessor.MYPHOTO_GALLERY_COLLECTION, filter.ToString(), galleryData, false, MergeArrayHandling.Replace);

                return(fileModel.file_hash);
            }
        }
Example #8
0
        public JObject UpdateAlbum()
        {
            try
            {
                var galleryId = HttpProxy.GetQueryString(ImageProcessor.GALLERY_ID);

                var requestBody = HttpProxy.GetRequestBody <JObject>();
                if (requestBody == null || string.IsNullOrEmpty(galleryId))
                {
                    return(ResponseBuilder.CreateReponse(CommonConst._400_BAD_REQUEST));
                }
                if (!ImageGalleryHelper.IsOwner(DBProxy, SessionProvider, galleryId))
                {
                    return(ResponseBuilder.CreateReponse(CommonConst._401_UNAUTHORIZED));
                }
                var filter = new JObject();
                filter[CommonConst.CommonField.DISPLAY_ID] = galleryId;

                var data = DBProxy.FirstOrDefault(ImageProcessor.MYPHOTO_GALLERY_COLLECTION, filter.ToString());

                if (data == null)
                {
                    return(ResponseBuilder.CreateReponse(CommonConst._400_BAD_REQUEST));
                }
                if (requestBody[ImageProcessor.DISPLAY_NAME] != null)
                {
                    data[ImageProcessor.DISPLAY_NAME] = requestBody[ImageProcessor.DISPLAY_NAME].ToString();
                }
                if (requestBody[ImageProcessor.DESCRIPTION] != null)
                {
                    data[ImageProcessor.DESCRIPTION] = requestBody[ImageProcessor.DESCRIPTION].ToString();
                }
                if (requestBody[ImageProcessor.GALLERY_THUMBNAIL] != null)
                {
                    data[ImageProcessor.GALLERY_THUMBNAIL] = requestBody[ImageProcessor.GALLERY_THUMBNAIL].ToString();
                }
                if (requestBody[ImageProcessor.AUTH_USERS] != null)
                {
                    data[ImageProcessor.AUTH_USERS] = requestBody[ImageProcessor.AUTH_USERS];
                }

                if (DBProxy.Update(ImageProcessor.MYPHOTO_GALLERY_COLLECTION, filter.ToString(), data, false, MergeArrayHandling.Replace) != 1)
                {
                    return(ResponseBuilder.CreateReponse(CommonConst._500_SERVER_ERROR));
                }
                return(ResponseBuilder.CreateReponse(CommonConst._1_SUCCESS));
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message, ex);
                return(ResponseBuilder.CreateReponse(CommonConst._500_SERVER_ERROR));
            }
        }
Example #9
0
        public JObject DeleteImage()
        {
            try
            {
                var galleryId = HttpProxy.GetQueryString(ImageProcessor.GALLERY_ID);
                var fileHash  = HttpProxy.GetQueryString(ImageProcessor.FILE_HASH);


                var user = SessionProvider.GetValue <UserModel>(CommonConst.CommonValue.SESSION_USER_KEY);
                if (string.IsNullOrEmpty(galleryId) || string.IsNullOrEmpty(galleryId))
                {
                    return(ResponseBuilder.CreateReponse(CommonConst._400_BAD_REQUEST));
                }
                if (!ImageGalleryHelper.IsOwner(DBProxy, SessionProvider, galleryId))
                {
                    return(ResponseBuilder.CreateReponse(CommonConst._401_UNAUTHORIZED));
                }
                var filter = new JObject();
                filter[CommonConst.CommonField.DISPLAY_ID] = galleryId;
                var galleryData = DBProxy.FirstOrDefault(ImageProcessor.MYPHOTO_GALLERY_COLLECTION, filter.ToString());
                if (galleryData == null)
                {
                    Logger.Error(string.Format("Gallery Not found :  Gallery: {0} ", galleryId));

                    return(ResponseBuilder.CreateReponse(CommonConst._404_RESOURCE_NOT_FOUND));
                }
                if (galleryData[ImageProcessor.FILE_HASHS] == null)
                {
                    return(ResponseBuilder.CreateReponse(CommonConst._500_SERVER_ERROR));
                }
                var filehashData = (galleryData[ImageProcessor.FILE_HASHS] as JArray).FirstOrDefault(f => f.ToString() == fileHash);
                if (filehashData != null)
                {
                    (galleryData[ImageProcessor.FILE_HASHS] as JArray).Remove(filehashData);
                    DBProxy.Update(ImageProcessor.MYPHOTO_GALLERY_COLLECTION, filter.ToString(), galleryData, false, MergeArrayHandling.Replace);
                    JObject responseData = new JObject();
                    responseData[ImageProcessor.FILE_HASH] = fileHash;
                    return(ResponseBuilder.CreateReponse(CommonConst._1_SUCCESS, responseData));
                }
                else
                {
                    Logger.Error(string.Format("File Hash Not found : FileHash: {0} Gallery: {1} ", fileHash, galleryId));
                    return(ResponseBuilder.CreateReponse(CommonConst._404_RESOURCE_NOT_FOUND));
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message, ex);
                return(ResponseBuilder.CreateReponse(CommonConst._500_SERVER_ERROR));
            }
        }
Example #10
0
        //private JObject GetGallery(string galleryid)
        //{
        //    JObject filter = new JObject();
        //    filter[ImageProcessor.GALLERY_ID] = galleryid;
        //    var data = DBProxy.Get(ImageProcessor.MYPHOTO_GALLERY_COLLECTION, filter.ToString(), new List<string> { CommonConst.CommonField.DISPLAY_ID,
        //        CommonConst.CommonField.NAME, ImageProcessor.FILES_COUNT,
        //        ImageProcessor.GALLERY_THUMBNAIL,
        //        ImageProcessor.AUTH_USERS,
        //        ImageProcessor.OWNER,
        //    ImageProcessor.DESCRIPTION});
        //    if (data.Count == 1)
        //    {
        //        AddGalleryThumbnailImage(data.First());
        //        return data.First() as JObject;
        //    }
        //    else
        //    {
        //        return null;
        //    }

        //}

        private void AddGalleryThumbnailImage(JToken galleryItem)
        {
            if (galleryItem[ImageProcessor.DISPLAY_NAME] == null)
            {
                galleryItem[ImageProcessor.DISPLAY_NAME] = galleryItem[CommonConst.CommonField.NAME].ToString();
            }
            if (galleryItem[ImageProcessor.DESCRIPTION] == null)
            {
                galleryItem[ImageProcessor.DESCRIPTION] = string.Empty;
            }
            if (galleryItem[ImageProcessor.GALLERY_THUMBNAIL] != null)
            {
                galleryItem[ImageProcessor.GALLERY_THUMBNAIL_IMAGE] = ImageGalleryHelper.GetImageData(DBProxy, SessionProvider, galleryItem[ImageProcessor.GALLERY_THUMBNAIL].ToString())[0];
            }
        }
Example #11
0
        public JObject AddImage()
        {
            try
            {
                var galleryId = HttpProxy.GetQueryString(ImageProcessor.GALLERY_ID);
                var user      = SessionProvider.GetValue <UserModel>(CommonConst.CommonValue.SESSION_USER_KEY);


                if (string.IsNullOrEmpty(galleryId))
                {
                    return(ResponseBuilder.CreateReponse(CommonConst._400_BAD_REQUEST));
                }
                if (!ImageGalleryHelper.IsOwner(DBProxy, SessionProvider, galleryId))
                {
                    return(ResponseBuilder.CreateReponse(CommonConst._401_UNAUTHORIZED));
                }
                Logger.Debug(string.Format("File Count {0}", _fileUploader.GetFiles().Count));
                if (_fileUploader.GetFiles().Count > 0)
                {
                    JArray fileHashs = new JArray();
                    foreach (var fileName  in _fileUploader.GetFiles())
                    {
                        fileHashs.Add(UploadFile(galleryId, user, fileName, KeyValueStorage));
                    }
                    JObject responseData = new JObject();
                    responseData[ImageProcessor.FILE_HASHS] = fileHashs;
                    return(ResponseBuilder.CreateReponse(CommonConst._1_SUCCESS, responseData));
                }
                else
                {
                    Logger.Error("no File found");
                    return(ResponseBuilder.CreateReponse(CommonConst._400_BAD_REQUEST));
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message, ex);
                return(ResponseBuilder.CreateReponse(CommonConst._500_SERVER_ERROR));
            }
        }
Example #12
0
        private JObject GetFileInfo(string fileHash)
        {
            var galleryId = HttpProxy.GetQueryString(ImageProcessor.GALLERY_ID);

            if (string.IsNullOrEmpty(galleryId))
            {
                return(ResponseBuilder.CreateReponse(CommonConst._400_BAD_REQUEST));
            }
            var galleryImages = GetGalleryImages(galleryId);

            if (galleryImages[CommonConst.CommonField.HTTP_RESPONE_CODE].ToString() != "1")
            {
                return(ResponseBuilder.CreateReponse(CommonConst._401_UNAUTHORIZED));
            }

            var data = ImageGalleryHelper.GetImageData(DBProxy, SessionProvider, fileHash, new List <string> {
                ImageProcessor.METADATA, ImageProcessor.TAGS, ImageProcessor.FILE_PATHS
            });

            if (data.Count == 0)
            {
                return(ResponseBuilder.CreateReponse(CommonConst._404_RESOURCE_NOT_FOUND));
            }
            else
            {
                AddToUserView(galleryId, fileHash);
                //JArray files = galleryImages[CommonConst.CommonField.DATA][ImageProcessor.IMAGES] as JArray;
                //data[0][ImageProcessor.RELATED_FILES] = new JArray();
                //for (int i = 0; i < 10 && i < files.Count; i++)
                //{
                //    (data[0][ImageProcessor.RELATED_FILES] as JArray).Add(files[GetRandomNumberInRange(1, (files.Count - 1))]);
                //}

                return(ResponseBuilder.CreateReponse(CommonConst._1_SUCCESS, data[0]));
            }
        }
Example #13
0
        public JObject Rotate()
        {
            try
            {
                var fileHash  = HttpProxy.GetQueryString(ImageProcessor.FILE_HASH);
                var galleryId = HttpProxy.GetQueryString(ImageProcessor.GALLERY_ID);

                if (string.IsNullOrEmpty(fileHash) || string.IsNullOrEmpty(galleryId))
                {
                    return(ResponseBuilder.CreateReponse(CommonConst._400_BAD_REQUEST));
                }

                if (!ImageGalleryHelper.IsOwner(DBProxy, SessionProvider, galleryId))
                {
                    return(ResponseBuilder.CreateReponse(CommonConst._401_UNAUTHORIZED));
                }

                var fileData = ImageGalleryHelper.GetImage(DBProxy, fileHash);

                if (fileHash == null)
                {
                    Logger.Error(string.Format("File not found ::{0}", fileHash));
                    return(ResponseBuilder.CreateReponse(CommonConst._500_SERVER_ERROR));
                }


                var path           = string.Empty;
                var baseFolderPath = AppSettingService.GetAppSettingData("my_photo_path");
                if (string.IsNullOrEmpty(baseFolderPath))
                {
                    throw new KeyNotFoundException("my_photo_path");
                }
                if (fileData[ImageProcessor.FILE_PATHS] == null)
                {
                    throw new KeyNotFoundException(ImageProcessor.FILE_PATHS);
                }

                Logger.Debug(string.Format("Getting file info BasePath  : {0}", baseFolderPath));
                foreach (var item in fileData[ImageProcessor.FILE_PATHS])
                {
                    if (File.Exists(string.Concat(baseFolderPath, "\\", item.ToString())))
                    {
                        path = string.Concat(baseFolderPath, "\\", item.ToString());
                        break;
                    }
                }
                if (!File.Exists(path))
                {
                    throw new FileNotFoundException(path);
                }

                var changesetNo = 0;
                if (fileData[ImageProcessor.CHANGESET_NO] != null)
                {
                    Logger.Debug(string.Format("changesetNo value from  fileData {0}", fileData[ImageProcessor.CHANGESET_NO].ToString()));
                    int.TryParse(fileData[ImageProcessor.CHANGESET_NO].ToString(), out changesetNo);
                }
                else
                {
                    Logger.Debug(string.Format("changesetNo is null in fileData"));
                }

                Logger.Debug(string.Format("Image  file path info BasePath  : {0} File Name :{1}", baseFolderPath, path));

                using (var image = ImageGalleryHelper.GetImageBitmapFromFile(path))
                {
                    Logger.Debug(string.Format("Processing Image BasePath  : {0} File Name :{1}", baseFolderPath, path));

                    int rotate = 90;
                    if (fileData[ImageProcessor.IMAGE_ROTATE] != null && int.TryParse(fileData[ImageProcessor.IMAGE_ROTATE].ToString(), out rotate))
                    {
                        rotate += 90;
                        if (rotate >= 360)
                        {
                            rotate = 0;
                        }
                    }
                    switch (rotate)
                    {
                    case 90:
                        ImageGalleryHelper.ProcessImage(fileData, image, KeyValueStorage, RotateFlipType.Rotate90FlipNone);
                        Logger.Debug(string.Format("Rotate image to {0}. {1}", rotate, RotateFlipType.Rotate90FlipNone.ToString()));
                        break;

                    case 180:
                        ImageGalleryHelper.ProcessImage(fileData, image, KeyValueStorage, RotateFlipType.Rotate180FlipNone);
                        Logger.Debug(string.Format("Rotate image to {0}. {1}", rotate, RotateFlipType.Rotate180FlipNone.ToString()));
                        break;

                    case 270:
                        ImageGalleryHelper.ProcessImage(fileData, image, KeyValueStorage, RotateFlipType.Rotate270FlipNone);
                        Logger.Debug(string.Format("Rotate image to {0}. {1}", rotate, RotateFlipType.Rotate270FlipNone.ToString()));
                        break;

                    default:
                        ImageGalleryHelper.ProcessImage(fileData, image, KeyValueStorage, RotateFlipType.RotateNoneFlipNone);
                        Logger.Debug(string.Format("Rotate image to {0}. {1}", rotate, RotateFlipType.RotateNoneFlipNone.ToString()));
                        break;
                    }

                    fileData[ImageProcessor.IMAGE_ROTATE] = rotate;
                }

                Logger.Debug(string.Format("changesetNo : {0}. FileHash: {1}", changesetNo, fileHash));

                fileData[ImageProcessor.CHANGESET_NO] = (changesetNo + 1);

                JObject filter = new JObject();
                filter[ImageProcessor.FILE_HASH] = fileHash;
                DBProxy.Update(ImageProcessor.MYPHOTO_COLLECTION, filter.ToString(), fileData, true, MergeArrayHandling.Replace);

                fileData.Remove(ImageProcessor.IMAGE_L_BASE64);
                fileData.Remove(ImageProcessor.IMAGE_M_BASE64);
                fileData.Remove(ImageProcessor.IMAGE_S_BASE64);

                return(ResponseBuilder.CreateReponse(CommonConst._1_SUCCESS, fileData));
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message, ex);
                return(ResponseBuilder.CreateReponse(CommonConst._500_SERVER_ERROR));
            }
        }
Example #14
0
        private JObject GetAllGalleries()
        {
            string filterKey = "filter";
            var    user      = SessionProvider.GetValue <UserModel>(CommonConst.CommonValue.SESSION_USER_KEY);
            var    userId    = HttpProxy.GetQueryString(CommonConst.CommonField.USER_ID);

            if (_paramContainer.GetKey(CommonConst.CommonField.USER_ID) != null)
            {
                userId = (string)_paramContainer.GetKey(CommonConst.CommonField.USER_ID);
            }
            if (!string.IsNullOrEmpty(userId) && user != null && userId != user.user_id)
            {
                return(ResponseBuilder.CreateReponse(CommonConst._401_UNAUTHORIZED));
            }

            int    pagesize    = 100;
            int    currentpage = 1;
            string filter      = "{}";

            if (!string.IsNullOrEmpty(HttpProxy.GetQueryString(CommonConst.CommonField.PAGE_SIZE_KEY)))
            {
                int.TryParse(HttpProxy.GetQueryString(CommonConst.CommonField.PAGE_SIZE_KEY), out pagesize);
            }

            if (!string.IsNullOrEmpty(HttpProxy.GetQueryString(CommonConst.CommonField.CURRENT_PAGE_KEY)))
            {
                int.TryParse(HttpProxy.GetQueryString(CommonConst.CommonField.CURRENT_PAGE_KEY), out currentpage);
            }

            if (!string.IsNullOrEmpty(HttpProxy.GetQueryString(filterKey)))
            {
                var filterValue = HttpProxy.GetQueryString(filterKey);
                filter = "{display_name:{'$regex' : '" + filterValue + "', '$options' : 'i'}}";
                Logger.Debug(filter);
            }


            //var sort = new Dictionary<string, int>();
            //sort[CommonConst.CommonField.NAME] = 1;
            //sort[CommonConst.CommonField.ID] = 1;

            var response = GetPagedData(ImageProcessor.MYPHOTO_GALLERY_COLLECTION, filter, new List <string> {
                CommonConst.CommonField.DISPLAY_ID, ImageProcessor.DISPLAY_NAME, ImageProcessor.DESCRIPTION, CommonConst.CommonField.NAME, ImageProcessor.FILES_COUNT, ImageProcessor.GALLERY_THUMBNAIL, ImageProcessor.AUTH_USERS, ImageProcessor.OWNER
            }, null, pagesize, currentpage);

            List <JToken> filterData = new List <JToken>();

            foreach (var item in response[CommonConst.CommonField.DATA])
            {
                if (string.IsNullOrEmpty(userId))
                {
                    ImageGalleryHelper.AddDefaultOwner(item);
                    if (!ImageGalleryHelper.IsValidaUser(item, SessionProvider))
                    {
                        filterData.Add(item);
                    }
                    else
                    {
                        if (item[ImageProcessor.OWNER] == null)
                        {
                            item[ImageProcessor.OWNER] = ImageProcessor.DEFAULT_OWNER;
                        }
                        AddGalleryThumbnailImage(item);
                    }
                }
                else
                {
                    if (item[ImageProcessor.OWNER] != null && item[ImageProcessor.OWNER].ToString() == userId)
                    {
                        AddGalleryThumbnailImage(item);
                    }
                    else
                    {
                        filterData.Add(item);
                    }
                }
            }

            foreach (var item in filterData)
            {
                (response[CommonConst.CommonField.DATA] as JArray).Remove(item);
            }
            return(response);
        }