/// <summary> /// Append QuestionRequirement of Question /// </summary> /// <param name="q"></param> /// <param name="section"></param> private static void AppendTestQuestion(Candidate q, Document doc, int questionNumber, ref object missing) { try { Paragraph paraQuestionNumber = doc.Content.Paragraphs.Add(ref missing); string question = "Question " + questionNumber + ":"; paraQuestionNumber.Range.Text = question; Range questionNumberRange = doc.Range(paraQuestionNumber.Range.Start, paraQuestionNumber.Range.Start + question.Length); questionNumberRange.Font.Bold = 1; questionNumberRange.Font.Underline = WdUnderline.wdUnderlineSingle; paraQuestionNumber.Format.Alignment = WdParagraphAlignment.wdAlignParagraphLeft; paraQuestionNumber.Range.Font.Name = "Arial"; paraQuestionNumber.Range.InsertParagraphAfter(); Paragraph paraContent = doc.Content.Paragraphs.Add(ref missing); paraContent.Range.Font.Bold = 0; paraContent.Range.Font.Underline = WdUnderline.wdUnderlineNone; paraContent.Range.Text = q.QuestionRequirement; paraContent.Format.Alignment = WdParagraphAlignment.wdAlignParagraphLeft; paraContent.Range.InsertParagraphAfter(); List <string> images = q.Illustration; int i = 0; string imageName = AppDomain.CurrentDomain.BaseDirectory + @"/" + q.CandidateId + ".bmp"; foreach (var image in images) { if (ImageUtils.Base64ToImage(image) != null) { Image img = ImageUtils.Base64ToImage(image); Image tempImg = new Bitmap(img); tempImg.Save(imageName); Paragraph paraImage = doc.Content.Paragraphs.Add(ref missing); paraImage.Range.InlineShapes.AddPicture(imageName); paraImage.Format.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; Paragraph paraImageDescription = doc.Content.Paragraphs.Add(ref missing); paraImageDescription.Range.Text = "Picture " + questionNumber + "." + (++i) + ""; paraImageDescription.Format.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; paraImageDescription.Range.InsertParagraphAfter(); } } if (File.Exists(imageName)) { File.Delete(imageName); } } catch (Exception e) { throw e; } }
/* * Throws Excption with error code */ public String SaveInDirectory() { if ((true == StringUtils.IsNullOrEmpty(this.Directory)) || (true == StringUtils.IsNullOrEmpty(this.FileName)) || (true == StringUtils.IsNullOrEmpty(this.FileContent))) { throw new Exception(ErrorsCode.TARGET_FILE_MISSING_DATA.ToString()); } // Image path String basePath = CsConstatnts.IMAGES_BASE_PATH; // HttpContext.Current.Server.MapPath("/../../Pictures"); if (true == StringUtils.IsNullOrEmpty(basePath)) { basePath = CsConstatnts.IMAGES_BASE_PATH; } String path = Path.Combine(basePath, Directory); //Check if filePath exist if (false == System.IO.Directory.Exists(path)) { System.IO.Directory.CreateDirectory(path); //Create filePath if it doesn't exist } String imagePath = Path.Combine(path, this.FileName); // Check whether this file already exist if (true == System.IO.File.Exists(imagePath)) { throw new Exception(ErrorsCode.TARGET_FILE_ALREADY_EXIST.ToString()); } // Convert Base64 String to Image Image image = ImageUtils.Base64ToImage(this.FileContent); if (null == image) { return(null); } // Saving the image image.Save(imagePath); return(Path.Combine(this.Directory, this.FileName)); }
internal void CopySharedToLocal(int id) { string Id = id.ToString(); ClipboardData clipboardData = sharedClipboard[Id]; if (clipboardData != null) { switch (clipboardData.Type) { case ClipboardDataType.TEXT: Clipboard.SetText(clipboardData.Data); break; case ClipboardDataType.IMAGE: Clipboard.SetImage(ImageUtils.Base64ToImage(clipboardData.Data)); break; case ClipboardDataType.FILES: StringCollection filePaths = new StringCollection(); List <ClipboardFile> files = JsonConvert.DeserializeObject <List <ClipboardFile> >(clipboardData.Data); foreach (ClipboardFile clipboardFile in files) { string path = FileUtils.CreateTemporaryFile(clipboardFile.Name, clipboardFile.Data); if (path != null) { filePaths.Add(path); } } Clipboard.SetFileDropList(filePaths); break; default: Console.WriteLine("Unknown clipboard data type"); break; } } }
void OnSharedClipboardChanged(object sender, ClipboardData clipboardData) { BeginInvoke((MethodInvoker) delegate { if (clipboardData != null) { Console.WriteLine("Shared clipboard changed:"); Console.WriteLine(" Id: " + clipboardData.Id); Console.WriteLine(" Sender: " + clipboardData.Sender); Console.WriteLine(" Type: " + clipboardData.Type); if (clipboardData.Id == copyHotKeyRegisterId1.ToString()) { lbShared1Name.Text = clipboardData.Sender; switch (clipboardData.Type) { case ClipboardDataType.TEXT: string text = clipboardData.Data; tbSharedClipboard1Text.Text = text; tbSharedClipboard1Text.Visible = true; lbShared1Text.Visible = true; pbSharedClipboard1Image.Image = null; pbSharedClipboard1Image.Visible = false; lbShared1Image.Visible = false; lbSharedClipboard1FileDropList.Items.Clear(); lbSharedClipboard1FileDropList.Visible = false; lbShared1Files.Visible = false; break; case ClipboardDataType.IMAGE: Image image = ImageUtils.Base64ToImage(clipboardData.Data); tbSharedClipboard1Text.Text = null; tbSharedClipboard1Text.Visible = false; lbShared1Text.Visible = false; pbSharedClipboard1Image.Image = image; pbSharedClipboard1Image.Visible = true; lbShared1Image.Visible = true; lbSharedClipboard1FileDropList.Items.Clear(); lbSharedClipboard1FileDropList.Visible = false; lbShared1Files.Visible = false; break; case ClipboardDataType.FILES: List <ClipboardFile> files = JsonConvert.DeserializeObject <List <ClipboardFile> >(clipboardData.Data); tbSharedClipboard1Text.Text = null; tbSharedClipboard1Text.Visible = false; lbShared1Text.Visible = false; pbSharedClipboard1Image.Image = null; pbSharedClipboard1Image.Visible = false; lbShared1Image.Visible = false; lbSharedClipboard1FileDropList.Items.Clear(); foreach (ClipboardFile clipboardFile in files) { lbSharedClipboard1FileDropList.Items.Add(clipboardFile.Name); } lbSharedClipboard1FileDropList.Visible = true; lbShared1Files.Visible = true; break; default: Console.WriteLine("Unknown clipboard data type"); break; } } else if (clipboardData.Id == copyHotKeyRegisterId2.ToString()) { lbShared2Name.Text = clipboardData.Sender; switch (clipboardData.Type) { case ClipboardDataType.TEXT: string text = clipboardData.Data; tbSharedClipboard2Text.Text = text; tbSharedClipboard2Text.Visible = true; lbShared2Text.Visible = true; pbSharedClipboard2Image.Image = null; pbSharedClipboard2Image.Visible = false; lbShared2Image.Visible = false; lbSharedClipboard2FileDropList.Items.Clear(); lbSharedClipboard2FileDropList.Visible = false; lbShared2Files.Visible = false; break; case ClipboardDataType.IMAGE: Image image = ImageUtils.Base64ToImage(clipboardData.Data); tbSharedClipboard2Text.Text = null; tbSharedClipboard2Text.Visible = false; lbShared2Text.Visible = false; pbSharedClipboard2Image.Image = image; pbSharedClipboard2Image.Visible = true; lbShared2Image.Visible = true; lbSharedClipboard2FileDropList.Items.Clear(); lbSharedClipboard2FileDropList.Visible = false; lbShared2Files.Visible = false; break; case ClipboardDataType.FILES: List <ClipboardFile> files = JsonConvert.DeserializeObject <List <ClipboardFile> >(clipboardData.Data); tbSharedClipboard2Text.Text = null; tbSharedClipboard2Text.Visible = false; lbShared2Text.Visible = false; pbSharedClipboard2Image.Image = null; pbSharedClipboard2Image.Visible = false; lbShared2Image.Visible = false; lbSharedClipboard2FileDropList.Items.Clear(); foreach (ClipboardFile clipboardFile in files) { lbSharedClipboard2FileDropList.Items.Add(clipboardFile.Name); } lbSharedClipboard2FileDropList.Visible = true; lbShared2Files.Visible = true; break; default: Console.WriteLine("Unknown clipboard data type"); break; } } else if (clipboardData.Id == copyHotKeyRegisterId3.ToString()) { lbShared3Name.Text = clipboardData.Sender; switch (clipboardData.Type) { case ClipboardDataType.TEXT: string text = clipboardData.Data; tbSharedClipboard3Text.Text = text; tbSharedClipboard3Text.Visible = true; lbShared3Text.Visible = true; pbSharedClipboard3Image.Image = null; pbSharedClipboard3Image.Visible = false; lbShared3Image.Visible = false; lbSharedClipboard3FileDropList.Items.Clear(); lbSharedClipboard3FileDropList.Visible = false; lbShared3Files.Visible = false; break; case ClipboardDataType.IMAGE: Image image = ImageUtils.Base64ToImage(clipboardData.Data); tbSharedClipboard3Text.Text = null; tbSharedClipboard3Text.Visible = false; lbShared3Text.Visible = false; pbSharedClipboard3Image.Image = image; pbSharedClipboard3Image.Visible = true; lbShared3Image.Visible = true; lbSharedClipboard3FileDropList.Items.Clear(); lbSharedClipboard3FileDropList.Visible = false; lbShared3Files.Visible = false; break; case ClipboardDataType.FILES: List <ClipboardFile> files = JsonConvert.DeserializeObject <List <ClipboardFile> >(clipboardData.Data); tbSharedClipboard3Text.Text = null; tbSharedClipboard3Text.Visible = false; lbShared3Text.Visible = false; pbSharedClipboard3Image.Image = null; pbSharedClipboard3Image.Visible = false; lbShared3Image.Visible = false; lbSharedClipboard3FileDropList.Items.Clear(); foreach (ClipboardFile clipboardFile in files) { lbSharedClipboard3FileDropList.Items.Add(clipboardFile.Name); } lbSharedClipboard3FileDropList.Visible = true; lbShared3Files.Visible = true; break; default: Console.WriteLine("Unknown clipboard data type"); break; } } } }, null); }
/// <summary> /// Append QuestionRequirement of Question /// </summary> /// <param name="q"></param> /// <param name="section"></param> static private void AppendSection(Candidate q, Section section, int questionNumber, int candidateNumber, ref object missing) { //Insert Title of question Paragraph paraTitle = section.Range.Paragraphs.Add(ref missing); paraTitle.Range.Text = "Question " + questionNumber + "." + candidateNumber + ":"; paraTitle.Range.Font.Name = "Arial"; paraTitle.Range.Font.Bold = 1; paraTitle.Range.Font.Underline = WdUnderline.wdUnderlineSingle; paraTitle.Range.ParagraphFormat.LeftIndent = 0; paraTitle.Format.Alignment = WdParagraphAlignment.wdAlignParagraphLeft; paraTitle.Range.InsertParagraphAfter(); //Insert question requirement if (!string.IsNullOrEmpty(q.QuestionRequirement)) { Paragraph paraRequirement = section.Range.Paragraphs.Add(ref missing); q.QuestionRequirement = q.QuestionRequirement.Trim(); //if (!q.QuestionRequirement.EndsWith(".")) q.QuestionRequirement = string.Concat(q.QuestionRequirement, "."); paraRequirement.Range.Text = q.QuestionRequirement; paraRequirement.Range.Font.Name = "Arial"; paraRequirement.Range.Font.Bold = 0; paraRequirement.Range.Font.Underline = WdUnderline.wdUnderlineNone; paraRequirement.Range.Font.Italic = 0; paraRequirement.Range.ParagraphFormat.LeftIndent = 0; paraRequirement.Format.Alignment = WdParagraphAlignment.wdAlignParagraphLeft; paraRequirement.Range.InsertParagraphAfter(); } //Insert illustration images List <string> images = q.Illustration; int i = 0; foreach (var image in images) { if (ImageUtils.Base64ToImage(image) != null) { Image img = ImageUtils.Base64ToImage(image); Image tempImg = new Bitmap(img); string imageName = AppDomain.CurrentDomain.BaseDirectory + @"/tmpImg.bmp"; tempImg.Save(imageName); Paragraph paraImage = section.Range.Paragraphs.Add(ref missing); InlineShape pictureShape = paraImage.Range.InlineShapes.AddPicture(imageName); paraImage.Format.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; paraImage.Range.ParagraphFormat.LeftIndent = 0; Paragraph paraImageDescription = section.Range.Paragraphs.Add(ref missing); paraImageDescription.Range.Text = "Picture " + questionNumber + "." + (++i) + ""; paraImageDescription.Format.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; paraImageDescription.Range.Font.Bold = 0; paraImageDescription.Range.Font.Underline = WdUnderline.wdUnderlineNone; paraImageDescription.Range.ParagraphFormat.LeftIndent = 0; paraImageDescription.Range.InsertParagraphAfter(); } } //Insert Solution query InsertBlock("Solution: ", q.Solution, true, section, ref missing); //Insert Test query InsertBlock("Test query: ", q.TestQuery, true, section, ref missing); }