Ejemplo n.º 1
0
        /// <summary>
        /// DtDeviceFileにレコードを追加する。
        /// </summary>
        /// <param name="collectFile">CollectingBlob上の収集ファイル</param>
        /// <param name="fileOnPrimaryBlob">PrimaryBlob上の収集ファイル</param>
        /// <returns>true: 成功 false: 失敗</returns>
        private bool TryAddDtDeviceFile(CollectedFile collectFile, ArchiveFile fileOnPrimaryBlob)
        {
            try
            {
                // DBにファイル情報を保存する(ファイルURL、メタデータ)
                // まずsys_ownerから、端末情報を取得する。
                // ・この値は機器UIDかエッジIDを使用する。
                var device = _dtDeviceRepository.ReadDtDevice(collectFile.Owner);
                if (device == null)
                {
                    throw new Exception(string.Format("Device[{0}]が見つかりませんでした。", collectFile.Owner));
                }

                // 端末ファイルデータを作る
                var dtDeviceFile = new Utility.Models.Entites.DtDeviceFile()
                {
                    DeviceSid = device.Sid,
                    //// DB上は発生元機器UIDだが、端末のUIDとは限らないので、ここではOwnerの値を設定する。
                    SourceEquipmentUid    = collectFile.Owner,
                    Container             = fileOnPrimaryBlob.ContainerName,
                    FilePath              = fileOnPrimaryBlob.FilePath,
                    CollectDatetime       = collectFile.CreatedAt,
                    DtDeviceFileAttribute = fileOnPrimaryBlob.MetaData.Select(ToDtDeviceFileAttribute).ToArray()
                };

                _dtDeviceFileRepository.CreateOrUpdateDtDeviceFile(dtDeviceFile);
                return(true);
            }
            catch (Exception ex)
            {
                _logger.Error(ex, nameof(Resources.CO_BLI_BLI_007), new object[] { fileOnPrimaryBlob.ContainerName, fileOnPrimaryBlob.FilePath });
                return(false);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// このインスタンスを、それと同等なUtility.Models.Entites.DtDeviceFile型に変換する。
        /// </summary>
        /// <returns></returns>
        public Utility.Models.Entites.DtDeviceFile ToModel()
        {
            Utility.Models.Entites.DtDeviceFile model = ToModelCommonPart();
            model.DtDeviceFileAttribute = this.DtDeviceFileAttribute.Select(y => y.ToChildModel(this.GetType())).ToHashSet();
            model.DtDevice = this.DeviceS?.ToParentModel(this.GetType());

            return(model);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// このインスタンスを、それと同等なUtility.Models.Entites.DtDeviceFile型に変換する。
        /// 親エンティティとして生成するため、子エンティティの情報はもたない
        /// </summary>
        /// <returns></returns>
        public Utility.Models.Entites.DtDeviceFile ToParentModel(Type childType)
        {
            Utility.Models.Entites.DtDeviceFile model = ToModelCommonPart();
            // 親子間の参照無限ループを避けるためにタイプチェック
            if (this.DtDeviceFileAttribute.LastOrDefault()?.GetType() != childType)
            {
                model.DtDeviceFileAttribute = this.DtDeviceFileAttribute.Select(y => y.ToChildModel(this.GetType())).ToHashSet();
            }
            model.DtDevice = this.DeviceS?.ToParentModel(this.GetType());

            return(model);
        }
Ejemplo n.º 4
0
 /// <summary>
 /// このインスタンスを、それと同等なUtility.Models.Entites.DtDeviceFile型に変換する。
 /// 各変換メソッド共通部分
 /// </summary>
 /// <returns></returns>
 private Utility.Models.Entites.DtDeviceFile ToModelCommonPart()
 {
     Utility.Models.Entites.DtDeviceFile model = new Utility.Models.Entites.DtDeviceFile();
     model.Sid                = this.Sid;
     model.DeviceSid          = this.DeviceSid;
     model.SourceEquipmentUid = this.SourceEquipmentUid;
     model.Container          = this.Container;
     model.FilePath           = this.FilePath;
     model.CollectDatetime    = this.CollectDatetime;
     model.CreateDatetime     = this.CreateDatetime;
     model.UpdateDatetime     = this.UpdateDatetime;
     return(model);
 }
Ejemplo n.º 5
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 /// <param name="model">Utility.Models.Entites.DtDeviceFileのインスタンス</param>
 public DtDeviceFile(Utility.Models.Entites.DtDeviceFile model)
 {
     this.Sid                   = model.Sid;
     this.DeviceSid             = model.DeviceSid;
     this.SourceEquipmentUid    = model.SourceEquipmentUid;
     this.Container             = model.Container;
     this.FilePath              = model.FilePath;
     this.CollectDatetime       = model.CollectDatetime;
     this.CreateDatetime        = model.CreateDatetime;
     this.UpdateDatetime        = model.UpdateDatetime;
     this.DtDeviceFileAttribute = model.DtDeviceFileAttribute.Select(y => new DtDeviceFileAttribute(y)).ToHashSet();
     this.DeviceS               = model.DtDevice == null ?
                                  null :
                                  new DtDevice(model.DtDevice);
 }