프로젝트

일반

사용자정보

개정판 b2d0f316

IDb2d0f316125ad5439e7530cf5ec796805b5d1dd4
상위 ff2f8d1d
하위 5c3caba6

백흠경이(가) 5달 전에 추가함

Feature: 선택한 객체를 앞으로(+)/뒤로(-) 보내기 기능 추가

Change-Id: I9130a93cfdb2d079f28258f3d669a6f532695f89

차이점 보기:

CommonLib/Common.cs
64 64
        public static string GetConfigString(string section, string key, string def,bool isExternal)
65 65
        {
66 66
            System.Text.StringBuilder strbuilder = new System.Text.StringBuilder(512);
67
            GetPrivateProfileString(section, key, def, strbuilder, 512, Path.Combine(AppStartFolder, "MARKUS.ini"));
67
            string FilePath = Path.Combine(AppStartFolder, "MARKUS.ini");
68
            GetPrivateProfileString(section, key, def, strbuilder, 512, FilePath);
68 69

  
69 70
            string result = strbuilder.ToString();
70 71
            //internal 이면 result return
71 72
            if (isExternal)
72 73
            {
73 74
                System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder(512);
74
                GetPrivateProfileString("External", "IP", "", stringBuilder, 512, Path.Combine(AppStartFolder, "MARKUS.ini"));
75
                GetPrivateProfileString("External", "IP", "", stringBuilder, 512, FilePath);
75 76
                string external_ip = stringBuilder.ToString();
76 77
                stringBuilder = new StringBuilder();
77
                GetPrivateProfileString("Internal", "IP", "", stringBuilder, 512, Path.Combine(AppStartFolder, "MARKUS.ini"));
78
                GetPrivateProfileString("Internal", "IP", "", stringBuilder, 512, FilePath);
78 79
                string internal_ip = stringBuilder.ToString();
79 80

  
80 81
                //internalport:externalport
81 82
                stringBuilder = new StringBuilder();
82
                GetPrivateProfileString("PortForwarding", "HUB", "", stringBuilder, 512, Path.Combine(AppStartFolder, "MARKUS.ini"));
83
                GetPrivateProfileString("PortForwarding", "HUB", "", stringBuilder, 512, FilePath);
83 84
                string[] forwarding_hub = stringBuilder.ToString().Split(':');
84 85
                stringBuilder = new StringBuilder();
85
                GetPrivateProfileString("PortForwarding", "RESOURCE", "", stringBuilder, 512, Path.Combine(AppStartFolder, "MARKUS.ini"));
86
                GetPrivateProfileString("PortForwarding", "RESOURCE", "", stringBuilder, 512, FilePath);
86 87
                string[] forwarding_resource = stringBuilder.ToString().Split(':');
87 88
                stringBuilder = new StringBuilder();
88
                GetPrivateProfileString("PortForwarding", "BASE", "", stringBuilder, 512, Path.Combine(AppStartFolder, "MARKUS.ini"));
89
                GetPrivateProfileString("PortForwarding", "BASE", "", stringBuilder, 512, FilePath);
89 90
                string[] forwarding_base = stringBuilder.ToString().Split(':');
90 91

  
91 92
                if(result.Contains(internal_ip))
......
99 100
            }
100 101
            return result;
101 102
        }
103

  
102 104
        public static string IPReplace(string url, bool isExternal)
103 105
        {
104 106
            string result = url;
IKCOM/Interface.cs
2 2
using MarkupToPDF.Controls.Common;
3 3
using System;
4 4
using System.Collections.Generic;
5
using System.ComponentModel;
5 6
using System.Linq;
6 7
using System.Text;
7 8
using System.Windows.Controls;
......
146 147
        public int Data_Type { get; set; }
147 148
        public string ParsingMemo { get; set; }
148 149
        public string Symbol_ID { get; set; }
149
        //public long Group_ID { get; set; }
150
        [Description("컨트롤의 ZIndex")]
151
        public int ZIndex{ get; set; }
150 152
    }
151 153
    public enum SERVICE_NAME
152 154
    {
KCOM/App.xaml.cs
125 125
        }
126 126

  
127 127
        private string versionPath = null;
128
        //public SplashScreen splash = new SplashScreen("splash.png");
129
        public static SplashScreenWindow splashScreen = new SplashScreenWindow();
128
        public static SplashScreenWindow splashScreen { get; } = new SplashScreenWindow();
130 129

  
131 130
        public App()
132 131
        {
KCOM/Common/DataSaveTask.cs
148 148
                    bool IsSuccess = false;
149 149
                    List <MARKUP_DATA> markupdata = new List<MARKUP_DATA>();
150 150

  
151
                    //markupdata = UserState.MarkupList.Select(x=>
152
                    //    new MARKUP_DATA()
153
                    //    {
154
                    //        ID = x.ID,
155
                    //        PAGENUMBER = x.PageNumber,
156
                    //        DATA = x.Data,
157
                    //        MARKUPINFO_VERSION_ID = UserState.MarkupVersionID,
158
                    //        DATA_TYPE = x.Data_Type
159
                    //    }
160
                    //).ToList();
161

  
162 151
                    var updateItems = ViewerDataModel.Instance.MyMarkupList
163 152
                                    .Where(d => d.MarkupInfoID == UserState.MarkupInfoID && d.PageNumber == currentPageNo)
164
                                    .GroupBy(p => p.ID).Select(g => g.First()).ToList();
165

  
166
                    if (updateItems.Count() > 0)
153
                                    .GroupBy(p => p.ID).Select(g => g.First())
154
                                    .OrderBy(x => x.ZIndex).ToList();
155
                    if (updateItems.Any())
167 156
                    {
168 157
                        updateItems.ForEach(value =>
169 158
                        {
KCOM/Common/SelectionSet.cs
131 131
                    {
132 132
                        if (item.GetType().Name == "AdornerFinal") 
133 133
                        {
134
                            (item as AdornerFinal).unRegister();
134
                            (item as AdornerFinal).UnRegister();
135 135

  
136
                            foreach (var InnerItem in (item as AdornerFinal).Members.Cast<AdornerMember>())
136
                            foreach (var InnerItem in (item as AdornerFinal).Members)
137 137
                            {
138 138
                                if (!ViewerDataModel.Instance.MarkupControls_USER.Contains(InnerItem.DrawingData))
139 139
                                {
......
146 146
                                    }
147 147

  
148 148
                                    var control = InnerItem.DrawingData as CommentUserInfo;
149
                                    ViewerDataModel.Instance.MarkupControls_USER.Add(control);
150

  
151
                                    #region Unselect하는데 Create 커맨드를 추가해야 하는지 이해되지 않음
152
                                    /*
153
                                    var vUndoBeforeTargetItem =
154
                                        ViewerDataModel.Instance.UndoDataList.ToList().OrderBy(x => x.EventTime).LastOrDefault();
155

  
156
                                    if (vUndoBeforeTargetItem != null && vUndoBeforeTargetItem.Event == EventType.Operation)
157
                                    {
158

  
159
                                    }
160
                                    else
161
                                    {
162
                                        MarkupToPDF.Common.UndoDataGroup UndoDataGroup = new UndoDataGroup()
163
                                        {
164
                                            IsUndo = false,
165
                                            Event = EventType.Create,
166
                                            EventTime = DateTime.Now,
167
                                            MarkupDataColl = new List<UndoData>()
168
                                        };
169

  
170
                                        var _UndoData = Common.ViewerDataModel.Instance.SystemMain.dzMainMenu.Control_Style(control);
171
                                        UndoDataGroup.MarkupDataColl.Add(_UndoData);
172
                                        ViewerDataModel.Instance.UndoDataList.Add(UndoDataGroup);
173
                                    }
174
                                    Common.ViewerDataModel.Instance.SystemMain.dzMainMenu.UpdateMyMarkupList();
175
                                    */
149
                                    #region ZIndex 설정
150
                                    System.Windows.Controls.Canvas.SetZIndex(control, control.ZIndex);
176 151
                                    #endregion
152
                                    ViewerDataModel.Instance.MarkupControls_USER.Add(control);
177 153
                                }
178 154
                            }
179 155
                        }
......
183 159
            }
184 160
            catch (Exception ex)
185 161
            {
186
                //Logger.sendResLog("ReleaseAdorner", ex.ToString(), 0);
162
                throw new InvalidOperationException(ex.Message);
187 163
            }
188 164
        }
189 165

  
KCOM/Common/ViewerDataModel.cs
118 118

  
119 119
        //private ObservableCollection<CommentUserInfo> markupControls_Pre = new ObservableCollection<CommentUserInfo>();
120 120

  
121
        private ObservableCollection<CommentUserInfo> markupControls = new ObservableCollection<CommentUserInfo>();
121
        
122 122
        private ObservableCollection<CommentUserInfo> markupControls_Sync = new ObservableCollection<CommentUserInfo>();
123
        private ObservableCollection<CommentUserInfo> markupControls_User = new ObservableCollection<CommentUserInfo>();
123
        private ObservableCollection<CommentUserInfo> markupControls { get; } = new ObservableCollection<CommentUserInfo>();
124
        /// <summary>
125
        /// 사용자가 작업 중인 markup 데이터
126
        /// </summary>
127
        private ObservableCollection<CommentUserInfo> markupControls_User { get; } = new ObservableCollection<CommentUserInfo>();
124 128

  
125 129

  
126 130
        ////강인구 추가
KCOM/Controls/AdornerFinal.xaml.cs
258 258
            InitializeComponent();
259 259
            objectData.IsHitTestVisible = false;
260 260

  
261
            if ((objectData as ArrowTextControl) != null)
261
            if (objectData is ArrowTextControl ArrTextCtrl)
262 262
            {
263
                (objectData as ArrowTextControl).Base_TextBox.Focusable = true;
263
                ArrTextCtrl.Base_TextBox.Focusable = true;
264 264
            }
265 265

  
266
            Canvas.SetZIndex(objectData, 84);
266
            ///Canvas.SetZIndex(objectData, 84);
267 267
            try
268 268
            {
269 269
                ViewerDataModel.Instance.MarkupControls_USER.Remove(objectData);
......
274 274

  
275 275
            }
276 276
           
277
            SetAdornerMember(objectData as CommentUserInfo);
277
            SetAdornerMember(objectData);
278 278
            this.Focus();
279 279
        }
280 280

  
......
284 284
            foreach (var item in objectData)
285 285
            {
286 286
                //item.IsHitTestVisible = false;
287
                if ((item as ArrowTextControl) != null)
287
                if (item is ArrowTextControl ArrTextCtrl)
288 288
                {
289
                    (item as ArrowTextControl).Base_TextBox.Focusable = true;
289
                    ArrTextCtrl.Base_TextBox.Focusable = true;
290 290
                }
291 291
                try
292 292
                {
293
                    Canvas.SetZIndex(item, 80);
293
                    ///Canvas.SetZIndex(item, 80);
294

  
294 295
                    ViewerDataModel.Instance.MarkupControls_USER.Remove(item);
295 296
                    this.ContainerContent.Children.Add(item);
296 297
                }
......
342 343
        {
343 344
            return BorderSize;
344 345
        }
345
        public void addMemberControl(UIElement objectData)
346
        {
347
            this.ContainerContent.Children.Add(objectData);
348
            SetAdornerMember(objectData as CommentUserInfo);
349
            this.Focus();
350
        }
351 346

  
352 347
        private void TextControlLostFocus(object sender,RoutedEventArgs e)
353 348
        {
354 349
            TextCompensation = false;
355 350
            BorderUpdate();
356 351

  
357
            if (sender is TextBox)
352
            if (sender is TextBox TextBox)
358 353
            {
359
                if ((sender as TextBox).Text == "") //보류
354
                if (TextBox.Text == "") //보류
360 355
                {
361 356
                    this.ContainerContent.Children.Remove((sender as TextBox).Parent as MarkupToPDF.Common.CommentUserInfo);
362 357
                    this.Visibility = Visibility.Collapsed;
......
821 816
        /// <summary>
822 817
        /// UIElement 해제
823 818
        /// </summary>
824
        public void unRegister()
819
        public void UnRegister()
825 820
        {
826 821
            foreach (var item in this.ContainerContent.Children)
827 822
            {
......
1668 1663

  
1669 1664
        private void DragThumb_MouseDoubleClick(object sender, MouseButtonEventArgs e)
1670 1665
        {
1671
            if ((this.Members[0] as AdornerMember).DrawingData.GetType().Name == "TextControl" 
1672
                || (this.Members[0] as AdornerMember).DrawingData.GetType().Name == "ArrowTextControl")
1666
            if (this.Members[0].DrawingData.GetType().Name == "TextControl" 
1667
                || this.Members[0].DrawingData.GetType().Name == "ArrowTextControl")
1673 1668
            {
1674 1669
                DragThumb.Visibility = Visibility.Collapsed;
1675 1670
            }
KCOM/Controls/Sample.xaml.cs
313 313
            }
314 314
        }
315 315

  
316
        /// <summary>
317
        /// 페이지가 전환될때 해당 페이지의 마크업 데이터를 표시한다.
318
        /// </summary>
319
        /// <param name="selectItem"></param>
316 320
        private async void PageChange(KCOM.Common.ThumbnailItem selectItem)
317 321
        { 
318 322
            var number = selectItem.PageNumber;
......
393 397
        /// <param name="iPageNo">변경할 페이지 번호</param>
394 398
        public void ChangePage(int iPageNo)
395 399
        {
396
            var thumbitem = this._thumbnailItems.Where(item => item.PageNumber == iPageNo).FirstOrDefault();
400
            var thumbitem = this._thumbnailItems.FirstOrDefault(item => item.PageNumber == iPageNo);
397 401
            if ((PageChanged != null) && (thumbitem != null))
398 402
            {
399 403
                var uri = thumbitem.PageUri.ToString();
400
                    //_DefaultUri.Replace("{PageNo}", thumbitem.PageNumber.ToString());
401 404

  
402
                var _DocPages = _PageList.Where(p => p.PAGE_NUMBER == thumbitem.PageNumber).FirstOrDefault();
405
                var _DocPages = _PageList.Find(p => p.PAGE_NUMBER == thumbitem.PageNumber);
403 406
                if (_DocPages != null)
404 407
                {
405 408
                    PageChanged(this, new PageChangeEventArgs
......
408 411
                        PageUri = uri,
409 412
                        PageNumber = thumbitem.PageNumber
410 413
                    });
411
                    //ImgListbox.SelectedItem = thumbitem;                    
412
                    //ImgListbox.Items.MoveCurrentTo(thumbitem);
413 414
                    
414 415
                    this.CurrentPage = thumbitem;
415 416
                }
KCOM/Events/Event_KeyEvent.cs
23 23
        public double CumulativeWheel = 0;
24 24
        MarkupToPDF.Controls.Parsing.MarkupParser.MarkupReturn markupReturn = new MarkupToPDF.Controls.Parsing.MarkupParser.MarkupReturn();
25 25
                
26
        /// <summary>
27
        /// 입력한 키 처리
28
        /// </summary>
29
        /// <param name="sender"></param>
30
        /// <param name="e"></param>
26 31
        public async void KeyEventDownAction(object sender, KeyEventArgs e)
27 32
        {
28 33
            //if (e.IsRepeat && !ViewerDataModel.Instance.IsPressCtrl && !ViewerDataModel.Instance.IsPressShift)
......
64 69
                    }
65 70
                    break;
66 71

  
67
                    #region 전체 선택(Ctrl + A)
72
                #region 전체 선택(Ctrl + A)
68 73
                case Key.A:
69 74
                    {
70 75
                        if (ViewerDataModel.Instance.IsPressCtrl && (App.ViewInfo.CreateFinalPDFPermission || App.ViewInfo.NewCommentPermission))
......
442 447
                case Key.PageDown:
443 448
                    this.dzMainMenu.pageNavigator.GotoPage(Convert.ToInt32(Common.ViewerDataModel.Instance.SystemMain.dzMainMenu.pageNavigator.CurrentPage.PageNumber) + 1);
444 449
                    break;
445
            }
450
                #region ZIndex 설정
451
                case Key.Add:
452
                    foreach (var item in SelectionSet.Instance.SelectedItems)
453
                    {
454
                        if (item.ZIndex < 100)
455
                        {
456
                            item.ZIndex++;
457
                            Canvas.SetZIndex(item, item.ZIndex);
458
                        }
459
                    }
460
                    ViewerDataModel.Instance.IsMarkupUpdate = true;
461
                    break;
462
                case Key.Subtract:
463
                    foreach(var item in SelectionSet.Instance.SelectedItems)
464
                    {
465
                        if (item.ZIndex > 0)
466
                        {
467
                            item.ZIndex--;
468
                            Canvas.SetZIndex(item, item.ZIndex);
469
                        }
470
                    }
471
                    ViewerDataModel.Instance.IsMarkupUpdate = true;
472
                    break;
473
                #endregion
474
                }
446 475
            });
447 476
        }
448 477

  
KCOM/Events/Implementation/TopMenuEvent.cs
355 355
            {
356 356
                mainMenu.ConvertInkControlToPolygon();
357 357

  
358
                //Common.ViewerDataModel.Instance.SystemMain.dzMainMenu.zoomAndPanControl_MouseDown(this, new MouseButtonEventArgs(Mouse.PrimaryDevice, 0, MouseButton.Right));
359

  
360
                //SelectionSet.Instance.UnSelect(this.ParentOfType<MainWindow>().dzMainMenu);
361
                // update mylist and gridview
362 358
                mainMenu.UpdateMyMarkupList();
363 359

  
364 360
                if (mainMenu.gridViewMarkup.SelectedItems.Count == 0 && mainMenu.gridViewMarkup.Items.Count > 0)
......
424 420
            {
425 421
                mainMenu.ConvertInkControlToPolygon();
426 422

  
427
                SelectionSet.Instance.UnSelect(this.ParentOfType<MainWindow>().dzMainMenu);
428 423
                // update mylist and gridview
429 424
                mainMenu.UpdateMyMarkupList();
430 425

  
......
440 435
                        {
441 436
                            /// 저장 서비스 호출
442 437
                            result = await this.ExecuteSaveCommandAsync(mainMenu);
443

  
444
                            ViewerDataModel.Instance._markupInfoList.Where(data => data.MarkupInfoID == (item as IKCOM.MarkupInfoItem).MarkupInfoID).FirstOrDefault().UpdateTime = DateTime.Now;
445
                        }
446
                    }
447
                }
448

  
449
                mainMenu.SetCommentPages(null);
450

  
451
                ViewerDataModel.Instance.UndoDataList.Clear();
452
                result = true;
453
            }
454
            catch (Exception ex)
455
            {
456
                System.Diagnostics.Debug.WriteLine("_SaveEvent Error : " + ex.ToString());
457
            }
458
            finally
459
            {
460
                /*
461
                /// delete markup information when 코멘트가 없을 경우
462
                if (ViewerDataModel.Instance.MyMarkupList.Count == 0)
463
                {
464
                    foreach (var item in menu.gridViewMarkup.SelectedItems)
465
                    {
466
                        if ((item as IKCOM.MarkupInfoItem).UserID == App.ViewInfo.UserID)
467
                        {
468
                            //this.ParentOfType<MainWindow>().dzMainMenu.DeleteItem((item as IKCOM.MarkupInfoItem));
469
                        }
470
                    }
471
                }
472
                */
473
            }
474

  
475
            return result;
476
        }
477

  
478
        public bool SaveEvent()
479
        {
480
            bool result = false;
481

  
482
            var mainMenu = this.ParentOfType<MainWindow>().dzMainMenu;
483
            try
484
            {
485
                mainMenu.ConvertInkControlToPolygon();
486

  
487
                SelectionSet.Instance.UnSelect(this.ParentOfType<MainWindow>().dzMainMenu);
488
                // update mylist and gridview
489
                mainMenu.UpdateMyMarkupList();
490

  
491
                if (mainMenu.gridViewMarkup.SelectedItems.Count == 0 && mainMenu.gridViewMarkup.Items.Count > 0)
492
                {
493
                    this.ParentOfType<MainWindow>().DialogMessage_Alert("Please Select Your Comment List Item", "Alert");
494
                }
495
                else
496
                {
497
                    foreach (var item in mainMenu.gridViewMarkup.SelectedItems)
498
                    {
499
                        if ((item as IKCOM.MarkupInfoItem).UserID == App.ViewInfo.UserID)
500
                        {
501
                            /// 저장 서비스 호출
502
                            result = this.ExecuteSaveCommandAsync(mainMenu).GetAwaiter().GetResult();
503

  
504 438
                            ViewerDataModel.Instance._markupInfoList.Where(data => data.MarkupInfoID == (item as IKCOM.MarkupInfoItem).MarkupInfoID).FirstOrDefault().UpdateTime = DateTime.Now;
505 439
                        }
506 440
                    }
......
536 470
        }
537 471

  
538 472
        /// <summary>
539
        /// call save command
473
        /// 마크업 데이터를 저장한다.
540 474
        /// </summary>
541 475
        /// <param name="menu"></param>
542
		public void ExecuteSaveCommand2(MainMenu menu)
543
        {
544
            if (menu.pageNavigator.CurrentPage != null)
545
            {
546
                SaveCommand.Instance.Project_No = App.ViewInfo.ProjectNO;
547
                SaveCommand.Instance.document_id = App.ViewInfo.DocumentItemID;
548
                SaveCommand.Instance.user_id = App.ViewInfo.UserID;
549
                SaveCommand.Instance.page_no = menu.pageNavigator.CurrentPage.PageNumber;
550

  
551
                try
552
                {
553
                    if (ViewerDataModel.Instance.UndoDataList.Count > 0)
554
                    {
555
                        List<IKCOM.MarkupInfoItem> SelectedMarkupInfos = new List<IKCOM.MarkupInfoItem>();
556
                        foreach (var item in menu.gridViewMarkup.SelectedItems)
557
                        {
558
                            if ((item as IKCOM.MarkupInfoItem).UserID == App.ViewInfo.UserID)
559
                            {
560
                                SelectedMarkupInfos.Add(item as IKCOM.MarkupInfoItem);
561
                            }
562
                        }
563

  
564
                        SaveCommand.Instance.Execute(SelectedMarkupInfos);
565
                    }
566

  
567
                    if (ViewerDataModel.Instance.RotationDocs.Count > 0)
568
                    {
569
                        SaveCommand.Instance.PageAngleSave(App.ViewInfo.ProjectNO, ViewerDataModel.Instance.RotationDocs);
570
                    }
571
                }
572
                catch (Exception ex)
573
                {
574
                    this.ParentOfType<MainWindow>().dzMainMenu.DialogMessage_Alert(string.Format("세이브 실패:{0}", ex.Message), "Alert");
575
                    throw ex;
576
                }
577
            }
578
            else
579
            {
580
                System.Diagnostics.Debug.WriteLine("ExecuteSaveCommand Error - pageNavigator.CurrentPage null");
581
            }
582
        }
476
        /// <returns></returns>
583 477
        public async Task<bool> ExecuteSaveCommandAsync(MainMenu menu)
584 478
        {
585 479
            bool result = false;
......
620 514
                catch (Exception ex)
621 515
                {
622 516
                    this.ParentOfType<MainWindow>().dzMainMenu.DialogMessage_Alert(string.Format("세이브 실패:{0}", ex.Message), "Alert");
623
                    throw ex;
624
                }
625
            }
626
            else
627
            {
628
                System.Diagnostics.Debug.WriteLine("ExecuteSaveCommand Error - pageNavigator.CurrentPage null");
629
            }
630

  
631
            return result;
632
        }
633

  
634
        public bool ExecuteSaveCommand(MainMenu menu)
635
        {
636
            bool result = false;
637

  
638
            if (menu.pageNavigator.CurrentPage != null)
639
            {
640
                SaveCommand.Instance.Project_No = App.ViewInfo.ProjectNO;
641
                SaveCommand.Instance.document_id = App.ViewInfo.DocumentItemID;
642
                SaveCommand.Instance.user_id = App.ViewInfo.UserID;
643
                SaveCommand.Instance.page_no = menu.pageNavigator.CurrentPage.PageNumber;
644

  
645
                try
646
                {
647
                    if (ViewerDataModel.Instance.UndoDataList.Count > 0 || ViewerDataModel.Instance.IsMarkupUpdate)
648
                    {
649
                        List<IKCOM.MarkupInfoItem> SelectedMarkupInfos = new List<IKCOM.MarkupInfoItem>();
650
                        foreach (var item in menu.gridViewMarkup.SelectedItems)
651
                        {
652
                            if ((item as IKCOM.MarkupInfoItem).UserID == App.ViewInfo.UserID)
653
                            {
654
                                SelectedMarkupInfos.Add(item as IKCOM.MarkupInfoItem);
655
                            }
656
                        }
657

  
658
                        result = SaveCommand.Instance.Execute(SelectedMarkupInfos).GetAwaiter().GetResult();
659
                        ViewerDataModel.Instance.IsMarkupUpdate = false;
660
                    }
661
                    else
662
                    {
663
                        result = true;
664
                    }
665

  
666
                    if (ViewerDataModel.Instance.RotationDocs.Count > 0)
667
                    {
668
                        SaveCommand.Instance.PageAngleSave(App.ViewInfo.ProjectNO, ViewerDataModel.Instance.RotationDocs);
669
                    }
670
                }
671
                catch (Exception ex)
672
                {
673
                    this.ParentOfType<MainWindow>().dzMainMenu.DialogMessage_Alert(string.Format("세이브 실패:{0}", ex.Message), "Alert");
674
                    throw ex;
517
                    throw new InvalidOperationException(ex.Message);
675 518
                }
676 519
            }
677 520
            else
KCOM/Events/SaveCommand.cs
80 80

  
81 81
            try
82 82
            {
83

  
84
                SelectionSet.Instance.UnSelect(Common.ViewerDataModel.Instance.SystemMain.dzMainMenu);
85 83
                var mainmenu = Common.ViewerDataModel.Instance.SystemMain.dzMainMenu;
86 84

  
87 85
                foreach (var UserState in UserStates)
88 86
                {
89 87
                    List<MARKUP_DATA> markupdata = new List<MARKUP_DATA>();
90
                    ViewerDataModel.Instance.MyMarkupList.Where(d => d.MarkupInfoID == UserState.MarkupInfoID).ToList().GroupBy(p => p.ID).Select(g => g.First()).ToList().ForEach(value =>
88
                    ViewerDataModel.Instance.MyMarkupList.Where(d => d.MarkupInfoID == UserState.MarkupInfoID).ToList()
89
                        .GroupBy(p => p.ID).Select(g => g.First())
90
                        .OrderBy(x => x.ZIndex).ToList().ForEach(value =>
91 91
                    {
92 92
                        markupdata.Add(new MARKUP_DATA()
93 93
                        {
......
103 103
                    try
104 104
                    {
105 105
                        var SaveResult = await ViewerDataModel.Instance.SystemMain.dzMainMenu.BaseTaskClient.SaveMarkupDataAsync(UserState, Project_No, document_id, user_id, markupdata);
106

  
107 106
                        result = SaveResult;
108 107
                    }
109 108
                    catch(Exception ex)
110 109
                    {
110
                        #region 저장에 실패했을때 다시 시도한다.(다시 시도한다고 될까?)
111 111
                        var client = new KcomService.ServiceDeepViewClient(App._binding, App._EndPoint);
112
                            
113 112
                        var SaveResult = await client.SaveMarkupDataAsync(UserState, Project_No, document_id, user_id, markupdata);
114 113
                        result = SaveResult;
114
                        #endregion
115 115

  
116 116
                        if (!SaveResult)
117 117
                        {
......
128 128
                mainmenu.gridViewMarkup.Rebind();
129 129
                //TempFile.Remove(); //임시파일삭제 
130 130
            }
131
            catch (Exception)
131
            catch (Exception ex)
132 132
            {
133
                throw;
133
                throw new InvalidOperationException(ex.Message);
134 134
            }
135 135

  
136 136
            return result;
KCOM/LEADTOOLS.LIC
1
[Info]
2
Description = License file for LEADTOOLS SDK
3

  
4
[Customer]
5
Company = Unknown
6
Application = Unknown
7
LEADContact = sales-rumi@leadtools.com
8
UserContact = Unknown
9

  
10
[Product]
11
Version = Unknown
12
PurchaseDate = 12/12/2014
13
Product1 = LEADTOOLS
14

  
15
[SerialNumbers]
16
SN = AQAR-BZ8A-AACJ-ALgA
17

  
18
[Unlocks]
19
L_SUPPORT_DOCUMENT
20
L_SUPPORT_BARCODES_1D
21
L_SUPPORT_BARCODES_2D
22
L_SUPPORT_RASTER_PDF_READ
23
L_SUPPORT_RASTER_PDF_SAVE
24
L_SUPPORT_PDF_ADVANCED
25
L_SUPPORT_JBIG2
26
L_SUPPORT_OCR_ADVANTAGE
27
L_SUPPORT_OCR_PLUS
28
L_SUPPORT_OCR_PROFESSIONAL
29
L_SUPPORT_OCR_PROFESSIONAL_ASIAN
30
L_SUPPORT_OCR_ARABIC
31
L_SUPPORT_OCR_ADVANTAGE_PDF_OUTPUT
32
L_SUPPORT_OCR_PLUS_PDF_OUTPUT
33
L_SUPPORT_OCR_PROFESSIONAL_PDF_OUTPUT
34
L_SUPPORT_OCR_ARABIC_PDF_OUTPUT
35
L_SUPPORT_OMR
36
L_SUPPORT_ICR_PLUS
37
L_SUPPORT_ICR_PROFESSIONAL
38
L_SUPPORT_DOCUMENT_WRITERS
39
L_SUPPORT_DOCUMENT_WRITERS_PDF
40
L_SUPPORT_PRINT_DRIVER
41
L_SUPPORT_PRINT_DRIVER_SERVER
42
L_SUPPORT_PRINT_DRIVER_NETWORK
43
L_SUPPORT_FORMS
44
L_SUPPORT_MEDIA_WRITER
45
L_SUPPORT_MEDICAL
46
L_SUPPORT_MEDICAL_3D
47
L_SUPPORT_DICOM_COMMUNICATION
48
L_SUPPORT_CCOW
49
L_SUPPORT_VECTOR
50
L_SUPPORT_CLOUD
51
L_SUPPORT_APP_STORE
52
L_SUPPORT_BASIC
53

  
54
[License]
55
License = <doc><ver>2.0</ver><code>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</code></doc>
KCOM/LEADTOOLS.LIC.KEY
1
gcxLXptTi5bPbVDDR9E+k4CRC8BLLm0IuN383qJp6jPqoMTYamOe1yuYzHqrCmFEN5zDcumaaCTXpO9GpeGal0wjSKF8nxnu
KCOM/Services/BaseServices.cs
372 372
                if (e.Result != null)
373 373
                {
374 374
                    ViewerDataModel.Instance._markupInfoList.Clear();
375
                    if (e.Result.Count > 0) ViewerDataModel.Instance.MyMarkupList.Clear();
375
                    if (e.Result.Any()) ViewerDataModel.Instance.MyMarkupList.Clear();
376 376

  
377 377
                    foreach (var info in e.Result)
378 378
                    {
......
716 716
            {
717 717
                ViewerDataModel.Instance.SyncPageNumber = 1;
718 718
            }
719
            if (e.AddedItems.Count() > 0)
719
            if (e.AddedItems.Any())
720 720
            {
721 721
                foreach (var item in gridSelectionItem)
722 722
                {
......
733 733
                    }
734 734
                }
735 735
            }
736
            else if (e.RemovedItems.Count > 0)
736
            else if (e.RemovedItems.Any())
737 737
            {
738 738
                var _infoItem = e.RemovedItems.Cast<MarkupInfoItem>().ToList();
739 739

  
KCOM/Views/MainMenu.xaml.cs
639 639
        {
640 640
            Logger.sendCheckLog("pageNavigator_PageChanging_ChangeCommentReact", 1);
641 641

  
642
            #region 선택된 객체를 선택 해제한다.(그래야 작업 내용이 적용됨)
643
            SelectionSet.Instance.UnSelect(Common.ViewerDataModel.Instance.SystemMain.dzMainMenu);
644
            #endregion
645

  
642 646
            /// add or update markup list
643 647
            foreach (var control in ViewerDataModel.Instance.MarkupControls_USER)
644 648
            {
645
                var root = MarkupParser.MarkupToString(control, App.ViewInfo.UserID);
649
                var markup = MarkupParser.MarkupToString(control, App.ViewInfo.UserID);
646 650

  
647
                var exist = ViewerDataModel.Instance.MyMarkupList.Find(data => data.ID == root.CommentID);
648
                if (exist != null) //신규 추가 된 코멘트
651
                var exist = ViewerDataModel.Instance.MyMarkupList.Find(data => data.ID == markup.CommentID);
652
                #region 기존 코멘트
653
                if (exist != null) 
649 654
                {
650
                    if (exist.Data != root.ConvertData) //코멘트가 같은지
655
                    if (exist.Data != markup.ConvertData) //코멘트가 같은지
651 656
                    {
652
                        exist.Data = root.ConvertData;
657
                        exist.Data = markup.ConvertData;
658
                        exist.ZIndex = control.ZIndex;
653 659
                        exist.IsUpdate = true;
654 660
                    }
655 661
                }
656
                else if (root.CommentID != null)
662
                #endregion
663
                else if (markup.CommentID != null)
657 664
                {
658 665
                    ViewerDataModel.Instance.MyMarkupList.Add(new MarkupItemEx
659 666
                    {
660 667
                        ID = control.CommentID,
661
                        Data = root.ConvertData,
662
                        Data_Type = root.DATA_TYPE,
668
                        Data = markup.ConvertData,
669
                        Data_Type = markup.DATA_TYPE,
663 670
                        MarkupInfoID = App.Custom_ViewInfoId,
664 671
                        PageNumber = this.pageNavigator.CurrentPage.PageNumber,
665 672
                        Symbol_ID = control.SymbolID,
666
                        //Group_ID = control.GroupID,
673
                        ZIndex = control.ZIndex,
667 674
                    });
668 675
                }
669 676
            }
670

  
671
            //if (this.pageNavigator.CurrentPage != null)
672
            //{
673
            //    /// delete markup list
674
            //    int iPageNo = this.pageNavigator.CurrentPage.PageNumber;
675

  
676
            //    var deleted = (from markup in ViewerDataModel.Instance.MyMarkupList
677
            //                   where (markup.PageNumber == iPageNo)
678
            //                   && (null == ViewerDataModel.Instance.MarkupControls_USER.Where(control => control.CommentID == markup.ID).FirstOrDefault())
679
            //                   select markup).ToList();
680

  
681
            //    foreach (var markup in deleted)
682
            //    {
683
            //        ViewerDataModel.Instance.MyMarkupList.Remove(markup);
684
            //    }
685
            //}
686
            //else
687
            //{
688
            //    System.Diagnostics.Debug.WriteLine("UpdateMyMarkupList : this.pageNavigator.CurrentPage null ");
689
            //}
690

  
691
            /// up to here
692

  
693
            //if (modified)
694
            //{
695
            //    if (ViewerDataModel.Instance._markupInfoList.Where(info => info.UserID == PreviewUserMarkupInfoItem.UserID).FirstOrDefault() == null)
696
            //    {
697
            //        ComingNewBieEnd = true;
698
            //        ViewerDataModel.Instance._markupInfoList.Insert(0, PreviewUserMarkupInfoItem);
699
            //        PreviewUserMarkupInfoItem.IsPreviewUser = false;
700
            //        gridViewMarkup.ItemsSource = null;
701
            //        gridViewMarkup.ItemsSource = ViewerDataModel.Instance._markupInfoList;
702
            //        gridViewMarkup.SelectedItem = PreviewUserMarkupInfoItem;
703

  
704
            //        GroupDescriptor descriptor = new GroupDescriptor();
705
            //        descriptor.Member = "Depatment";
706
            //        descriptor.DisplayContent = "DEPT";
707
            //        descriptor.SortDirection = ListSortDirection.Ascending;
708
            //        gridViewMarkup.GroupDescriptors.Add(descriptor);
709
            //    }
710
            //}
711 677
        }
712 678

  
713 679
        /// <summary>
......
915 881
            instanceMain.dzTopMenu.tlcurrentPage_readonly.Text = e.CurrentPage.PAGE_NUMBER.ToString();
916 882

  
917 883
            instanceMain.dzTopMenu.rotateOffSet = 0;
918
            var pageinfo = this.CurrentDoc.docInfo.DOCPAGE.Where(p => p.PAGE_NUMBER == e.CurrentPage.PAGE_NUMBER).FirstOrDefault();
884
            var pageinfo = this.CurrentDoc.docInfo.DOCPAGE.FirstOrDefault(p => p.PAGE_NUMBER == e.CurrentPage.PAGE_NUMBER);
919 885
            drawingPannelRotate(pageinfo.PAGE_ANGLE);
920 886

  
921 887
            /// 페이지의 모든 마크업을 로드한 후 호출
922 888
            /// 좌측 마크업 list의 아이템을 클릭하는 경우 MarkupControls_USER가 0으로 나와서 추가함.
923 889
            ViewerDataModel.Instance.LoadPageMarkupFinish(new Rect { X = 0, Y = 0, Width = zoomAndPanCanvas.Width, Height = zoomAndPanCanvas.Height });
924

  
925
            //Point startPoint = new Point(15, 15);
926

  
927
            //var markupinfo = ViewerDataModel.Instance._markupInfoList.Where(x => x.UserID == App.ViewInfo.UserID).First();
928

  
929
            ////var rect = GetRectControl(Convert.ToDouble(pageinfo.PAGE_WIDTH), Convert.ToDouble(pageinfo.PAGE_HEIGHT), markupinfo.UserID, markupinfo.MarkupInfoID, startPoint);
930

  
931
            ////var txtApproved = GetTextControl(Convert.ToDouble(pageinfo.PAGE_WIDTH), Convert.ToDouble(pageinfo.PAGE_HEIGHT), markupinfo.UserID, markupinfo.MarkupInfoID,
932
            ////                             "APPROVED",30, FontWeights.Bold, TextAlignment.Center, rect.ItemRect, 15);
933

  
934
            ////var txtCreator = GetTextControl(Convert.ToDouble(pageinfo.PAGE_WIDTH), Convert.ToDouble(pageinfo.PAGE_HEIGHT), markupinfo.UserID, markupinfo.MarkupInfoID
935
            ////                , "By HYOSUNG", 18, FontWeights.Bold, TextAlignment.Center, rect.ItemRect, txtApproved.StartPoint.Y + txtApproved.BoxHeight + 3);
936

  
937
            //var symCtrl = GetSymNControl(Convert.ToDouble(pageinfo.PAGE_WIDTH), Convert.ToDouble(pageinfo.PAGE_HEIGHT), markupinfo.UserID, markupinfo.MarkupInfoID, startPoint);
938

  
939
            //var bottom = Rect.Offset(symCtrl.ItemRect, new Vector(0, symCtrl.ItemRect.Height));
940

  
941
            //var txtOriginator = GetTextControl(Convert.ToDouble(pageinfo.PAGE_WIDTH), Convert.ToDouble(pageinfo.PAGE_HEIGHT), markupinfo.UserID, markupinfo.MarkupInfoID
942
            //               , App.ViewInfo.UserID, 18, FontWeights.Bold, TextAlignment.Left, bottom, bottom.Top + 3);
943

  
944
            //var dtfi = new System.Globalization.DateTimeFormatInfo { DateSeparator = "-", ShortDatePattern = @"yyyy/MM/dd" };
945

  
946
            //var txtDate = GetTextControl(Convert.ToDouble(pageinfo.PAGE_WIDTH), Convert.ToDouble(pageinfo.PAGE_HEIGHT), markupinfo.UserID, markupinfo.MarkupInfoID
947
            //               , DateTime.Now.ToString("d", dtfi), 18, FontWeights.Bold, TextAlignment.Left, bottom, txtOriginator.StartPoint.Y + txtOriginator.BoxHeight + 2);
948

  
949
            //ViewerDataModel.Instance.MarkupControls_USER.Add(symCtrl);
950
            ////ViewerDataModel.Instance.MarkupControls_USER.Add(txtApproved);
951
            ////ViewerDataModel.Instance.MarkupControls_USER.Add(txtCreator);
952
            //ViewerDataModel.Instance.MarkupControls_USER.Add(txtOriginator);
953
            //ViewerDataModel.Instance.MarkupControls_USER.Add(txtDate);
954

  
955
            //symCtrl.ApplyTemplate();
956
            ////txtApproved.ApplyTemplate();
957
            ////txtCreator.ApplyTemplate();
958
            //txtOriginator.ApplyTemplate();
959
            //txtDate.ApplyTemplate();
960

  
961
            ////SetTextControl(txtApproved);
962
            ////SetTextControl(txtCreator);
963
            //SetTextControl(txtOriginator);
964
            //SetTextControl(txtDate);
965

  
966
            //multi_UndoData = new Multi_UndoData();
967

  
968
            //MarkupToPDF.Common.UndoData UndoData = new UndoData()
969
            //{
970
            //    IsUndo = false,
971
            //    Event = EventType.Create,
972
            //    EventTime = DateTime.Now,
973
            //    MarkupDataColl = new List<Multi_UndoData>()
974
            //};
975

  
976
            //multi_UndoData = Common.ViewerDataModel.Instance.SystemMain.dzMainMenu.Control_Style(symCtrl as MarkupToPDF.Common.CommentUserInfo);
977
            //UndoData.MarkupDataColl.Add(multi_UndoData);
978

  
979
            ////multi_UndoData = Common.ViewerDataModel.Instance.SystemMain.dzMainMenu.Control_Style(txtApproved as MarkupToPDF.Common.CommentUserInfo);
980
            ////UndoData.MarkupDataColl.Add(multi_UndoData);
981

  
982
            ////multi_UndoData = Common.ViewerDataModel.Instance.SystemMain.dzMainMenu.Control_Style(txtCreator as MarkupToPDF.Common.CommentUserInfo);
983
            ////UndoData.MarkupDataColl.Add(multi_UndoData);
984

  
985
            //multi_UndoData = Common.ViewerDataModel.Instance.SystemMain.dzMainMenu.Control_Style(txtOriginator as MarkupToPDF.Common.CommentUserInfo);
986
            //UndoData.MarkupDataColl.Add(multi_UndoData);
987

  
988
            //multi_UndoData = Common.ViewerDataModel.Instance.SystemMain.dzMainMenu.Control_Style(txtDate as MarkupToPDF.Common.CommentUserInfo);
989
            //UndoData.MarkupDataColl.Add(multi_UndoData);
990

  
991
            //ViewerDataModel.Instance.UndoDataList.Add(UndoData);
992

  
993
            //System.Diagnostics.Debug.WriteLine(symCtrl.GetMarkupData(App.ViewInfo.UserID, 1, markupinfo.MarkupVersionID).DATA);
994
            ////System.Diagnostics.Debug.WriteLine(txtApproved.GetMarkupData(App.ViewInfo.UserID, 1, markupinfo.MarkupVersionID).DATA);
995
            ////System.Diagnostics.Debug.WriteLine(txtCreator.GetMarkupData(App.ViewInfo.UserID, 1, markupinfo.MarkupVersionID).DATA);
996
            //System.Diagnostics.Debug.WriteLine(txtOriginator.GetMarkupData(App.ViewInfo.UserID, 1, markupinfo.MarkupVersionID).DATA);
997
            //System.Diagnostics.Debug.WriteLine(txtDate.GetMarkupData(App.ViewInfo.UserID, 1, markupinfo.MarkupVersionID).DATA);
998 890
        }
999 891

  
1000 892
        private void SetTextControl(TextControl textControl)
......
1161 1053
            return e.DesiredSize;
1162 1054
        }
1163 1055

  
1056
        /// <summary>
1057
        /// 주어진 pageNumber의 마크업 데이터를 읽어 화면에 표시한다.
1058
        /// </summary>
1059
        /// <param name="pageNumber"></param>
1060
        /// <param name="PageAngle"></param>
1061
        /// <param name="cts"></param>
1062
        /// <returns></returns>
1164 1063
        private async Task MarkupLoadAsync(int pageNumber,Double PageAngle, CancellationToken cts)
1165 1064
        {
1166 1065
            System.Diagnostics.Stopwatch stopwatch = new Stopwatch();
1167 1066
            stopwatch.Start();
1168 1067

  
1169
            /// 컨트롤을 새로 생성한다.
1068
            #region 컨트롤을 새로 생성한다.
1170 1069
            Common.ViewerDataModel.Instance.MarkupControls_USER.Clear();    //전체 제거
1171 1070
            Common.ViewerDataModel.Instance.MarkupControls.Clear();         //전체 제거
1172 1071

  
......
1179 1078
                    return;
1180 1079
                }
1181 1080

  
1182
                var info = ViewerDataModel.Instance._markupInfoList.Where(param => param.MarkupInfoID == markup.MarkupInfoID).FirstOrDefault();
1081
                var info = ViewerDataModel.Instance._markupInfoList.FirstOrDefault(param => param.MarkupInfoID == markup.MarkupInfoID);
1183 1082
                if (info != null)
1184 1083
                {
1185 1084
                    string sColor = (info.UserID == App.ViewInfo.UserID) ? "#FFFF0000" : info.DisplayColor;
......
1187 1086
                    {
1188 1087
                        var control = await MarkupParser.ParseExAsync(App.BaseAddress, cts, App.ViewInfo.ProjectNO, markup.Data, Common.ViewerDataModel.Instance.MarkupControls_USER, PageAngle, sColor, "",
1189 1088
                                        markup.MarkupInfoID, markup.ID);
1089
                        Canvas.SetZIndex(control, (control as CommentUserInfo).ZIndex);
1190 1090
                        control.Visibility = Visibility.Hidden;
1191 1091
                    }
1192 1092
                    else
1193 1093
                    {
1194 1094
                        var control = await MarkupParser.ParseExAsync(App.BaseAddress, cts, App.ViewInfo.ProjectNO, markup.Data, Common.ViewerDataModel.Instance.MarkupControls, PageAngle, sColor, "",
1195 1095
                                                                markup.MarkupInfoID, markup.ID);
1096
                        Canvas.SetZIndex(control, (control as CommentUserInfo).ZIndex);
1196 1097
                        control.Visibility = Visibility.Hidden;
1197 1098
                    }
1198 1099
                }
1199
            };
1200
            /// up to here
1100
            }
1101
            #endregion
1201 1102

  
1202 1103
            System.Diagnostics.Debug.WriteLine("MarkupLoad - MarkupParser " + new TimeSpan(stopwatch.ElapsedTicks).ToString());
1203 1104

  
1204 1105
            /// fire selection event
1205
            // DIG 요청으로 첫 로드시 전체 선택 되도록 수정 2024-06-04 IRON
1206
            // 다른 페이지 넘어갈 시 메시지 박스가 여러개 떠서 추가기능 주석 처리 2024-06-05 IRON
1207
            //gridViewMarkup.SelectAll(); 
1208 1106
            List<MarkupInfoItem> gridSelectionItem = gridViewMarkup.SelectedItems.Cast<MarkupInfoItem>().ToList(); //선택 된 마크업
1209 1107
            this.gridViewMarkup.UnselectAll();
1210 1108
            this.gridViewMarkup.Select(gridSelectionItem);
......
4971 4869
            }
4972 4870
        }
4973 4871

  
4872
        /// <summary>
4873
        /// Final PDF를 실행한다.
4874
        /// </summary>
4875
        /// <param name="sender"></param>
4876
        /// <param name="e"></param>
4974 4877
        private async void FinalPDFEvent(object sender, RoutedEventArgs e)
4975 4878
        {
4976
            SelectionSet.Instance.UnSelect(this.ParentOfType<MainWindow>().dzMainMenu);
4977 4879
            // update mylist and gridview
4978 4880
            this.UpdateMyMarkupList();
4979 4881

  
......
4985 4887
            }
4986 4888
            else
4987 4889
            {
4988
                var item = gridViewMarkup.Items.Cast<MarkupInfoItem>().Where(d => d.Consolidate == 1 && d.AvoidConsolidate == 0).FirstOrDefault();
4989

  
4890
                var item = gridViewMarkup.Items.Cast<MarkupInfoItem>().FirstOrDefault(d => d.Consolidate == 1 && d.AvoidConsolidate == 0);
4990 4891
                if (item != null)
4991 4892
                {
4992 4893
                    if (BaseClient.FinalPDF_GetFinalPDFStatus(_DocInfo.ID, item.MarkupInfoID, _ViewInfo.UserID))
......
5008 4909
                    DialogMessage_Alert("Consolidation 된 코멘트가 존재하지 않습니다", "안내");
5009 4910
                }
5010 4911
            }
5011

  
5012 4912
        }
5013 4913

  
5014 4914
        private void btnFinalPDF_Loaded(object sender, RoutedEventArgs e)
MarkupToPDF/Common/CommentUserInfo.cs
3 3
using MarkupToPDF.Controls.Parsing;
4 4
using System;
5 5
using System.Collections.Generic;
6
using System.ComponentModel;
6 7
using System.Linq;
7 8
using System.Text;
8 9
using System.Windows;
......
33 34
        public string SymbolID { get; set; }
34 35
        public long GroupID { get; set; }
35 36

  
37
        [Description("ZIndex 값이 높을 수록 앞쪽으로 배치된다.")]
38
        public int ZIndex { get; set; } = 0;
39

  
36 40
        private SolidColorBrush _TempBorderBrush { get; set; }
37
        private SolidColorBrush _HoverBorderBrush = new SolidColorBrush(Color.FromRgb(255, 0, 255));
41
        private SolidColorBrush _HoverBorderBrush { get; } = new SolidColorBrush(Color.FromRgb(255, 0, 255));
38 42

  
39 43
        public CommentUserInfo()
40 44
        {
MarkupToPDF/Controls/Cad/ClipWhiteControlcs.cs
599 599
        /// <returns></returns>
600 600
        public override string Serialize()
601 601
        {
602
            using (S_ClipWhiteControl STemp = new S_ClipWhiteControl())
603
            {
604
                STemp.TransformPoint = "0|0";
605
                STemp.SizeSet = String.Format("{0}", this.LineSize);
606
                STemp.PaintState = this.Paint;
607
                STemp.PointSet = this.PointSet;
608
                //STemp.StrokeColor = "#FF00FF00";
609
                STemp.StrokeColor = this.StrokeColor.Color.ToString();
602
            using (S_ClipWhiteControl ctrl = new S_ClipWhiteControl())
603
            {
604
                ctrl.TransformPoint = "0|0";
605
                ctrl.SizeSet = String.Format("{0}", this.LineSize);
606
                ctrl.PaintState = this.Paint;
607
                ctrl.PointSet = this.PointSet;
608
                //ctrl.StrokeColor = "#FF00FF00";
609
                ctrl.StrokeColor = this.StrokeColor.Color.ToString();
610 610
                if (this.FillColor != null)
611 611
                {
612
                    STemp.FillColor = this.FillColor.Color.ToString();
612
                    ctrl.FillColor = this.FillColor.Color.ToString();
613 613
                }
614
                STemp.StartPoint = this.StartPoint;
615
                STemp.UserID = this.UserID;
616
                STemp.EndPoint = this.EndPoint;
617
                STemp.LB = this.LeftBottomPoint;
618
                STemp.TR = this.TopRightPoint;
619
                STemp.DashSize = this.DashSize;
620
                STemp.Opac = this.Opacity;
621
                STemp.Name = this.GetType().Name.ToString();
622
                STemp.Memo = this.Memo;
623

  
624
                return "|DZ|" + JsonSerializerHelper.CompressString((STemp.JsonSerialize()));
614
                ctrl.StartPoint = this.StartPoint;
615
                ctrl.UserID = this.UserID;
616
                ctrl.EndPoint = this.EndPoint;
617
                ctrl.LB = this.LeftBottomPoint;
618
                ctrl.TR = this.TopRightPoint;
619
                ctrl.DashSize = this.DashSize;
620
                ctrl.Opac = this.Opacity;
621
                ctrl.Name = this.GetType().Name.ToString();
622
                ctrl.Memo = this.Memo;
623
                ctrl.ZIndex = this.ZIndex;
624

  
625
                return "|DZ|" + JsonSerializerHelper.CompressString((ctrl.JsonSerialize()));
625 626
            };
626 627
        }
627 628

  
......
650 651
                    PointSet = s.PointSet,
651 652
                    UserID = s.UserID,
652 653
                    FillColor = Brushes.White,
653
                    Memo = s.Memo
654
                    Memo = s.Memo,
655
                    ZIndex = s.ZIndex
654 656
                };
655 657
            }
656 658
        }
MarkupToPDF/Controls/Cad/CoordinateControl.cs
598 598
        /// <returns></returns>
599 599
        public override string Serialize()
600 600
        {
601
            using (S_CoordinateControl STemp = new S_CoordinateControl())
602
            {
603
                STemp.TransformPoint = "0|0";
604
                STemp.SizeSet = String.Format("{0}", this.LineSize);
605
                STemp.PaintState = this.Paint;
606
                STemp.PointSet = this.PointSet;
607
                //STemp.StrokeColor = "#FF00FF00";
608
                STemp.StrokeColor = this.StrokeColor.Color.ToString();
601
            using (S_CoordinateControl ctrl = new S_CoordinateControl())
602
            {
603
                ctrl.TransformPoint = "0|0";
604
                ctrl.SizeSet = String.Format("{0}", this.LineSize);
605
                ctrl.PaintState = this.Paint;
606
                ctrl.PointSet = this.PointSet;
607
                //ctrl.StrokeColor = "#FF00FF00";
608
                ctrl.StrokeColor = this.StrokeColor.Color.ToString();
609 609
                if (this.FillColor != null)
610 610
                {
611
                    STemp.FillColor = this.FillColor.Color.ToString();
611
                    ctrl.FillColor = this.FillColor.Color.ToString();
612 612
                }
613
                STemp.StartPoint = this.StartPoint;
614
                STemp.UserID = this.UserID;
615
                STemp.EndPoint = this.EndPoint;
616
                STemp.LB = this.LeftBottomPoint;
617
                STemp.TR = this.TopRightPoint;
618
                STemp.DashSize = this.DashSize;
619
                STemp.Opac = this.Opacity;
620
                STemp.Name = this.GetType().Name.ToString();
621
                STemp.Memo = this.Memo;
622

  
623
                return "|DZ|" + JsonSerializerHelper.CompressString((STemp.JsonSerialize()));
613
                ctrl.StartPoint = this.StartPoint;
614
                ctrl.UserID = this.UserID;
615
                ctrl.EndPoint = this.EndPoint;
616
                ctrl.LB = this.LeftBottomPoint;
617
                ctrl.TR = this.TopRightPoint;
618
                ctrl.DashSize = this.DashSize;
619
                ctrl.Opac = this.Opacity;
620
                ctrl.Name = this.GetType().Name.ToString();
621
                ctrl.Memo = this.Memo;
622
                ctrl.ZIndex = this.ZIndex;
623

  
624
                return "|DZ|" + JsonSerializerHelper.CompressString((ctrl.JsonSerialize()));
624 625
            };
625 626
        }
626 627

  
......
649 650
                    PointSet = s.PointSet,
650 651
                    UserID = s.UserID,
651 652
                    //  FillColor = Brushes.Yellow,
652
                    Memo = s.Memo
653
                    Memo = s.Memo,
654
                    ZIndex = s.ZIndex
653 655
                };
654 656
            }
655 657
        }
MarkupToPDF/Controls/Cad/InsideWhiteControlcs.cs
599 599
        /// <returns></returns>
600 600
        public override string Serialize()
601 601
        {
602
            using (S_InsideWhiteControl STemp = new S_InsideWhiteControl())
603
            {
604
                STemp.TransformPoint = "0|0";
605
                STemp.SizeSet = String.Format("{0}", this.LineSize);
606
                STemp.PaintState = this.Paint;
607
                STemp.PointSet = this.PointSet;
608
                //STemp.StrokeColor = "#FF00FF00";
609
                STemp.StrokeColor = this.StrokeColor.Color.ToString();
602
            using (S_InsideWhiteControl ctrl = new S_InsideWhiteControl())
603
            {
604
                ctrl.TransformPoint = "0|0";
605
                ctrl.SizeSet = String.Format("{0}", this.LineSize);
606
                ctrl.PaintState = this.Paint;
607
                ctrl.PointSet = this.PointSet;
608
                //ctrl.StrokeColor = "#FF00FF00";
609
                ctrl.StrokeColor = this.StrokeColor.Color.ToString();
610 610
                if (this.FillColor != null)
611 611
                {
612
                    STemp.FillColor = this.FillColor.Color.ToString();
612
                    ctrl.FillColor = this.FillColor.Color.ToString();
613 613
                }
614
                STemp.StartPoint = this.StartPoint;
615
                STemp.UserID = this.UserID;
616
                STemp.EndPoint = this.EndPoint;
617
                STemp.LB = this.LeftBottomPoint;
618
                STemp.TR = this.TopRightPoint;
619
                STemp.DashSize = this.DashSize;
620
                STemp.Opac = this.Opacity;
621
                STemp.Name = this.GetType().Name.ToString();
622
                STemp.Memo = this.Memo;
623

  
624
                return "|DZ|" + JsonSerializerHelper.CompressString((STemp.JsonSerialize()));
614
                ctrl.StartPoint = this.StartPoint;
615
                ctrl.UserID = this.UserID;
616
                ctrl.EndPoint = this.EndPoint;
617
                ctrl.LB = this.LeftBottomPoint;
618
                ctrl.TR = this.TopRightPoint;
619
                ctrl.DashSize = this.DashSize;
620
                ctrl.Opac = this.Opacity;
621
                ctrl.Name = this.GetType().Name.ToString();
622
                ctrl.Memo = this.Memo;
623
                ctrl.ZIndex = this.ZIndex;
624

  
625
                return "|DZ|" + JsonSerializerHelper.CompressString((ctrl.JsonSerialize()));
625 626
            };
626 627
        }
627 628

  
......
650 651
                    PointSet = s.PointSet,
651 652
                    UserID = s.UserID,
652 653
                    FillColor = Brushes.White,
653
                    Memo = s.Memo
654
                    Memo = s.Memo,
655
                    ZIndex = s.ZIndex
654 656
                };
655 657
            }
656 658
        }
MarkupToPDF/Controls/Cad/OverlapWhiteControl.cs
599 599
        /// <returns></returns>
600 600
        public override string Serialize()
601 601
        {
602
            using (S_OverlapWhiteControl STemp = new S_OverlapWhiteControl())
603
            {
604
                STemp.TransformPoint = "0|0";
605
                STemp.SizeSet = String.Format("{0}", this.LineSize);
606
                STemp.PaintState = this.Paint;
607
                STemp.PointSet = this.PointSet;
608
                //STemp.StrokeColor = "#FF00FF00";
609
                STemp.StrokeColor = this.StrokeColor.Color.ToString();
602
            using (S_OverlapWhiteControl ctrl = new S_OverlapWhiteControl())
603
            {
604
                ctrl.TransformPoint = "0|0";
605
                ctrl.SizeSet = String.Format("{0}", this.LineSize);
606
                ctrl.PaintState = this.Paint;
607
                ctrl.PointSet = this.PointSet;
608
                //ctrl.StrokeColor = "#FF00FF00";
609
                ctrl.StrokeColor = this.StrokeColor.Color.ToString();
610 610
                if (this.FillColor != null)
611 611
                {
612
                    STemp.FillColor = this.FillColor.Color.ToString();
612
                    ctrl.FillColor = this.FillColor.Color.ToString();
613 613
                }
614
                STemp.StartPoint = this.StartPoint;
615
                STemp.UserID = this.UserID;
616
                STemp.EndPoint = this.EndPoint;
617
                STemp.LB = this.LeftBottomPoint;
618
                STemp.TR = this.TopRightPoint;
619
                STemp.DashSize = this.DashSize;
620
                STemp.Opac = this.Opacity;
621
                STemp.Name = this.GetType().Name.ToString();
622
                STemp.Memo = this.Memo;
623

  
624
                return "|DZ|" + JsonSerializerHelper.CompressString((STemp.JsonSerialize()));
614
                ctrl.StartPoint = this.StartPoint;
615
                ctrl.UserID = this.UserID;
616
                ctrl.EndPoint = this.EndPoint;
617
                ctrl.LB = this.LeftBottomPoint;
618
                ctrl.TR = this.TopRightPoint;
619
                ctrl.DashSize = this.DashSize;
620
                ctrl.Opac = this.Opacity;
621
                ctrl.Name = this.GetType().Name.ToString();
622
                ctrl.Memo = this.Memo;
623
                ctrl.ZIndex = this.ZIndex;
624

  
625
                return "|DZ|" + JsonSerializerHelper.CompressString((ctrl.JsonSerialize()));
625 626
            };
626 627
        }
627 628

  
......
650 651
                    PointSet = s.PointSet,
651 652
                    UserID = s.UserID,
652 653
                    FillColor = Brushes.White,
653
                    Memo = s.Memo
654
                    Memo = s.Memo,
655
                    ZIndex = s.ZIndex
654 656
                };
655 657
            }
656 658
        }
MarkupToPDF/Controls/Etc/DateControl.cs
57 57
                PointSet = item.PointSet.ConvertAll(x => new Point(x.X, x.Y));
58 58
                UserID = item.UserID;
59 59
                Memo = item.Memo;
60
                ZIndex = item.ZIndex;
60 61
            }
61 62
        }
62 63

  
......
580 581
        /// <returns></returns>
581 582
        public override string Serialize()
582 583
        {
583
            using (S_DateControl STemp = new S_DateControl())
584
            using (S_DateControl ctrl = new S_DateControl())
584 585
            {
585
                STemp.Angle = this.CommentAngle;
586
                STemp.EndPoint = this.EndPoint;
587
                STemp.UserID = this.UserID;
588
                STemp.LB = this.LeftBottomPoint;
589
                STemp.Name = this.GetType().Name;
590
                STemp.PointSet = this.PointSet;
591
                STemp.StartPoint = this.StartPoint;
592
                STemp.Opac = this.Opacity;
593
                STemp.TR = this.TopRightPoint;
594
                STemp.TransformPoint = "0|0";
595
                STemp.FontColor = this.FontColor.Color.ToString();
596
                //STemp.FontColor = "#FFFFFF00";
597
                STemp.SizeSet = String.Format("{0}", this.LineSize);
598
                STemp.Text = this.Text;
586
                ctrl.Angle = this.CommentAngle;
587
                ctrl.EndPoint = this.EndPoint;
588
                ctrl.UserID = this.UserID;
589
                ctrl.LB = this.LeftBottomPoint;
590
                ctrl.Name = this.GetType().Name;
591
                ctrl.PointSet = this.PointSet;
592
                ctrl.StartPoint = this.StartPoint;
593
                ctrl.Opac = this.Opacity;
594
                ctrl.TR = this.TopRightPoint;
595
                ctrl.TransformPoint = "0|0";
596
                ctrl.FontColor = this.FontColor.Color.ToString();
597
                //ctrl.FontColor = "#FFFFFF00";
598
                ctrl.SizeSet = String.Format("{0}", this.LineSize);
599
                ctrl.Text = this.Text;
599 600
                ///강인구 추가(2017.11.02)
600 601
                ///Memo 추가
601
                STemp.Memo = this.Memo;
602
                ctrl.Memo = this.Memo;
602 603

  
603
                return "|DZ|" + JsonSerializerHelper.CompressString((STemp.JsonSerialize()));
604
                ctrl.ZIndex = this.ZIndex;
605

  
606
                return "|DZ|" + JsonSerializerHelper.CompressString((ctrl.JsonSerialize()));
604 607
            }
605 608
        }
606 609

  
......
627 630
                    Text = s.Text,
628 631
                    PointSet = s.PointSet,
629 632
                    UserID = s.UserID,
630
                    Memo = s.Memo
633
                    Memo = s.Memo,
634
                    ZIndex = s.ZIndex
631 635
                };
632 636
            }
633 637
        }
MarkupToPDF/Controls/Etc/ImgControl.cs
58 58
                this.UserID = imgControl.UserID;
59 59
                this.ImageData = imgControl.ImageData;
60 60
                this.Memo = imgControl.Memo;
61
                this.ZIndex = imgControl.ZIndex;
61 62
            }
62 63
        }
63 64

  
......
506 507
        /// <returns></returns>
507 508
        public override string Serialize()
508 509
        {
509
            using (S_ImgControl STemp = new S_ImgControl())
510
            using (S_ImgControl ctrl = new S_ImgControl())
510 511
            {
511
                STemp.Angle = this.CommentAngle;
512
                STemp.EndPoint = this.EndPoint;
513
                STemp.LB = this.LeftBottomPoint;
514
                STemp.Name = this.GetType().Name;
515
                STemp.PointSet = this.PointSet;
516
                STemp.StartPoint = this.StartPoint;
517
                STemp.UserID = this.UserID;
518
                STemp.Opac = this.Opacity;
519
                STemp.TR = this.TopRightPoint;
520
                STemp.ImagePath = this.FilePath;
512
                ctrl.Angle = this.CommentAngle;
513
                ctrl.EndPoint = this.EndPoint;
514
                ctrl.LB = this.LeftBottomPoint;
515
                ctrl.Name = this.GetType().Name;
516
                ctrl.PointSet = this.PointSet;
517
                ctrl.StartPoint = this.StartPoint;
518
                ctrl.UserID = this.UserID;
519
                ctrl.Opac = this.Opacity;
520
                ctrl.TR = this.TopRightPoint;
521
                ctrl.ImagePath = this.FilePath;
521 522
                ///강인구 추가(2017.11.02)
522 523
                ///Memo 추가
523
                STemp.Memo = this.Memo;
524
                ctrl.Memo = this.Memo;
524 525

  
525
                return "|DZ|" + JsonSerializerHelper.CompressString((STemp.JsonSerialize()));
526
                ctrl.ZIndex = this.ZIndex;
527

  
528
                return "|DZ|" + JsonSerializerHelper.CompressString((ctrl.JsonSerialize()));
526 529
            }
527 530
        }
528 531

  
......
566 569
                    FilePath = uri.Uri.ToString(),
567 570
                    UserID = s.UserID,
568 571
                    ImageData = img.Source,
569
                    Memo = s.Memo 
572
                    Memo = s.Memo,
573
                    ZIndex = s.ZIndex
570 574
                };
571 575

  
572 576
                instance.ImageData = img.Source;
MarkupToPDF/Controls/Etc/SignControl.cs
57 57
                this.UserID = item.UserID;
58 58
                this.UserNumber = item.UserNumber;
59 59
                this.Memo = item.Memo;
60
                this.ZIndex = item.ZIndex;
60 61
            }
61 62
        }
62 63

  
......
488 489
        /// <returns></returns>
489 490
        public override string Serialize()
490 491
        {
491
            using (S_SignControl STemp = new S_SignControl())
492
            using (S_SignControl ctrl = new S_SignControl())
492 493
            {
493
                STemp.Angle = this.CommentAngle;
494
                STemp.EndPoint = this.EndPoint;
495
                STemp.UserID = this.UserID;
496
                STemp.LB = this.LeftBottomPoint;
497
                STemp.Name = this.GetType().Name;
498
                STemp.PointSet = this.PointSet;
499
                STemp.StartPoint = this.StartPoint;
500
                STemp.Opac = this.Opacity;
501
                STemp.TR = this.TopRightPoint;
502
                STemp.UserNumber = this.UserNumber == null ? this.UserID: this.UserNumber;
494
                ctrl.Angle = this.CommentAngle;
495
                ctrl.EndPoint = this.EndPoint;
496
                ctrl.UserID = this.UserID;
497
                ctrl.LB = this.LeftBottomPoint;
498
                ctrl.Name = this.GetType().Name;
499
                ctrl.PointSet = this.PointSet;
500
                ctrl.StartPoint = this.StartPoint;
501
                ctrl.Opac = this.Opacity;
502
                ctrl.TR = this.TopRightPoint;
503
                ctrl.UserNumber = this.UserNumber == null ? this.UserID: this.UserNumber;
503 504

  
504 505
                ///강인구 추가(2017.11.02)
505 506
                ///Memo 추가
506
                STemp.Memo = this.Memo;
507
                ctrl.Memo = this.Memo;
507 508

  
508
                return "|DZ|" + JsonSerializerHelper.CompressString((STemp.JsonSerialize()));
509
                ctrl.ZIndex = this.ZIndex;
510

  
511
                return "|DZ|" + JsonSerializerHelper.CompressString((ctrl.JsonSerialize()));
509 512
            }
510 513
        }
511 514

  
......
531 534
                    SignImage = null,
532 535
                    UserID = s.UserID,
533 536
                    UserNumber = s.UserNumber,
534
                    Memo = s.Memo
537
                    Memo = s.Memo,
538
                    ZIndex = s.ZIndex
535 539
                };
... 이 차이점은 표시할 수 있는 최대 줄수를 초과해서 이 차이점은 잘렸습니다.

내보내기 Unified diff

클립보드 이미지 추가 (최대 크기: 500 MB)