프로젝트

일반

사용자정보

통계
| 브랜치(Branch): | 개정판:

markus / KCOM / Events / SaveCommand.cs @ e755dd44

이력 | 보기 | 이력해설 | 다운로드 (6.49 KB)

1 787a4489 KangIngu
using IKCOM;
2
using KCOM.Common;
3
using KCOMDataModel.Common;
4
using KCOMDataModel.DataModel;
5
using MarkupToPDF.Common;
6
using MarkupToPDF.Controls.Parsing;
7
using System;
8
using System.Collections.Generic;
9 c00d0547 humkyung
using System.Collections.ObjectModel;
10 787a4489 KangIngu
using System.Linq;
11
using System.Text;
12 b42dd24d taeseongkim
using System.Threading.Tasks;
13 787a4489 KangIngu
using System.Windows.Controls;
14 6a19b48d taeseongkim
using System.Windows.Input;
15 787a4489 KangIngu
16
namespace KCOM.Events
17
{
18 de6499db humkyung
    public class SaveCommand
19 787a4489 KangIngu
    {
20 de6499db humkyung
        private static readonly SaveCommand _instance = new SaveCommand();
21
22
        // Explicit static constructor to tell C# compiler
23
        // not to mark type as beforefieldinit
24
        static SaveCommand()
25
        {
26
        }
27
28
        private SaveCommand()
29
        {
30
        }
31
32
        public static SaveCommand Instance
33
        {
34
            get
35
            {
36
                return _instance;
37
            }
38
        }
39
40 787a4489 KangIngu
        #region Properties
41
42
        public ViewInfo _ViewInfo;
43
        public string Project_No
44
        {
45
            get;
46
            set;
47
        }
48
        public string document_id
49
        {
50
            get;
51
            set;
52
        }
53
54
        public string user_id
55
        {
56
            get;
57
            set;
58
        }
59
60
        public int page_no
61
        {
62
            get;
63
            set;
64
        }
65
        #endregion
66
67
        public void MarkupConsolidate()
68
        {
69
70
        }
71
72 de6499db humkyung
        /// <summary>
73
        /// save comments related to given markup information
74
        /// </summary>
75
        /// <param name="UserState"></param>
76
        /// <param name="iPageNo"></param>
77 b42dd24d taeseongkim
        public async Task<bool> Execute(ICollection<MarkupInfoItem> UserStates)
78 787a4489 KangIngu
        {
79 b42dd24d taeseongkim
            bool result = false;
80
81 6c781c0c djkim
            try
82 787a4489 KangIngu
            {
83 eeb0a39c taeseongkim
                var mainmenu = Common.ViewerDataModel.Instance.SystemMain.dzMainMenu;
84
85 de6499db humkyung
                foreach (var UserState in UserStates)
86 787a4489 KangIngu
                {
87 de6499db humkyung
                    List<MARKUP_DATA> markupdata = new List<MARKUP_DATA>();
88 b2d0f316 humkyung
                    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 de6499db humkyung
                    {
92 c00d0547 humkyung
                        markupdata.Add(new MARKUP_DATA()
93
                        {
94
                            ID = value.ID,
95
                            PAGENUMBER = value.PageNumber,
96
                            DATA = value.Data,
97
                            MARKUPINFO_VERSION_ID = UserState.MarkupVersionID,
98
                            DATA_TYPE = value.Data_Type
99
                        });
100 6a19b48d taeseongkim
                        System.Diagnostics.Debug.WriteLine(value.ID);
101 de6499db humkyung
                    });
102 6b6e937c taeseongkim
103 2b1f30fe taeseongkim
                    try
104
                    {
105
                        var SaveResult = await ViewerDataModel.Instance.SystemMain.dzMainMenu.BaseTaskClient.SaveMarkupDataAsync(UserState, Project_No, document_id, user_id, markupdata);
106
                        result = SaveResult;
107
                    }
108
                    catch(Exception ex)
109
                    {
110 b2d0f316 humkyung
                        #region 저장에 실패했을때 다시 시도한다.(다시 시도한다고 될까?)
111 2b1f30fe taeseongkim
                        var client = new KcomService.ServiceDeepViewClient(App._binding, App._EndPoint);
112
                        var SaveResult = await client.SaveMarkupDataAsync(UserState, Project_No, document_id, user_id, markupdata);
113
                        result = SaveResult;
114 b2d0f316 humkyung
                        #endregion
115 2b1f30fe taeseongkim
116
                        if (!SaveResult)
117
                        {
118
                            Logger.sendResLog("SaveCommand.Instance.Execute", ex.ToString(), 1);
119
                        }
120
                    }
121 b42dd24d taeseongkim
122 664ea2e1 taeseongkim
                    //Logger.sendResLog("SaveCommand.Instance.Execute" , $"SaveMarkupData Call Project : {Project_No} DocID :{document_id} User ID {user_id} result {SaveResult}",1);
123 6b6e937c taeseongkim
124 eeb0a39c taeseongkim
                    mainmenu.MarkupitemViewUpdate(UserState.MarkupInfoID);
125 de6499db humkyung
                }
126 073f6118 djkim
                //User Information List Rebind
127 eeb0a39c taeseongkim
128
                mainmenu.gridViewMarkup.Rebind();
129 2b1f30fe taeseongkim
                //TempFile.Remove(); //임시파일삭제 
130 787a4489 KangIngu
            }
131 b2d0f316 humkyung
            catch (Exception ex)
132 6c781c0c djkim
            {
133 b2d0f316 humkyung
                throw new InvalidOperationException(ex.Message);
134 6c781c0c djkim
            }
135 b42dd24d taeseongkim
136
            return result;
137 787a4489 KangIngu
        }
138
139
        public void SymbolSave(string Name, string Url, string Data)
140
        {
141 6c781c0c djkim
            try
142 787a4489 KangIngu
            {
143
                SYMBOL_PRIVATE symbol_private = new SYMBOL_PRIVATE
144
                {
145 24678e06 humkyung
                    ID = Commons.shortGuid(),
146 787a4489 KangIngu
                    MEMBER_USER_ID = App.ViewInfo.UserID,
147
                    NAME = Name,
148
                    IMAGE_URL = Url,
149
                    DATA = Data
150
                };
151 0f065e57 ljiyeon
152 664ea2e1 taeseongkim
                //Logger.sendReqLog("SaveSymbolAsync: ", symbol_private.ID + "," + symbol_private.MEMBER_USER_ID + "," + symbol_private.NAME + "," + symbol_private.IMAGE_URL + "," + symbol_private.DATA, 1);
153 6c781c0c djkim
                Common.ViewerDataModel.Instance.SystemMain.dzMainMenu.BaseClient.SaveSymbolAsync(symbol_private);
154
            }
155
            catch(Exception)
156
            {
157
                throw;
158
            }
159
        }
160 498f0fc9 ljiyeon
        public void SymbolSave_Public(string Name, string Url, string Data, string Department)
161
        {
162
            try
163
            {
164
                SYMBOL_PUBLIC symbol_public = new SYMBOL_PUBLIC
165
                {
166 24678e06 humkyung
                    ID = Commons.shortGuid(),
167 498f0fc9 ljiyeon
                    DEPARTMENT = Department,
168
                    NAME = Name,
169
                    IMAGE_URL = Url,
170
                    DATA = Data
171
                };
172 787a4489 KangIngu
173 664ea2e1 taeseongkim
                //Logger.sendReqLog("AddPublicSymbol: ", symbol_public.ID + "," + symbol_public.DEPARTMENT + "," + symbol_public.NAME + "," + symbol_public.IMAGE_URL + "," + symbol_public.DATA, 1);
174 498f0fc9 ljiyeon
                Common.ViewerDataModel.Instance.SystemMain.dzMainMenu.BaseClient.AddPublicSymbol(symbol_public);
175
            }
176
            catch (Exception)
177
            {
178
                throw;
179
            }
180
        }
181 129ca191 humkyung
182 eeb0a39c taeseongkim
        public async void PageAngleSave(string project_no, List<DOCPAGE> _mldocpage)
183 6c781c0c djkim
        {
184
            try
185
            {
186 eeb0a39c taeseongkim
                var result = await Common.ViewerDataModel.Instance.SystemMain.dzMainMenu.BaseTaskClient.SavePageAngleAsync(project_no, _mldocpage);
187 b2c6901f swate0609
                Common.ViewerDataModel.Instance.RotationDocs.Clear();
188 eeb0a39c taeseongkim
189 664ea2e1 taeseongkim
                //Logger.sendReqLog("SavePageAngle: ", project_no + "," + _mldocpage, 1);
190
                //Logger.sendResLog("SavePageAngle", result.ToString(), 1);
191 eeb0a39c taeseongkim
             
192 6c781c0c djkim
            }
193
            catch (Exception)
194
            {
195
                throw;
196 787a4489 KangIngu
            }
197
        }
198
    }
199
}
클립보드 이미지 추가 (최대 크기: 500 MB)