/// <summary> /// 資源推移情報の追加 /// </summary> /// <param name="info">資源情報</param> public bool AddMaterialsChangeResult(LogData.MaterialChangeInfo info) { if (info == null) { Debug.WriteLine("invalid MaterialChange(null)"); return false; } DateTime now = DTNow; if (_bLoadingMaterialInfo) { Debug.WriteLine("MaterialChange still loading..."); return false; } Debug.WriteLine(string.Format("LastMod:{0} Now:{1}", _dtLastMaterialUploaded, now)); if (_dtLastMaterialUploaded == DateTime.MinValue || (_dtLastMaterialUploaded < now)) { Debug.WriteLine("Update MaterialsInfo"); info.Date = now; lock (((ICollection)_materialsLog).SyncRoot) { //リストが空の時例外を投げるらしい。 if (_materialsLog.Count > 0) info.PrevItem = _materialsLog.Last(); _materialsLog.Add(info); } _addMaterialRow(info.SetRowData(_createMaterialNewRow())); UpdateMaterialChart(); _vlvMaterialChange.UpdateList(); _dtLastMaterialUploaded = now; _logStore.AddMaterialChange(info, (bool bSucceeded) => { if (!(Properties.Settings.Default.SuppressSuceedWriteLog && bSucceeded)) UpdateStatusMessage("資源推移の書き込みに{0}しました", bSucceeded ? "成功" : "失敗"); }); return true; } return false; }