/// <summary> /// DT_ALARMテーブルからメール送信済みの最新DtAlarmを取得する /// </summary> /// <param name="alarmDefId">アラーム定義ID</param> /// <returns>取得したデータ</returns> public DtAlarm ReadLatestMailSentDtAlarm(string alarmDefId) { DtAlarm model = null; try { _logger.EnterJson("{0}", new { alarmDefId }); DBAccessor.Models.DtAlarm entity = null; _dbPolly.Execute(() => { using (DBAccessor.Models.RmsDbContext db = new DBAccessor.Models.RmsDbContext(_appSettings)) { entity = db.DtAlarm.Where(x => x.AlarmDefId == alarmDefId && x.HasMail == true).OrderByDescending(x => x.CreateDatetime).FirstOrDefault(); } }); model = entity?.ToModelExcludedDtEquipment(); return(model); } catch (Exception e) { throw new RmsException("DT_ALARMテーブルのSelectに失敗しました。", e); } finally { _logger.LeaveJson("{0}", model); } }
/// <summary> /// 引数に指定したDtAlarmをDT_ALARMテーブルへ登録する /// </summary> /// <param name="inData">登録するデータ</param> /// <returns>処理結果</returns> public DtAlarm CreateDtAlarm(DtAlarm inData) { DtAlarm model = null; try { _logger.EnterJson("{0}", inData); DBAccessor.Models.DtAlarm entity = new DBAccessor.Models.DtAlarm(); entity.CopyExcludingEquipmentFrom(inData); // バリデーション Validator.ValidateObject(entity, new ValidationContext(entity, null, null)); _dbPolly.Execute(() => { entity.CreateDatetime = _timeProvider.UtcNow; using (DBAccessor.Models.RmsDbContext db = new DBAccessor.Models.RmsDbContext(_appSettings)) { var dbdata = db.DtAlarm.Add(entity).Entity; db.SaveChanges(); model = dbdata.ToModelExcludedDtEquipment(); } }); return(model); } catch (ValidationException e) { throw new RmsParameterException(e.ValidationResult.ErrorMessage, e); } catch (Exception e) { throw new RmsException("DT_ALARMテーブルへのInsertに失敗しました。", e); } finally { _logger.LeaveJson("{0}", model); } }