/// <summary> /// 設置設定ファイル用のArchiveFileを作成する /// </summary> /// <param name="messageObject">設置設定インスタンス</param> /// <param name="equipmentUid">機器UID</param> /// <param name="createDatetime">作成日時</param> /// <param name="configMessage">設置設定ファイル内容</param> /// <returns>ArchiveFile</returns> private ArchiveFile MakeArchiveFile( InstallBaseConfig messageObject, string equipmentUid, DateTime createDatetime, out string configMessage) { Assert.IfNull(messageObject); Assert.IfNull(equipmentUid); configMessage = messageObject.ToStringJsonIndented(); // メタデータなしで作成 return(new ArchiveFile() { ContainerName = _settings.DeliveringBlobContainerNameInstallbase, FilePath = string.Format(_settings.DeliveringBlobInstallbaseFilePath, equipmentUid), CreatedAt = createDatetime }); }
/// <summary> /// 機器情報を更新する /// </summary> /// <remarks>sd 04-01.機器登録</remarks> /// <param name="utilParam">>Utility型機器情報</param> /// <param name="baseConfig">設置設定情報</param> /// <returns>結果付きDB保存済み機器情報</returns> public Result <DtDevice> Update(DtDevice utilParam, InstallBaseConfig baseConfig) { Result <DtDevice> result = null; CreateAndUpdateStatus status = CreateAndUpdateStatus.Other; try { _logger.EnterJson("In Param: {0}", utilParam); // 一連の動きのためトランザクション処理開始 using (TransactionScope scope = new TransactionScope()) { // Sq3.2.1:機器情報を保存する status = CreateAndUpdateStatus.UpdateDtDevice; DtDevice updatedDeviceInfo = _dtDeviceRepository.UpdateDtDevice(utilParam); if (updatedDeviceInfo == null) { // 指定SIDのデータがないとnullが返る _logger.Error(nameof(Resources.CO_API_DVU_003), new object[] { "指定したSIDのデータがDBにありません" }); return(new Result <DtDevice>( ResultCode.NotFound, string.Format(Resources.CO_API_DVU_003, new object[] { "指定したSIDのデータがDBにありません" }), utilParam)); } // 設置設定インスタンスにエッジID・機器UIDを登録する string edgeId = updatedDeviceInfo.EdgeId.ToString(); baseConfig.OwnConfig.EdgeId = edgeId; baseConfig.OwnConfig.EquipmentUid = updatedDeviceInfo.EquipmentUid; string configMessage = string.Empty; // Sq3.2.2:設置設定ファイルを生成する(機器情報) status = CreateAndUpdateStatus.MakeArchiveFile; var archiveFile = MakeArchiveFile( baseConfig, updatedDeviceInfo.EquipmentUid, updatedDeviceInfo.UpdateDatetime, out configMessage); // Sq3.2.3:設置設定ファイルをアップロードする(設置設定ファイル) status = CreateAndUpdateStatus.Upload; _deliveringRepository.Upload(archiveFile, configMessage); // 正常終了 status = CreateAndUpdateStatus.Other; _logger.Info(nameof(Resources.CO_API_DVU_007), new object[] { edgeId }); result = new Result <DtDevice>( ResultCode.Succeed, string.Format(Resources.CO_API_DVU_007, new object[] { edgeId }), updatedDeviceInfo); scope.Complete(); } return(result); } catch (RmsParameterException e) { // Sq3.2.1 _logger.Error(e, nameof(Resources.CO_API_DVU_003), new object[] { e.Message }); return(new Result <DtDevice>( ResultCode.ParameterError, string.Format(Resources.CO_API_DVU_003, new object[] { e.Message }), utilParam)); } catch (Exception) when(status == CreateAndUpdateStatus.Other) { // 想定外のエラーは呼び出し側に返却する throw; } catch (Exception e) { string errorMessage = string.Empty; switch (status) { case CreateAndUpdateStatus.UpdateDtDevice: // Sq3.2.1 _logger.Error(e, nameof(Resources.CO_API_DVU_004), new object[] { e.Message }); errorMessage = string.Format(Resources.CO_API_DVU_004, new object[] { e.Message }); break; case CreateAndUpdateStatus.MakeArchiveFile: // Sq3.2.2 _logger.Error(e, nameof(Resources.CO_API_DVU_005), new object[] { e.Message }); errorMessage = string.Format(Resources.CO_API_DVU_005, new object[] { e.Message }); break; case CreateAndUpdateStatus.Upload: default: // Sq3.2.3 _logger.Error(e, nameof(Resources.CO_API_DVU_006), new object[] { e.Message }); errorMessage = string.Format(Resources.CO_API_DVU_006, new object[] { e.Message }); break; } return(new Result <DtDevice>(ResultCode.ServerEerror, errorMessage, utilParam)); } finally { _logger.LeaveJson("Out Param: {0}", result); } }
/// <summary> /// 機器情報を更新する /// </summary> /// <remarks>sd 04-01.機器登録</remarks> /// <param name="utilParam">>Utility型機器情報</param> /// <param name="baseConfig">設置設定情報</param> /// <returns>結果付きDB保存済み機器情報</returns> public Result <DtDevice> Update(DtDevice utilParam, InstallBaseConfig baseConfig) { throw new Exception(); }