프로젝트

일반

사용자정보

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

markus / KCOM / Events / SaveCommand.cs @ 77190232

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

1
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
using System.Collections.ObjectModel;
10
using System.Linq;
11
using System.Text;
12
using System.Windows.Controls;
13

    
14
namespace KCOM.Events
15
{
16
    public class SaveCommand
17
    {
18
        private static readonly SaveCommand _instance = new SaveCommand();
19

    
20
        // Explicit static constructor to tell C# compiler
21
        // not to mark type as beforefieldinit
22
        static SaveCommand()
23
        {
24
        }
25

    
26
        private SaveCommand()
27
        {
28
        }
29

    
30
        public static SaveCommand Instance
31
        {
32
            get
33
            {
34
                return _instance;
35
            }
36
        }
37

    
38
        #region Properties
39

    
40
        public ViewInfo _ViewInfo;
41
        public string Project_No
42
        {
43
            get;
44
            set;
45
        }
46
        public string document_id
47
        {
48
            get;
49
            set;
50
        }
51

    
52
        public string user_id
53
        {
54
            get;
55
            set;
56
        }
57

    
58
        public int page_no
59
        {
60
            get;
61
            set;
62
        }
63
        #endregion
64

    
65
        public void MarkupConsolidate()
66
        {
67

    
68
        }
69

    
70
        /// <summary>
71
        /// save comments related to given markup information
72
        /// </summary>
73
        /// <param name="UserState"></param>
74
        /// <param name="iPageNo"></param>
75
        public void Execute(ICollection<MarkupInfoItem> UserStates)
76
        {
77
            try
78
            {
79
                foreach (var UserState in UserStates)
80
                {
81
                    List<MARKUP_DATA> markupdata = new List<MARKUP_DATA>();
82
                    ViewerDataModel.Instance.MyMarkupList.Where(d => d.MarkupInfoID == UserState.MarkupInfoID).ToList().GroupBy(p => p.ID).Select(g => g.First()).ToList().ForEach(value =>
83
                    {
84
                        markupdata.Add(new MARKUP_DATA()
85
                        {
86
                            ID = value.ID,
87
                            PAGENUMBER = value.PageNumber,
88
                            DATA = value.Data,
89
                            MARKUPINFO_VERSION_ID = UserState.MarkupVersionID,
90
                            DATA_TYPE = value.Data_Type
91
                        });
92
                    });
93

    
94

    
95

    
96
                    var SaveResult = Common.ViewerDataModel.Instance.SystemMain.dzMainMenu.BaseClient.SaveMarkupData(UserState, Project_No, document_id, user_id, markupdata);
97

    
98
                    Logger.sendResLog("SaveCommand.Instance.Execute" , $"SaveMarkupData Call Project : {Project_No} DocID :{document_id} User ID {user_id} result {SaveResult}",1);
99

    
100
                    Common.ViewerDataModel.Instance.SystemMain.dzMainMenu.MarkupitemViewUpdate(UserState.MarkupInfoID);
101
                }
102
                //User Information List Rebind
103
                Common.ViewerDataModel.Instance.SystemMain.dzMainMenu.gridViewMarkup.Rebind();
104
                TempFile.Remove(); //임시파일삭제                
105
            }
106
            catch (Exception)
107
            {
108
                throw;
109
            }
110
        }
111

    
112
        public void SymbolSave(string Name, string Url, string Data)
113
        {
114
            try
115
            {
116
                SYMBOL_PRIVATE symbol_private = new SYMBOL_PRIVATE
117
                {
118
                    ID = Commons.shortGuid(),
119
                    MEMBER_USER_ID = App.ViewInfo.UserID,
120
                    NAME = Name,
121
                    IMAGE_URL = Url,
122
                    DATA = Data
123
                };
124

    
125
                Logger.sendReqLog("SaveSymbolAsync: ", symbol_private.ID + "," + symbol_private.MEMBER_USER_ID + "," + symbol_private.NAME + "," + symbol_private.IMAGE_URL + "," + symbol_private.DATA, 1);
126
                Common.ViewerDataModel.Instance.SystemMain.dzMainMenu.BaseClient.SaveSymbolAsync(symbol_private);
127
            }
128
            catch(Exception)
129
            {
130
                throw;
131
            }
132
        }
133
        public void SymbolSave_Public(string Name, string Url, string Data, string Department)
134
        {
135
            try
136
            {
137
                SYMBOL_PUBLIC symbol_public = new SYMBOL_PUBLIC
138
                {
139
                    ID = Commons.shortGuid(),
140
                    DEPARTMENT = Department,
141
                    NAME = Name,
142
                    IMAGE_URL = Url,
143
                    DATA = Data
144
                };
145

    
146
                Logger.sendReqLog("AddPublicSymbol: ", symbol_public.ID + "," + symbol_public.DEPARTMENT + "," + symbol_public.NAME + "," + symbol_public.IMAGE_URL + "," + symbol_public.DATA, 1);
147
                Common.ViewerDataModel.Instance.SystemMain.dzMainMenu.BaseClient.AddPublicSymbol(symbol_public);
148
            }
149
            catch (Exception)
150
            {
151
                throw;
152
            }
153
        }
154

    
155
        public void PageAngleSave(string project_no, List<DOCPAGE> _mldocpage)
156
        {
157
            try
158
            {
159
                Logger.sendReqLog("SavePageAngle: ", project_no + "," + _mldocpage, 1);
160
                Logger.sendResLog("SavePageAngle", Common.ViewerDataModel.Instance.SystemMain.dzMainMenu.BaseClient.SavePageAngle(project_no, _mldocpage).ToString(), 1);
161
                Common.ViewerDataModel.Instance.RotationDocs.Clear();
162
            }
163
            catch (Exception)
164
            {
165
                throw;
166
            }
167
        }
168
    }
169
}
클립보드 이미지 추가 (최대 크기: 500 MB)