示例#1
0
        private PackageModels.LogDetailModel TransformLogDetailEntityToModel(LogDetailEntity entity)
        {
            var logDetail = new PackageModels.LogDetailModel
            {
                AppointmentId  = entity.AppointmentId,
                Clinic         = entity.Clinic,
                CmpName        = entity.CmpName,
                CmpNum         = entity.CmpNum,
                LogNum         = entity.LogNum,
                Notes          = entity.Notes,
                PatNum         = entity.PatNum,
                PhyName        = entity.PhyName,
                PhyNum         = entity.PhyNum,
                Practice       = entity.Practice,
                QuickVisitFlag = entity.QuickVisitFlag,
                QuickVisitType = entity.QuickVisitType,
                SelfPayFlag    = entity.SelfPayFlag,
                Status         = entity.Status,
                TimeIn         = entity.TimeIn,
                UserId         = entity.CrtUserId,
                UserNum        = entity.LastUpdUserNum,
                Type           = entity.VisitType,
                SvcDate        = entity.SvcDate
            };

            return(logDetail);
        }
示例#2
0
        /// <summary>
        /// IDをキーとしてTodoを更新する
        /// </summary>
        /// <param name="id">ID</param>
        /// <param name="todo">Todo</param>
        internal void UpdateTodoById(long id, string todo)
        {
            var entity = new LogDetailEntity();

            entity.AddParams(LogDetailEntity.Cols.Todo, todo);
            this.UpdateLogDById(id, entity);
        }
示例#3
0
        /// <summary>
        /// IDをキーとしてメモを更新する
        /// </summary>
        /// <param name="id">ID</param>
        /// <param name="memo">メモ</param>
        internal void UpdateMemoById(long id, string memo)
        {
            var entity = new LogDetailEntity();

            entity.AddParams(LogDetailEntity.Cols.Memo, memo);
            this.UpdateLogDById(id, entity);
        }
示例#4
0
        /// <summary>
        /// IDをキーとして並び順・カテゴリIDを更新する
        /// </summary>
        /// <param name="logList">ログデータ</param>
        internal void UpdateOrderById(ObservableCollection <LogDetailData> logList)
        {
            using (var database = new MyLogDatabase(Constants.DatabaseFile())) {
                try {
                    database.Open();
                    database.BeginTrans();
                    var entity = new LogDetailEntity(database);

                    foreach (var data in logList)
                    {
                        if (data.IsCategory)
                        {
                            continue;
                        }
                        entity.ClearParams();
                        entity.AddParams(LogDetailEntity.Cols.Priority, data.Priority);
                        entity.AddParams(LogDetailEntity.Cols.CategoryId, data.CategoryId);
                        entity.UpdateById(data.Id);
                    }
                    database.CommitTrans();
                }catch (Exception ex) {
                    database.RollbackTrans();
                    throw ex;
                }
            }
        }
示例#5
0
        /// <summary>
        /// IDをキーとして結果を更新する
        /// </summary>
        /// <param name="id">ID</param>
        /// <param name="result">結果</param>
        internal void UpdateResultById(long id, int result)
        {
            var entity = new LogDetailEntity();

            entity.AddParams(LogDetailEntity.Cols.Result, result);
            this.UpdateLogDById(id, entity);
        }
示例#6
0
        public void Write(string category, string source, LogType logType, string logMsg, string detail)
        {
            Guid id = Guid.NewGuid();

            LogEntity log = new LogEntity();

            log.Id       = id;
            log.Category = category;
            log.Source   = source;
            log.Type     = (short)logType;
            log.Message  = logMsg;

            LogDetailEntity logDetail = new LogDetailEntity();

            logDetail.Id        = id;
            logDetail.LogDetail = detail;

            try
            {
                using (ILHDBTran tran = BeginTran())
                {
                    LogManager manager = new LogManager(tran);
                    manager.AddLog(log);
                    manager.AddLogDetail(logDetail);
                    tran.Commit();
                }
            }
            catch (Exception ex)
            {
                FileLogWriter writer = new FileLogWriter();
                writer.Write(LogCategory.LogWrite, "Write log to database", ex);
                writer.Write(category, source, logType, logMsg, detail);
            }
        }
示例#7
0
        /// <summary>
        /// IDをキーとして並び順・カテゴリIDを更新する
        /// </summary>
        /// <param name="id">ID</param>
        /// <param name="order">並び順</param>
        /// <param name="categoryId">カテゴリID</param>
        internal void UpdateOrderById(long id, int order, long categoryId)
        {
            var entity = new LogDetailEntity();

            entity.AddParams(LogDetailEntity.Cols.Priority, order);
            entity.AddParams(LogDetailEntity.Cols.CategoryId, categoryId);
            this.UpdateLogDById(id, entity);
        }
示例#8
0
        /// <summary>
        /// IDをキーとして実績時間を更新する
        /// </summary>
        /// <param name="id">ID</param>
        /// <param name="actualStart">実績時間(開始)</param>
        /// <param name="actualEnd">実績時間(終了)</param>
        /// <param name="actualTime">実績時間</param>
        internal void UpdateActualTimeById(long id, string actualStart, string actualEnd, int actualTime)
        {
            var entity = new LogDetailEntity();

            entity.AddParams(LogDetailEntity.Cols.ActualStart, actualStart);
            entity.AddParams(LogDetailEntity.Cols.ActualEnd, actualEnd);
            entity.AddParams(LogDetailEntity.Cols.ActualTime, actualTime);
            this.UpdateLogDById(id, entity);
        }
示例#9
0
        /// <summary>
        /// IDをキーとして予定時間を更新する
        /// </summary>
        /// <param name="id">ID</param>
        /// <param name="planStart">予定時間(開始)</param>
        /// <param name="planEnd">予定時間(終了)</param>
        /// <param name="planTime">予定時間</param>
        internal void UpdatePlanTimeById(long id, string planStart, string planEnd, int planTime)
        {
            var entity = new LogDetailEntity();

            entity.AddParams(LogDetailEntity.Cols.PlanStart, planStart);
            entity.AddParams(LogDetailEntity.Cols.PlanEnd, planEnd);
            entity.AddParams(LogDetailEntity.Cols.PlanTime, planTime);
            this.UpdateLogDById(id, entity);
        }
示例#10
0
 /// <summary>
 /// IDをキーとしてログ情報(明細)を更新する
 /// </summary>
 /// <param name="id">ID</param>
 /// <param name="entity">エンティティ</param>
 private void UpdateLogDById(long id, LogDetailEntity entity)
 {
     using (var database = new MyLogDatabase(Constants.DatabaseFile())) {
         try {
             database.Open();
             database.BeginTrans();
             entity.Database = database;
             entity.UpdateById(id);
             database.CommitTrans();
         } catch (Exception ex) {
             database.RollbackTrans();
             throw ex;
         }
     }
 }
示例#11
0
 public LogDetailModel(LogDetailEntity entity)
 {
     LogNum    = entity.LogNum;
     Practice  = entity.Practice;
     Clinic    = entity.Clinic;
     PatNum    = entity.PatNum;
     SvcDate   = entity.SvcDate;
     VisitType = entity.VisitType;
     CmpNum    = entity.CmpNum;
     Protocol  = entity.Protocol;
     PhyNum    = entity.PhyNum;
     Status    = entity.Status;
     Notes     = entity.Notes;
     TimeIn    = entity.TimeIn;
     TimeOut   = entity.TimeOut;
 }
示例#12
0
 /// <summary>
 /// IDをキーとして削除する
 /// </summary>
 /// <param name="id">ID</param>
 internal void DeleteById(long id)
 {
     using (var database = new MyLogDatabase(Constants.DatabaseFile())) {
         try {
             database.Open();
             database.BeginTrans();
             var eneityHeader = new LogEntity(database);
             eneityHeader.DeleteById(id);
             var entityDetail = new LogDetailEntity(database);
             entityDetail.DeleteById(id);
             database.CommitTrans();
         } catch (Exception ex) {
             database.RollbackTrans();
             throw ex;
         }
     }
 }
示例#13
0
        private LogDetailModel GetLogDetail(string logDetailPk, string environment)
        {
            Guid logDetailPkGuid;

            if (!Guid.TryParse(logDetailPk, out logDetailPkGuid))
            {
                return(null);
            }

            using (IDataAccessAdapter adapter = AdapterFactory.CreateAdapter(MyNameSpace, environment))
            {
                var toFetch  = new LogDetailEntity(logDetailPkGuid);
                var prefetch = new PrefetchPath2(EntityType.LogDetailEntity)
                {
                    LogDetailEntity.PrefetchPathPhysician
                };
                var fetchResult = adapter.FetchEntity(toFetch, prefetch);
                return(!fetchResult ? null : new LogDetailModel(toFetch));
            }
        }
示例#14
0
        /// <summary>
        /// 空行を作成する
        /// </summary>
        /// <param name="logId">ログ情報ID</param>
        /// <param name="categoryId">カテゴリID</param>
        /// <param name="order">並び順</param>
        /// <returns></returns>
        internal LogDetailData InsertEmptyRow(long logId, long categoryId, int order)
        {
            var result = new LogDetailData();

            using (var database = new MyLogDatabase(Constants.DatabaseFile())) {
                database.Open();
                database.BeginTrans();

                var entity = new LogDetailEntity(database)
                {
                    LogId      = logId,
                    CategoryId = categoryId,
                    Priority   = order
                };
                result.Id         = entity.Insert();
                result.LogId      = logId;
                result.CategoryId = categoryId;
                result.Priority   = order;
                database.CommitTrans();
            }
            return(result);
        }
示例#15
0
        public void Write(string category, string source, Exception exception)
        {
            if (exception == null)
            {
                return;
            }
            Guid id = Guid.NewGuid();

            LogEntity log = new LogEntity();

            log.Id       = id;
            log.Category = category;
            log.Source   = source;
            log.Type     = (short)LogType.Error;
            log.Message  = exception.Message;

            LogDetailEntity logDetail = new LogDetailEntity();

            logDetail.Id        = id;
            logDetail.LogDetail = LogHelper.GetExceptionMessage(exception);

            try
            {
                using (ILHDBTran tran = BeginTran())
                {
                    LogManager manager = new LogManager(tran);
                    manager.AddLog(log);
                    manager.AddLogDetail(logDetail);
                    tran.Commit();
                }
            }
            catch (Exception ex)
            {
                FileLogWriter writer = new FileLogWriter();
                writer.Write(LogCategory.LogWrite, "Write log to database", ex);
                writer.Write(category, source, exception);
            }
        }
示例#16
0
        /// <summary>
        /// 記録日をキーとしてログ情報を取得
        /// </summary>
        /// <param name="recordedOn">記録日</param>
        /// <returns>取得結果(該当情報が存在しない場合はnullを返却)</returns>
        internal LogData SelectByRecordedOn(string recordedOn)
        {
            LogData result     = null;
            var     startIndex = 0;

            using (var database = new MyLogDatabase(Constants.DatabaseFile())) {
                database.Open();

                // ヘッダ情報を取得
                var logId        = 0L;
                var headerEntity = new LogEntity(database);
                using (var recset = headerEntity.SelectByRecordedOn(recordedOn)) {
                    if (!recset.Read())
                    {
                        return(result);
                    }
                    logId = recset.GetInt(LogEntity.Cols.Id);
                }
                result = new LogData {
                    Id         = logId,
                    RecordedOn = recordedOn,
                    LogList    = new ObservableCollection <LogDetailData>()
                };

                // カテゴリ情報を取得
                var categories     = new Dictionary <long, string>();
                var categoryEntity = new CategoryEntity(database);
                using (var recset = categoryEntity.SelectVisible()) {
                    while (recset.Read())
                    {
                        categories.Add(recset.GetLong(CategoryEntity.Cols.Id),
                                       recset.GetString(CategoryEntity.Cols.Name));
                    }
                }

                // 明細情報を取得
                var detailEntity = new LogDetailEntity(database);
                using (var recset = detailEntity.SelectByLogHId(logId)) {
                    var currentCategory = -1L;
                    while (recset.Read())
                    {
                        var detail = new LogDetailData {
                            Id          = recset.GetLong(LogDetailEntity.Cols.Id),
                            LogId       = recset.GetLong(LogDetailEntity.Cols.LogId),
                            CategoryId  = recset.GetLong(LogDetailEntity.Cols.CategoryId),
                            Priority    = recset.GetInt(LogDetailEntity.Cols.Priority),
                            Result      = (ResultState)recset.GetInt(LogDetailEntity.Cols.Result),
                            Todo        = recset.GetString(LogDetailEntity.Cols.Todo),
                            PlanStart   = recset.GetString(LogDetailEntity.Cols.PlanStart),
                            PlanEnd     = recset.GetString(LogDetailEntity.Cols.PlanEnd),
                            PlanTime    = recset.GetInt(LogDetailEntity.Cols.PlanTime).ToString(),
                            ActualStart = recset.GetString(LogDetailEntity.Cols.ActualStart),
                            ActualEnd   = recset.GetString(LogDetailEntity.Cols.ActualEnd),
                            ActualTime  = recset.GetInt(LogDetailEntity.Cols.ActualTime).ToString(),
                            Memo        = recset.GetString(LogDetailEntity.Cols.Memo)
                        };
                        detail.Priority   = recset.GetInt(LogDetailEntity.Cols.Priority);
                        detail.IsCategory = false;

                        if (currentCategory != detail.CategoryId)
                        {
                            for (var i = startIndex; i < categories.Count; i++)
                            {
                                var categoryId = categories.ElementAt(i).Key;
                                var category   = new LogDetailData {
                                    IsCategory   = true,
                                    CategoryId   = categoryId,
                                    CategoryName = categories[categoryId]
                                };
                                result.LogList.Add(category);
                                if (categoryId == detail.CategoryId)
                                {
                                    currentCategory = categoryId;
                                    startIndex      = i + 1;
                                    break;
                                }
                                currentCategory = categoryId;
                            }
                        }
                        result.LogList.Add(detail);
                    }

                    startIndex = -1;
                    for (var i = 0; i < categories.Count; i++)
                    {
                        if (currentCategory == categories.ElementAt((int)i).Key)
                        {
                            startIndex = i;
                            break;
                        }
                    }

                    for (var i = startIndex + 1; i < categories.Count; i++)
                    {
                        var categoryId = categories.ElementAt(i).Key;
                        if (currentCategory < categoryId)
                        {
                            var category = new LogDetailData {
                                IsCategory   = true,
                                CategoryId   = categoryId,
                                CategoryName = categories[categoryId]
                            };
                            result.LogList.Add(category);
                        }
                    }
                }
            }
            return(result);
        }