예제 #1
0
        public ActionResult DeleteFileManagerGridItem(List <String> values)
        {
            try
            {
                List <String> googleIdList = new List <string>();
                List <int>    idList       = new List <int>();
                foreach (var value in values)
                {
                    String googleId = value.Split("-".ToCharArray())[0];
                    String id       = value.Split("-".ToCharArray())[1];

                    googleIdList.Add(googleId);
                    idList.Add(id.ToInt());
                }
                var item = FileManagerRepository.GetSingle(idList.FirstOrDefault());
                ConnectToStoreGoogleDrive(item.StoreId);

                foreach (String v in values)
                {
                    string googledriveFileId = v;
                    Task.Run(() => DeleteFile(googledriveFileId));
                    Thread.Sleep(50);
                }
            }
            catch (DbEntityValidationException ex)
            {
                var message = GetDbEntityValidationExceptionDetail(ex);
                Logger.Error(ex, "DbEntityValidationException:" + message);
            }
            catch (Exception exception)
            {
                Logger.Error(exception, "DeleteFileManagerGridItem :" + exception.StackTrace, String.Join(",", values));
            }
            return(Json(values, JsonRequestBehavior.AllowGet));
        }
        private void DeleteFile(string id)
        {
            var f = new FileManager();

            if (id.ToInt() > 0)
            {
                f = FileManagerRepository.GetSingle(id.ToInt());
            }
            else
            {
                f = FileManagerRepository.GetFilesByGoogleImageId(id);
            }


            var filename = f.Title;

            try
            {
                ConnectToStoreGoogleDrive(SessionStoreId);
                this.UploadHelper.deleteFile(f.GoogleImageId);
            }
            catch (Exception ewx)
            {
                Logger.Error(ewx, "Exception is occured." + ewx.StackTrace);
            }

            FileManagerRepository.Delete(f);
            FileManagerRepository.Save();
        }
예제 #3
0
        public ActionResult ChangeFileManagerGridOrderingOrState(List <OrderingItem> values, String checkbox = "")
        {
            try
            {
                foreach (OrderingItem item in values)
                {
                    var content = FileManagerRepository.GetSingle(item.Id);
                    if (String.IsNullOrEmpty(checkbox))
                    {
                        content.Ordering = item.Ordering;
                    }
                    else if (checkbox.Equals("state", StringComparison.InvariantCultureIgnoreCase))
                    {
                        content.State = item.State;
                    }
                    else if (checkbox.Equals("Carousel", StringComparison.InvariantCultureIgnoreCase))
                    {
                        content.IsCarousel = item.State;
                    }

                    FileManagerRepository.Edit(content);
                }
                FileManagerRepository.Save();
            }
            catch (Exception exception)
            {
                Logger.Error(exception, "ChangeFileManagerGridOrderingOrState :" + exception.StackTrace, String.Join(",", values));
            }
            return(Json(new { values, checkbox }, JsonRequestBehavior.AllowGet));
        }
예제 #4
0
        /// <summary>
        /// Reference this in HTML as <img src="/Photo/WatermarkedImage/{ID}" />
        /// Simplistic example supporting only jpeg images.
        /// </summary>
        /// <param name="ID">Photo ID</param>
        public ActionResult WatermarkedImage(int id)
        {
            // Attempt to fetch the photo record from the database using Entity Framework 4.2.
            var file = FileManagerRepository.GetSingle(id);

            if (file != null) // Found the indicated photo record.
            {
                var dic = new Dictionary <String, String>();
                // Create WebImage from photo data.
                // Should have 'using System.Web.Helpers' but just to make it clear...
                String url       = String.Format("https://docs.google.com/uc?id={0}", file.GoogleImageId);
                byte[] imageData = GeneralHelper.GetImageFromUrlFromCache(url, dic);
                var    wi        = new System.Web.Helpers.WebImage(imageData);

                // Apply the watermark.
                wi.AddTextWatermark("EMIN YUCE");

                // Extract byte array.
                var image = wi.GetBytes("image/jpeg");

                // Return byte array as jpeg.
                return(File(image, "image/jpeg"));
            }
            else // Did not find a record with passed ID.
            {
                return(null); // 'Missing image' icon will display on browser.
            }
        }
예제 #5
0
        public void GetProductCategoriesByStoreIdFromCache2()
        {
            FileManagerRepository ssss = new FileManagerRepository(dbContext);
            var m = ssss.GetFilesByGoogleImageIdArray(new string[] { "0B9lWnliAZuUdaFRwZmVLZXRYWE0", "0B9lWnliAZuUdb1RaamRITnhkbXc", "0B9lWnliAZuUdNHlKdTVaRzg3OWM" });



            Assert.IsNotNull(m);
        }
        public ActionResult DisplayImages(int storeId = 1, String search = "")
        {
            storeId       = GetStoreId(storeId);
            ViewBag.Store = StoreRepository.GetSingle(storeId);
            var images = FileManagerRepository.GetFilesBySearchKey(storeId, search);



            return(View(images));
        }
예제 #7
0
        public async Task <ActionResult> Index3()
        {
            int?categoryId = null;

            String ConnectionString = "Stores";

            var rep  = new ProductRepository(new StoreContext(ConnectionString));
            var rep2 = new ContentRepository(new StoreContext(ConnectionString));
            var rep3 = new PageDesignRepository(new StoreContext(ConnectionString));
            var rep4 = new ProductCategoryRepository(new StoreContext(ConnectionString));
            var rep5 = new CategoryRepository(new StoreContext(ConnectionString));
            var rep6 = new FileManagerRepository(new StoreContext(ConnectionString));



            var productsTask          = rep.GetProductsByBrandAsync(StoreId, 5, 100, null);
            var pageDesignTask        = rep3.GetPageDesignByName(StoreId, "HomePage");
            var blogsTask             = rep2.GetMainPageContentsAsync(StoreId, categoryId, StoreConstants.BlogsType, 5);
            var newsTask              = rep2.GetMainPageContentsAsync(StoreId, categoryId, StoreConstants.NewsType, 5);
            var productCategoriesTask = rep4.GetProductCategoriesByStoreIdAsync(StoreId, StoreConstants.ProductType, true);
            var categoriesTask        = rep5.GetCategoriesByStoreIdAsync(StoreId, StoreConstants.NewsType, true);
            var sliderTask            = rep6.GetStoreCarouselsAsync(StoreId, 58);



            //IProductService rep = ProductService;
            //IContentService rep2 = ContentService;
            //IPageDesignService rep3 = PageDesignService;
            //IProductCategoryService rep4 = ProductCategoryService;
            //ICategoryService rep5 = CategoryService;
            //IFileManagerService rep6 = FileManagerService;

            await Task.WhenAll(productsTask, blogsTask, newsTask, pageDesignTask, sliderTask, categoriesTask,
                               productCategoriesTask);

            HomePageHelper.StoreId       = this.StoreId;
            HomePageHelper.StoreSettings = GetStoreSettings();

            var products          = productsTask.Result;
            var blogs             = blogsTask.Result;
            var news              = newsTask.Result;
            var pageDesing        = pageDesignTask.Result;
            var sliderImages      = sliderTask.Result;
            var categories        = categoriesTask.Result;
            var productCategories = productCategoriesTask.Result;

            StoreLiquidResult liquidResult = HomePageHelper.GetHomePageDesign(pageDesing, sliderImages, products, blogs,
                                                                              news, categories, productCategories);

            liquidResult.MyStore = this.MyStore;


            return(View(liquidResult));
        }
예제 #8
0
        public PhotosViewModel GetPhotos(int page)
        {
            var resultModel = new PhotosViewModel();

            resultModel.SStore = this.MyStore;
            var m = FileManagerRepository.GetImagesByStoreId(MyStore.Id, page, 24);

            resultModel.SFileManagers = new PagedList <FileManager>(m.items, m.page - 1, m.pageSize, m.totalItemCount);
            resultModel.SNavigations  = NavigationRepository.GetStoreActiveNavigations(this.MyStore.Id);
            resultModel.SSettings     = this.GetStoreSettings();
            return(resultModel);
        }
예제 #9
0
        public void Thumbnail(int id, int storeId, int width = 60, int height = 60)
        {
            var dic = new Dictionary <String, String>();
            // Loading photos’ info from database for specific image...
            var file = FileManagerRepository.GetFilesByStoreIdFromCache(storeId).FirstOrDefault(r => r.Id == id);


            String url = String.Format("https://docs.google.com/uc?id={0}", file.GoogleImageId);

            byte[] imageData = GeneralHelper.GetImageFromUrlFromCache(url, dic);

            new WebImage(imageData)
            .Resize(width, height, false, true) // Resizing the image to 100x100 px on the fly...
            .Crop(1, 1)                         // Cropping it to remove 1px border at top and left sides (bug in WebImage)
            .Write();
        }
예제 #10
0
        public ActionResult GetImagesByLabels(int storeId, String[] labels, String entityType, int id)
        {
            var images = FileManagerRepository.GetFilesByStoreIdAndLabels(storeId, labels);
            var list   = new List <FileManager>();

            if (entityType.Equals(StoreConstants.ProductType, StringComparison.InvariantCultureIgnoreCase))
            {
                var productFiles = ProductFileRepository.GetProductFilesByProductId(id);
                list.AddRange(images.Where(r => !productFiles.Select(r1 => r1.FileManagerId).Contains(r.Id)));
            }
            else if (entityType.Equals(StoreConstants.BlogsType, StringComparison.InvariantCultureIgnoreCase) || entityType.Equals(StoreConstants.NewsType, StringComparison.InvariantCultureIgnoreCase))
            {
                var contentFiles = ContentFileRepository.GetContentFilesByContentId(id);
                list.AddRange(images.Where(r => !contentFiles.Select(r1 => r1.FileManagerId).Contains(r.Id)));
            }

            return(Json(list, JsonRequestBehavior.AllowGet));
        }
예제 #11
0
 private void DeleteFileFromDb(string fileStatus, List <FileManager> files)
 {
     try
     {
         if (files.Count > 0)
         {
             foreach (var fileManager in files)
             {
                 FileManagerRepository.Delete(fileManager);
             }
             FileManagerRepository.Save();
             Logger.Info(String.Format("Deleted " + fileStatus + " files:" + files.Count));
         }
     }
     catch (Exception ex)
     {
         Logger.Error(ex, "DeleteFiles From Db:" + ex.Message, fileStatus);
     }
 }
예제 #12
0
        private void DeleteFile(string googledriveFileId)
        {
            String id = "";

            try
            {
                String googleId = googledriveFileId.Split("-".ToCharArray())[0];
                id = googledriveFileId.Split("-".ToCharArray())[1];

                if (!String.IsNullOrEmpty(googleId))
                {
                    try
                    {
                        UploadHelper.deleteFile(googleId);
                    }
                    catch (Exception ex)
                    {
                        Logger.Error(ex, String.Format("GoogleId={0} file could not deleted from google drive", googledriveFileId) + " " + ex.StackTrace, googledriveFileId);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex, String.Format("GoogleId={0} could not deleted from DB.", googledriveFileId) + " " + ex.StackTrace, googledriveFileId);
            }

            try
            {
                var item = FileManagerRepository.GetSingle(id.ToInt());
                FileManagerRepository.Delete(item);
                FileManagerRepository.Save();
            }
            catch (DbEntityValidationException ex)
            {
                var message = GetDbEntityValidationExceptionDetail(ex);
                Logger.Error(ex, "DbEntityValidationException:" + message);
            }
            catch (Exception ex)
            {
                Logger.Error(ex, String.Format("GoogleId={0} could not deleted from DB.", googledriveFileId) + ex.StackTrace, googledriveFileId);
            }
        }
예제 #13
0
        public ActionResult ChangeIsCarouselState(int fileId = 0, bool isCarousel = false)
        {
            try
            {
                var s = FileManagerRepository.GetSingle(fileId);
                s.IsCarousel = isCarousel;
                FileManagerRepository.Edit(s);
                FileManagerRepository.Save();
            }
            catch (DbEntityValidationException ex)
            {
                var message = GetDbEntityValidationExceptionDetail(ex);
                Logger.Error(ex, "DbEntityValidationException:" + message);
            }
            catch (Exception exception)
            {
                Logger.Error(exception, "ChangeIsCarouselState  fileId" + fileId + " isCarousel:" + isCarousel + " " + exception.StackTrace, fileId, isCarousel);
            }

            return(Json(new { fileId, isCarousel }, JsonRequestBehavior.AllowGet));
        }
예제 #14
0
        private void DeleteFiles(string fileStatus)
        {
            var errorFiles = FileManagerRepository.GetFilesByFileStatus(fileStatus);
            var stores     = errorFiles.GroupBy(r => r.StoreId);
            var errorList  = new List <int>();

            foreach (var store in stores)
            {
                try
                {
                    int storeId = store.Key;
                    ConnectGoogleDrive(storeId);
                    errorList.AddRange(DeleteGoogleDriveFiles(errorFiles));
                }
                catch (Exception ex)
                {
                    Logger.Error(ex, "ConnectGoogleDrive:DeleteFiles:" + ex.Message, fileStatus);
                }
            }

            errorFiles = errorFiles.Where(r => !errorList.Contains(r.Id)).ToList();
            DeleteFileFromDb(fileStatus, errorFiles);
        }
        private FileManager SaveFiles(HttpPostedFileBase file, int storeId = 1)
        {
            var fileManager = ConvertToFileManager(file, storeId);

            try
            {
                var imageBype = ImageHelper.CreateGoogleImage(file);
                ConnectToStoreGoogleDrive(SessionStoreId);
                var googleFile = this.UploadHelper.InsertFile(file.FileName, "File Desc", imageBype);
                ConvertToFileManager(fileManager, googleFile);
                fileManager.FileStatus = "Success";
            }
            catch (Exception ewx)
            {
                Logger.Error(ewx, "this.UploadHelper.InsertFile Exception is occured." + ewx.StackTrace, storeId);
                fileManager.FileStatus = "Error";
            }

            FileManagerRepository.Add(fileManager);
            FileManagerRepository.Save();

            return(fileManager);
        }
예제 #16
0
        public StoreHomePage GetHomePage()
        {
            int           page        = 1;
            StoreHomePage resultModel = new StoreHomePage();

            resultModel.SStore             = MyStore;
            resultModel.SCarouselImages    = FileManagerRepository.GetStoreCarousels(MyStore.Id);
            resultModel.SProductCategories = ProductCategoryRepository.GetProductCategoriesByStoreId(MyStore.Id);
            var products = ProductRepository.GetProductsCategoryId(MyStore.Id, null, StoreConstants.ProductType, true, page, 24);

            resultModel.SProducts = new PagedList <Product>(products.items, products.page - 1, products.pageSize, products.totalItemCount);
            var contents = ContentRepository.GetContentsCategoryId(MyStore.Id, null, StoreConstants.NewsType, true, page, 24);

            resultModel.SNews            = new PagedList <Content>(contents.items, contents.page - 1, contents.pageSize, contents.totalItemCount);
            contents                     = ContentRepository.GetContentsCategoryId(MyStore.Id, null, StoreConstants.BlogsType, true, page, 24);
            resultModel.SBlogs           = new PagedList <Content>(contents.items, contents.page - 1, contents.pageSize, contents.totalItemCount);
            resultModel.SBlogsCategories = CategoryRepository.GetCategoriesByStoreId(MyStore.Id, StoreConstants.BlogsType, true);
            resultModel.SNewsCategories  = CategoryRepository.GetCategoriesByStoreId(MyStore.Id, StoreConstants.NewsType, true);
            resultModel.SNavigations     = NavigationRepository.GetStoreActiveNavigations(this.MyStore.Id);
            resultModel.SSettings        = this.GetStoreSettings();


            return(resultModel);
        }
예제 #17
0
 public List <FileManager> GetImagesByStoreId(int storeId, bool?isActive)
 {
     return(FileManagerRepository.GetImagesByStoreId(storeId, isActive));
 }
예제 #18
0
 public async Task <List <FileManager> > GetImagesByStoreIdAsync(int storeId, bool?isActive)
 {
     return(await FileManagerRepository.GetImagesByStoreIdAsync(storeId, isActive));
 }
예제 #19
0
 public StorePagedList <FileManager> GetImagesByStoreId(int storeId, int page, int pageSize)
 {
     return(FileManagerRepository.GetImagesByStoreId(storeId, page, pageSize));
 }
예제 #20
0
 public List <FileManager> GetStoreCarousels(int storeId)
 {
     return(FileManagerRepository.GetStoreCarousels(storeId));
 }
예제 #21
0
 public FileManager GetFilesById(int id)
 {
     return(FileManagerRepository.GetSingle(id));
 }
예제 #22
0
 public FileManager GetFilesByGoogleImageId(string googleImageId)
 {
     return(FileManagerRepository.GetFilesByGoogleImageId(googleImageId));
 }
예제 #23
0
 public List <FileManager> GetFilesByStoreId(int storeId)
 {
     return(FileManagerRepository.GetFilesByStoreId(storeId));
 }
예제 #24
0
 public async Task <List <FileManager> > GetStoreCarouselsAsync(int storeId, int?take)
 {
     return(await FileManagerRepository.GetStoreCarouselsAsync(storeId, take));
 }
예제 #25
0
 public async Task <StorePagedList <FileManager> > GetImagesByFileSizeAsync(int storeId, string imageSourceType, string fileSizes, int page, int pageSize)
 {
     return(await FileManagerRepository.GetImagesByFileSizeAsync(storeId, imageSourceType, fileSizes, page, pageSize));
 }
예제 #26
0
        public ActionResult SearchAutoComplete(String term, String action, String controller, int id = 0)
        {
            String searchKey = term;
            var    list      = new List <String>();

            if (action.Equals("Index", StringComparison.InvariantCultureIgnoreCase) &&
                controller.Equals("PageDesigns", StringComparison.InvariantCultureIgnoreCase))
            {
                int storePageDesignId = id;
                list = PageDesignRepository.GetPageDesignByStoreId(storePageDesignId, searchKey).Select(r => r.Name).ToList();
                return(Json(list, JsonRequestBehavior.AllowGet));
            }

            int storeId = GetStoreId(id);

            if (action.Equals("Index", StringComparison.InvariantCultureIgnoreCase) &&
                controller.Equals("Products", StringComparison.InvariantCultureIgnoreCase))
            {
                list = ProductRepository.GetProductByTypeAndCategoryId(storeId, StoreConstants.ProductType, 0, searchKey, null).Select(r => r.Name).ToList();
            }
            else if (action.Equals("Index", StringComparison.InvariantCultureIgnoreCase) &&
                     controller.Equals("News", StringComparison.InvariantCultureIgnoreCase))
            {
                list = ContentRepository.GetContentsByStoreId(storeId, searchKey, StoreConstants.NewsType).Select(r => r.Name).ToList();
            }
            else if (action.Equals("Index", StringComparison.InvariantCultureIgnoreCase) &&
                     controller.Equals("Blogs", StringComparison.InvariantCultureIgnoreCase))
            {
                list = ContentRepository.GetContentsByStoreId(storeId, searchKey, StoreConstants.BlogsType).Select(r => r.Name).ToList();
            }
            else if (action.Equals("Index", StringComparison.InvariantCultureIgnoreCase) &&
                     controller.Equals("Navigations", StringComparison.InvariantCultureIgnoreCase))
            {
                list = NavigationRepository.GetNavigationsByStoreId(storeId, searchKey).Select(r => r.Name).ToList();
            }
            else if (action.Equals("Index", StringComparison.InvariantCultureIgnoreCase) &&
                     controller.Equals("Stores", StringComparison.InvariantCultureIgnoreCase))
            {
                list = StoreRepository.GetStoresByStoreId(searchKey).Select(r => r.Name).ToList();
            }
            else if (action.Equals("Index", StringComparison.InvariantCultureIgnoreCase) &&
                     controller.Equals("Labels", StringComparison.InvariantCultureIgnoreCase))
            {
                list = LabelRepository.GetLabelsByStoreId(storeId, searchKey).Select(r => r.Name).ToList();
            }
            else if (action.Equals("Index", StringComparison.InvariantCultureIgnoreCase) &&
                     controller.Equals("EmailLists", StringComparison.InvariantCultureIgnoreCase))
            {
                list = EmailListRepository.GetStoreEmailList(storeId, searchKey).Select(r => r.Email).ToList();
            }
            else if (action.Equals("Index", StringComparison.InvariantCultureIgnoreCase) &&
                     controller.Equals("Contacts", StringComparison.InvariantCultureIgnoreCase))
            {
                list = ContactRepository.GetContactsByStoreId(storeId, searchKey).Select(r => r.Name).ToList();
            }
            else if (action.Equals("Index", StringComparison.InvariantCultureIgnoreCase) &&
                     controller.Equals("Locations", StringComparison.InvariantCultureIgnoreCase))
            {
                list = LocationRepository.GetLocationsByStoreId(storeId, searchKey).Select(r => r.Address).ToList();
            }
            else if (action.Equals("Index", StringComparison.InvariantCultureIgnoreCase) &&
                     controller.Equals("Brands", StringComparison.InvariantCultureIgnoreCase))
            {
                list = BrandRepository.GetBrandsByStoreId(storeId, searchKey).Select(r => r.Name).ToList();
            }
            else if (action.Equals("Index", StringComparison.InvariantCultureIgnoreCase) &&
                     controller.Equals("ProductCategories", StringComparison.InvariantCultureIgnoreCase))
            {
                list = ProductCategoryRepository.GetProductCategoriesByStoreId(storeId, StoreConstants.ProductType, searchKey).Select(r => r.Name).ToList();
            }
            else if (action.Equals("Index", StringComparison.InvariantCultureIgnoreCase) &&
                     controller.Equals("BlogsCategories", StringComparison.InvariantCultureIgnoreCase))
            {
                list = CategoryRepository.GetCategoriesByStoreId(storeId, StoreConstants.BlogsType, searchKey).Select(r => r.Name).ToList();
            }
            else if (action.Equals("Index", StringComparison.InvariantCultureIgnoreCase) &&
                     controller.Equals("NewsCategories", StringComparison.InvariantCultureIgnoreCase))
            {
                list = CategoryRepository.GetCategoriesByStoreId(storeId, StoreConstants.NewsType, searchKey).Select(r => r.Name).ToList();
            }
            else if (action.Equals("Index", StringComparison.InvariantCultureIgnoreCase) &&
                     controller.Equals("StoreCategories", StringComparison.InvariantCultureIgnoreCase))
            {
                list = CategoryRepository.GetCategoriesByStoreId(0, StoreConstants.StoreType, searchKey).Select(r => r.Name).ToList();
            }
            else if (action.Equals("DisplayImages", StringComparison.InvariantCultureIgnoreCase) &&
                     controller.Equals("FileManager", StringComparison.InvariantCultureIgnoreCase))
            {
                list = FileManagerRepository.GetFilesBySearchKey(storeId, searchKey).Select(r => r.OriginalFilename).ToList();
            }
            else if (action.Equals("Settings", StringComparison.InvariantCultureIgnoreCase) &&
                     controller.Equals("Stores", StringComparison.InvariantCultureIgnoreCase))
            {
                list = SettingRepository.GetStoreSettingsByType(storeId, "", searchKey).Select(r => String.Format("{0}", r.SettingKey)).ToList();
            }
            else if (action.Equals("Index", StringComparison.InvariantCultureIgnoreCase) &&
                     controller.Equals("StoreLanguages", StringComparison.InvariantCultureIgnoreCase))
            {
                list = StoreLanguageRepository.GetStoreLanguages(storeId, searchKey).Select(r => String.Format("{0}", r.Name)).ToList();
            }
            else if (action.Equals("Index", StringComparison.InvariantCultureIgnoreCase) &&
                     controller.Equals("Activities", StringComparison.InvariantCultureIgnoreCase))
            {
                list = ActivityRepository.GetActivitiesByStoreId(storeId, searchKey).Select(r => String.Format("{0}", r.Name)).ToList();
            }


            return(Json(list, JsonRequestBehavior.AllowGet));
        }
예제 #27
0
        public ActionResult GetImages(int storeId)
        {
            var images = FileManagerRepository.GetFilesByStoreId(storeId);

            return(Json(images, JsonRequestBehavior.AllowGet));
        }
        public ActionResult Download(string id)
        {
            var f = FileManagerRepository.GetFilesByGoogleImageId(id);

            return(RedirectToAction("Index"));
        }