개정판 43adf299
issue #0000 다중선택 후 값변경 속도 향상
Change-Id: I1d9d7465ae1231588c4a3e4e08b1243070fa46d7
ID2.Manager/ID2.Manager.Data/Models/Documents.cs | ||
---|---|---|
268 | 268 |
{ |
269 | 269 |
isAttfilesEqual = true; |
270 | 270 |
} |
271 |
else if (this.AttFiles != null && other.AttFiles != null) |
|
271 |
|
|
272 |
if (isAttfilesEqual) |
|
272 | 273 |
{ |
273 |
isAttfilesEqual = this.AttFiles.SequenceEqual(other.AttFiles);
|
|
274 |
}
|
|
274 |
if (this.DocumentNo != other.DocumentNo)
|
|
275 |
return false;
|
|
275 | 276 |
|
276 |
bool result = other != null && this.DocumentNo == other.DocumentNo && this.RevisonNo == other.RevisonNo && this.System == other.System && this.SubSystemCode == other.SubSystemCode |
|
277 |
&& this.RefProjectCode == other.RefProjectCode && this.JobLevel == other.JobLevel |
|
278 |
&& this.PersonInCharge == other.PersonInCharge && this.ToIsDiscussion == other.ToIsDiscussion && this.ToRemarks == other.ToRemarks |
|
279 |
&& this.ToCreator == other.ToCreator |
|
280 |
&& this.FrReviewStatus == other.FrReviewStatus && this.FrRemarks == other.FrRemarks && this.FrCreator == other.FrCreator |
|
281 |
&& this.ID2StartDate == other.ID2StartDate && this.ID2EndDate == other.ID2EndDate && this.ID2Status == other.ID2Status |
|
282 |
&& this.ID2Issues == other.ID2Issues && this.ReplyModifications == other.ReplyModifications && this.ReplyRequester == other.ReplyRequester && this.IsConvert == other.IsConvert && this.AVEVAPersonInCharge == other.AVEVAPersonInCharge && this.AVEVAWorker == other.AVEVAWorker |
|
283 |
&& this.AVEVAConvertDate == other.AVEVAConvertDate && this.AVEVAReviewDate == other.AVEVAReviewDate && this.AVEVAWorkDate == other.AVEVAWorkDate |
|
284 |
&& this.AVEVAStatus == other.AVEVAStatus && this.AVEVAIssues == other.AVEVAIssues |
|
285 |
&& this.ProdReviewer == other.ProdReviewer && this.ProdIsResult == other.ProdIsResult && this.ProdRemarks == other.ProdRemarks && this.ClientReviewer == other.ClientReviewer |
|
286 |
&& this.ClientIsResult == other.ClientIsResult && this.ClientRemarks == other.ClientRemarks && this.DTIsGateWay == other.DTIsGateWay && this.DTIsImport == other.DTIsImport |
|
287 |
&& this.DTIsRegSystem == other.DTIsRegSystem && this.DTRemarks == other.DTRemarks && this.ConvertStatus == other.ConvertStatus |
|
288 |
&& isAttfilesEqual; |
|
289 |
|
|
290 |
if (result == false) |
|
277 |
if (this.RevisonNo != other.RevisonNo) |
|
278 |
return false; |
|
279 |
|
|
280 |
if (this.System != other.System) |
|
281 |
return false; |
|
282 |
|
|
283 |
if (this.SubSystemCode != other.SubSystemCode) |
|
284 |
return false; |
|
285 |
|
|
286 |
if (this.RefProjectCode != other.RefProjectCode) |
|
287 |
return false; |
|
288 |
|
|
289 |
if (this.JobLevel != other.JobLevel) |
|
290 |
return false; |
|
291 |
|
|
292 |
if (this.PersonInCharge != other.PersonInCharge) |
|
293 |
return false; |
|
294 |
|
|
295 |
if (this.ToIsDiscussion != other.ToIsDiscussion) |
|
296 |
return false; |
|
297 |
|
|
298 |
if (this.ToRemarks != other.ToRemarks) |
|
299 |
return false; |
|
300 |
|
|
301 |
if (this.ToCreator != other.ToCreator) |
|
302 |
return false; |
|
303 |
|
|
304 |
if (this.FrReviewStatus != other.FrReviewStatus) return false; |
|
305 |
if ( this.FrRemarks != other.FrRemarks ) return false; |
|
306 |
if ( this.FrCreator != other.FrCreator ) return false; |
|
307 |
if ( this.ID2StartDate != other.ID2StartDate ) return false; |
|
308 |
if ( this.ID2EndDate != other.ID2EndDate ) return false; |
|
309 |
if ( this.ID2Status != other.ID2Status ) return false; |
|
310 |
if ( this.ID2Issues != other.ID2Issues ) return false; |
|
311 |
if ( this.ReplyModifications != other.ReplyModifications ) return false; |
|
312 |
if ( this.ReplyRequester != other.ReplyRequester ) return false; |
|
313 |
if ( this.IsConvert != other.IsConvert ) return false; |
|
314 |
if ( this.AVEVAPersonInCharge != other.AVEVAPersonInCharge ) return false; |
|
315 |
if ( this.AVEVAWorker != other.AVEVAWorker ) return false; |
|
316 |
if ( this.AVEVAConvertDate != other.AVEVAConvertDate ) return false; |
|
317 |
if ( this.AVEVAReviewDate != other.AVEVAReviewDate ) return false; |
|
318 |
if ( this.AVEVAWorkDate != other.AVEVAWorkDate ) return false; |
|
319 |
if ( this.AVEVAStatus != other.AVEVAStatus ) return false; |
|
320 |
if ( this.AVEVAIssues != other.AVEVAIssues ) return false; |
|
321 |
if ( this.ProdReviewer != other.ProdReviewer ) return false; |
|
322 |
if ( this.ProdIsResult != other.ProdIsResult ) return false; |
|
323 |
if ( this.ProdRemarks != other.ProdRemarks ) return false; |
|
324 |
if ( this.ClientReviewer != other.ClientReviewer ) return false; |
|
325 |
if ( this.ClientIsResult != other.ClientIsResult ) return false; |
|
326 |
if ( this.ClientRemarks != other.ClientRemarks ) return false; |
|
327 |
if ( this.DTIsGateWay != other.DTIsGateWay ) return false; |
|
328 |
if ( this.DTIsImport != other.DTIsImport ) return false; |
|
329 |
if ( this.DTIsRegSystem != other.DTIsRegSystem ) return false; |
|
330 |
if ( this.DTRemarks != other.DTRemarks ) return false; |
|
331 |
if ( this.ConvertStatus != other.ConvertStatus) return false; |
|
332 |
} |
|
333 |
else if (this.AttFiles != null && other.AttFiles != null) |
|
291 | 334 |
{ |
292 |
string id = this.DocID; |
|
335 |
if (!this.AttFiles.SequenceEqual(other.AttFiles)) |
|
336 |
return false; |
|
293 | 337 |
} |
294 | 338 |
|
295 |
return result; |
|
339 |
//bool result = this.FrReviewStatus == other.FrReviewStatus && this.FrRemarks == other.FrRemarks && this.FrCreator == other.FrCreator |
|
340 |
// && this.ID2StartDate == other.ID2StartDate && this.ID2EndDate == other.ID2EndDate && this.ID2Status == other.ID2Status |
|
341 |
// && this.ID2Issues == other.ID2Issues && this.ReplyModifications == other.ReplyModifications && this.ReplyRequester == other.ReplyRequester && this.IsConvert == other.IsConvert && this.AVEVAPersonInCharge == other.AVEVAPersonInCharge && this.AVEVAWorker == other.AVEVAWorker |
|
342 |
// && this.AVEVAConvertDate == other.AVEVAConvertDate && this.AVEVAReviewDate == other.AVEVAReviewDate && this.AVEVAWorkDate == other.AVEVAWorkDate |
|
343 |
// && this.AVEVAStatus == other.AVEVAStatus && this.AVEVAIssues == other.AVEVAIssues |
|
344 |
// && this.ProdReviewer == other.ProdReviewer && this.ProdIsResult == other.ProdIsResult && this.ProdRemarks == other.ProdRemarks && this.ClientReviewer == other.ClientReviewer |
|
345 |
// && this.ClientIsResult == other.ClientIsResult && this.ClientRemarks == other.ClientRemarks && this.DTIsGateWay == other.DTIsGateWay && this.DTIsImport == other.DTIsImport |
|
346 |
// && this.DTIsRegSystem == other.DTIsRegSystem && this.DTRemarks == other.DTRemarks && this.ConvertStatus == other.ConvertStatus |
|
347 |
// && isAttfilesEqual; |
|
348 |
|
|
349 |
//if (result == false) |
|
350 |
//{ |
|
351 |
// string id = this.DocID; |
|
352 |
//} |
|
353 |
|
|
354 |
return true; |
|
296 | 355 |
|
297 | 356 |
} |
298 | 357 |
public override int GetHashCode() |
ID2.Manager/ID2.Manager.Data/NotifyPropertyChange.cs | ||
---|---|---|
10 | 10 |
{ |
11 | 11 |
public class NotifyPropertyChange : INotifyPropertyChanged |
12 | 12 |
{ |
13 |
|
|
13 |
public bool SuspendUpdate; |
|
14 |
|
|
14 | 15 |
public event PropertyChangedEventHandler PropertyChanged; |
15 | 16 |
|
16 | 17 |
protected void RaisePropertyChanged(string propertyName) |
... | ... | |
24 | 25 |
return false; |
25 | 26 |
|
26 | 27 |
storage = value; |
27 |
RaisePropertyChanged(propertyName); |
|
28 |
|
|
29 |
if (!SuspendUpdate) |
|
30 |
{ |
|
31 |
RaisePropertyChanged(propertyName); |
|
32 |
} |
|
33 |
|
|
28 | 34 |
return true; |
29 | 35 |
} |
30 | 36 |
} |
ID2.Manager/ID2.Manager/Classes/LinqExtension.cs | ||
---|---|---|
12 | 12 |
{ |
13 | 13 |
foreach (var item in collection) |
14 | 14 |
{ |
15 |
action.Invoke(item);
|
|
15 |
action(item); |
|
16 | 16 |
} |
17 | 17 |
} |
18 | 18 |
public static void ParallelForAll<T>(this IEnumerable<T> collection, Action<T> action) |
ID2.Manager/ID2.Manager/Main.cs | ||
---|---|---|
1913 | 1913 |
{ |
1914 | 1914 |
if (e.Column is GridViewComboBoxColumn) |
1915 | 1915 |
{ |
1916 |
var chkDatas = documents.Where(x => x.Checked).ToList(); |
|
1916 |
var chkDatas = documents.Where(x => x.Checked); |
|
1917 |
|
|
1917 | 1918 |
if (chkDatas.Any()) |
1918 | 1919 |
{ |
1919 | 1920 |
string colValue = e.Row.Cells[e.Column.Name].Value == null ? string.Empty : (string)e.Row.Cells[e.Column.Name].Value; |
1921 |
|
|
1922 |
radGridViewDocuments.BeginUpdate(); |
|
1920 | 1923 |
radGridViewDocuments.MasterTemplate.BeginUpdate(); |
1921 |
//radGridViewDocuments.SuspendLayout(); |
|
1922 |
//radGridViewDocuments.SuspendUpdate(); |
|
1923 |
switch (e.Column.Name) |
|
1924 |
|
|
1925 |
chkDatas.ForAll(x => |
|
1924 | 1926 |
{ |
1925 |
case "RefProjectCode": |
|
1926 |
chkDatas.ParallelForAll(x => x.RefProjectCode = colValue); |
|
1927 |
break; |
|
1928 |
case "PersonInCharge": |
|
1929 |
chkDatas.ParallelForAll(x => x.PersonInCharge = colValue); |
|
1930 |
break; |
|
1931 |
case "Worker": |
|
1932 |
chkDatas.ParallelForAll(x => x.Worker = colValue); |
|
1933 |
break; |
|
1934 |
case "JobLevel": |
|
1935 |
chkDatas.ParallelForAll(x => x.JobLevel = colValue); |
|
1936 |
break; |
|
1937 |
case "ToIsDiscussion": |
|
1938 |
chkDatas.ParallelForAll(x => x.ToIsDiscussion = colValue); |
|
1939 |
break; |
|
1940 |
case "ToCreator": |
|
1941 |
chkDatas.ParallelForAll(x => x.ToCreator = colValue); |
|
1942 |
break; |
|
1943 |
case "FrReviewStatus": |
|
1944 |
chkDatas.ParallelForAll(x => x.FrReviewStatus = colValue); |
|
1945 |
break; |
|
1946 |
case "FrCreator": |
|
1947 |
chkDatas.ParallelForAll(x => x.FrCreator = colValue); |
|
1948 |
break; |
|
1949 |
case "ID2Status": |
|
1950 |
chkDatas.ParallelForAll(x => x.ID2Status = colValue); |
|
1951 |
break; |
|
1952 |
case "ReplyRequester": |
|
1953 |
chkDatas.ParallelForAll(x => x.ReplyRequester = colValue); |
|
1954 |
break; |
|
1955 |
case "IsConvert": |
|
1956 |
chkDatas.ParallelForAll(x => x.IsConvert = colValue); |
|
1957 |
break; |
|
1958 |
case "AVEVAPersonInCharge": |
|
1959 |
chkDatas.ParallelForAll(x => x.AVEVAPersonInCharge = colValue); |
|
1960 |
break; |
|
1961 |
case "AVEVAWorker": |
|
1962 |
chkDatas.ParallelForAll(x => x.AVEVAWorker = colValue); |
|
1963 |
break; |
|
1964 |
case "AVEVAStatus": |
|
1965 |
chkDatas.ParallelForAll(x => x.AVEVAStatus = colValue); |
|
1966 |
break; |
|
1967 |
case "ProdReviewer": |
|
1968 |
chkDatas.ParallelForAll(x => x.ProdReviewer = colValue); |
|
1969 |
break; |
|
1970 |
case "ProdIsResult": |
|
1971 |
chkDatas.ParallelForAll(x => x.ProdIsResult = colValue); |
|
1972 |
break; |
|
1973 |
case "ClientReviewer": |
|
1974 |
chkDatas.ParallelForAll(x => x.ClientReviewer = colValue); |
|
1975 |
break; |
|
1976 |
case "ClientIsResult": |
|
1977 |
chkDatas.ParallelForAll(x => x.ClientIsResult = colValue); |
|
1978 |
break; |
|
1979 |
case "DTIsGateWay": |
|
1980 |
chkDatas.ParallelForAll(x => x.DTIsGateWay = colValue); |
|
1981 |
break; |
|
1982 |
case "DTIsImport": |
|
1983 |
chkDatas.ParallelForAll(x => x.DTIsImport = colValue); |
|
1984 |
break; |
|
1985 |
case "DTIsRegSystem": |
|
1986 |
chkDatas.ParallelForAll(x => x.DTIsRegSystem = colValue); |
|
1987 |
break; |
|
1988 |
} |
|
1989 |
//radGridViewDocuments.ResumeLayout(); |
|
1990 |
//radGridViewDocuments.ResumeUpdate(); |
|
1927 |
x.SuspendUpdate = true; |
|
1928 |
x.GetType().GetProperty(e.Column.Name).SetValue(x, colValue); |
|
1929 |
x.SuspendUpdate = false; |
|
1930 |
}); |
|
1931 |
|
|
1932 |
this.ResumeLayout(true); |
|
1991 | 1933 |
radGridViewDocuments.MasterTemplate.EndUpdate(); |
1934 |
radGridViewDocuments.EndUpdate(); |
|
1935 |
|
|
1992 | 1936 |
} |
1993 | 1937 |
} |
1994 | 1938 |
} |
내보내기 Unified diff