예제 #1
0
        public ActionResult UploadHomeItem(UploadItemViewModel uploadItem, HttpPostedFileBase file)
        {
            string uploadType = "";
            string fileType   = "";

            byte[] doc = null;

            switch (uploadItem.UploadType)
            {
            case "Upload_File":
                uploadType = "File";
                break;

            case "Upload_Website":
                uploadType = "Url";
                break;

            case "Upload_RIC_Chart":
                uploadType = "Chart";
                break;

            case "Upload_RIC_Quote":
                uploadType = "Quote";
                break;

            case "Upload_RIC_QuoteList":
                uploadType = "QuoteList";
                break;

            case "Upload_RIC_News":
                uploadType = "News";
                break;

            case "Upload_RMLink":
                uploadType = "Rmlink";
                break;
            }

            if (file != null && file.ContentLength > 0)
            {
                var index = file.FileName.LastIndexOf(".");
                fileType = file.FileName.Substring(index + 1);
                doc      = new byte[file.ContentLength];
                file.InputStream.Read(doc, 0, file.ContentLength);
            }
            int id = uploadItem.Id == null ? 0 : Convert.ToInt32(uploadItem.Id);

            CmaRepository.UploadFile(id, uploadItem.Module, uploadItem.TitleCn, uploadItem.TitleEn,
                                     uploadItem.DescriptionCn, uploadItem.DescriptionEn, uploadType, uploadItem.UploadTypeValue, uploadItem.TypeParam, uploadItem.IsVisible, uploadItem.Submiter, DateTime.Parse(uploadItem.SubmitDate), fileType, doc);

            return(RedirectToAction("HomeItemList"));
        }
예제 #2
0
        public ActionResult HomeItemEditor(string ID)
        {
            CultureHelper.UpdateCultureCookie(Response);
            ThemeHelper.UpdateLocalThemeCookie(Request, Response);

            var uploadItem = new UploadItemViewModel();

            var modules          = CmaRepository.GetHomeModules();
            var selectedModuleId = modules.FirstOrDefault().ID;
            var moduleItems      = new List <SelectListItem>();


            uploadItem.UploadType      = Resources.IPP.IPP_File;
            uploadItem.UploadTypeItems = HtmlUtil.CookSelectOptions("Home_UploadType");
            uploadItem.SubmitDate      = DateTime.Now.ToString("yyyy-MM-dd");
            uploadItem.IsVisible       = true;
            if (!string.IsNullOrEmpty(ID))
            {
                DataTable dt = CmaRepository.GetItemFile(ID);
                uploadItem.Id = Convert.ToInt32(dt.Rows[0]["ID"]);
                switch (dt.Rows[0]["TYPE"].ToString())
                {
                case "File":
                    uploadItem.UploadType = "Upload_File";
                    uploadItem.FileName   = Resources.Global.DownloadFileName + "." + dt.Rows[0]["FILETYPE"];
                    break;

                case "Url":
                    uploadItem.UploadType = "Upload_Website";
                    uploadItem.Url        = dt.Rows[0]["TYPEVALUE"].ToString();
                    break;

                case "Chart":
                    uploadItem.UploadType = "Upload_RIC_Chart";
                    uploadItem.Ric        = dt.Rows[0]["TYPEVALUE"].ToString();
                    break;

                case "Quote":
                    uploadItem.UploadType = "Upload_RIC_Quote";
                    uploadItem.Ric        = dt.Rows[0]["TYPEVALUE"].ToString();
                    break;

                case "QuoteList":
                    uploadItem.UploadType = "Upload_RIC_QuoteList";
                    uploadItem.Ric        = dt.Rows[0]["TYPEVALUE"].ToString();
                    break;

                case "News":
                    uploadItem.UploadType = "Upload_RIC_News";
                    uploadItem.Ric        = dt.Rows[0]["TYPEVALUE"].ToString();
                    break;

                case "Rmlink":
                    uploadItem.UploadType = "Upload_RMLink";
                    uploadItem.RMLink     = dt.Rows[0]["TYPEVALUE"].ToString();
                    break;
                }
                uploadItem.IsVisible = (dt.Rows[0]["ISVALID"].ToString() == "1");
                uploadItem.Module    = dt.Rows[0]["MODULEID"].ToString();
                selectedModuleId     = Convert.ToDecimal(uploadItem.Module);
                uploadItem.TitleCn   = dt.Rows[0]["NAMECN"].ToString();
                uploadItem.TitleEn   = dt.Rows[0]["NAMEEN"].ToString();
                if (dt.Rows[0]["TYPEPARAM"] != null)
                {
                    uploadItem.TypeParam = dt.Rows[0]["TYPEPARAM"].ToString();
                }
            }
            foreach (var m in modules)
            {
                moduleItems.Add(new SelectListItem {
                    Selected = m.ID == selectedModuleId ? true : false, Value = m.ID.ToString(), Text = CultureHelper.IsEnglishCulture() ? m.NAMEEN : m.NAMECN
                });
            }
            uploadItem.ModuleItems = moduleItems;

            return(View(uploadItem));
        }
예제 #3
0
        public async Task <IActionResult> ViewVault(string id)
        {
            Models.Vault foundVault = _dbContext.Vaults.Where(v => v.Url == id).FirstOrDefault();
            if (foundVault != null)
            {
                // Update view count
                foundVault.Views += 1;
                _dbContext.Entry(foundVault).State = EntityState.Modified;
                _dbContext.SaveChanges();

                ViewBag.Title = foundVault.Title + " | Vault";

                VaultViewModel model = new VaultViewModel();
                model.CurrentSub = Subdomain;

                model.Url         = foundVault.Url;
                model.UserId      = foundVault.UserId;
                model.User        = foundVault.User;
                model.Title       = foundVault.Title;
                model.Description = foundVault.Description;
                model.DateCreated = foundVault.DateCreated;
                model.DateEdited  = foundVault.DateEdited;

                if (foundVault.VaultItems.Any())
                {
                    foreach (VaultItem item in foundVault.VaultItems.OrderBy(v => v.Index))
                    {
                        if (item.GetType().BaseType == typeof(UploadVaultItem))
                        {
                            UploadVaultItem upload = (UploadVaultItem)item;
                            // Increment Views
                            upload.Upload.Downloads += 1;
                            _dbContext.Entry(upload.Upload).State = EntityState.Modified;
                            _dbContext.SaveChanges();

                            UploadItemViewModel uploadModel = new UploadItemViewModel();
                            uploadModel.VaultItemId = item.VaultItemId;
                            uploadModel.Title       = item.Title;
                            uploadModel.Description = item.Description;
                            uploadModel.DateAdded   = item.DateAdded;
                            uploadModel.Upload      = upload.Upload;
                            model.Items.Add(uploadModel);
                        }
                        else if (item.GetType().BaseType == typeof(PasteVaultItem))
                        {
                            PasteVaultItem paste = (PasteVaultItem)item;
                            // Increment Views
                            paste.Paste.Views += 1;
                            _dbContext.Entry(paste.Paste).State = EntityState.Modified;
                            _dbContext.SaveChanges();

                            // Check Expiration
                            if (PasteHelper.CheckExpiration(paste.Paste))
                            {
                                _dbContext.Pastes.Remove(paste.Paste);
                                _dbContext.SaveChanges();
                                break;
                            }

                            PasteItemViewModel pasteModel = new PasteItemViewModel();
                            pasteModel.VaultItemId = item.VaultItemId;
                            pasteModel.Title       = item.Title;
                            pasteModel.Description = item.Description;
                            pasteModel.DateAdded   = item.DateAdded;

                            pasteModel.PasteId     = paste.Paste.PasteId;
                            pasteModel.Url         = paste.Paste.Url;
                            pasteModel.DatePosted  = paste.Paste.DatePosted;
                            pasteModel.Syntax      = paste.Paste.Syntax;
                            pasteModel.HasPassword = !string.IsNullOrEmpty(paste.Paste.HashedPassword);

                            if (!pasteModel.HasPassword)
                            {
                                // Read in the file
                                string subDir   = paste.Paste.FileName[0].ToString();
                                string filePath = Path.Combine(_config.PasteConfig.PasteDirectory, subDir, paste.Paste.FileName);
                                if (!System.IO.File.Exists(filePath))
                                {
                                    continue;
                                }

                                byte[] ivBytes  = Encoding.Unicode.GetBytes(paste.Paste.IV);
                                byte[] keyBytes = AesCounterManaged.CreateKey(paste.Paste.Key, ivBytes, paste.Paste.KeySize);
                                using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
                                    using (AesCounterStream cs = new AesCounterStream(fs, false, keyBytes, ivBytes))
                                        using (StreamReader sr = new StreamReader(cs, Encoding.Unicode))
                                        {
                                            pasteModel.Content = await sr.ReadToEndAsync();
                                        }
                            }

                            model.Items.Add(pasteModel);
                        }
                    }
                }

                return(View(model));
            }
            return(new StatusCodeResult(StatusCodes.Status404NotFound));
        }