コード例 #1
0
ファイル: LocalStorage.cs プロジェクト: alislin/TaskLog
        public async Task Remove(TodoLog item)
        {
            if (item == null)
            {
                return;
            }

            //检查是否存在
            var data   = LoadLogs(item.ProjcectId);
            var log    = data.Logs.FirstOrDefault(x => x.Key == item.Key);
            var daylog = DayLogs.FirstOrDefault(x => x.TodoLogs.Count(y => y.Key == item.Key) > 0);

            //移除项目
            daylog.TodoLogs.Remove(log);

            if (daylog.TodoLogs.Count == 0)
            {
                //移除项目
                DayLogs.Remove(daylog);

                //移除索引
                DataIndex.DayLogs.Remove(daylog.Key);
                await Remove(daylog.Key);
            }
            else
            {
                await Save(daylog);
            }
            await Save(DataIndex);

            MessageAction?.Invoke(MessageTypeUpdate);
        }
コード例 #2
0
ファイル: IndexedDbStorage.cs プロジェクト: alislin/TaskLog
        public async Task Remove(TodoLog item)
        {
            if (item == null)
            {
                return;
            }

            //检查是否存在
            //var data = LoadLogs(item.ProjcectId);
            //var log = data.Logs.FirstOrDefault(x => x.Key == item.Key);
            //var daylog = DayLogs.FirstOrDefault(x => x.TodoLogs.Count(y => y.Key == item.Key) > 0);

            using var db = await NewDb;
            var daylog = db.DayLogs.FirstOrDefault(x => x.TodoLogs.Count(y => y.Key == item.Key) > 0);

            if (daylog != null)
            {
                var log = daylog.TodoLogs.FirstOrDefault(x => x.Key == item.Key);
                daylog.TodoLogs.Remove(log);
                if (daylog.TodoLogs.Count == 0)
                {
                    db.DayLogs.Remove(daylog);
                }
            }

            await db.SaveChanges();

            await LoadDayLog();

            MessageAction?.Invoke(MessageTypeUpdate);
        }
コード例 #3
0
ファイル: IndexedDbStorage.cs プロジェクト: alislin/TaskLog
        /// <summary>
        /// 更新数据
        /// </summary>
        /// <param name="item"></param>
        public async Task Update(TodoLog item)
        {
            if (item == null)
            {
                return;
            }

            using var db = await NewDb;

            var daykey = item.Created.GetDayId();
            var p      = db.DayLogs.FirstOrDefault(x => x.Date == daykey);

            if (p == null)
            {
                //创建新的日期
                var daylog = new DayLog
                {
                    Date     = daykey,
                    TodoLogs = new List <TodoLog>()
                };
                Created(daylog);
                Created(item);
                daylog.TodoLogs.Add(item);
                db.DayLogs.Add(daylog);
            }
            else
            {
                //检查记录是否存在
                var tl = p.TodoLogs.FirstOrDefault(x => x.Key == item.Key && x.ProjcectId == item.ProjcectId && x.TodoId == item.TodoId);
                if (tl == null)
                {
                    Created(item);
                    //创建新记录
                    p.TodoLogs.Add(item);
                }
                else
                {
                    //更新
                    tl.Update(item);
                }
            }

            await db.SaveChanges();

            await LoadDayLog();

            MessageAction?.Invoke(MessageTypeUpdate);
        }
コード例 #4
0
ファイル: LocalStorage.cs プロジェクト: alislin/TaskLog
        /// <summary>
        /// 更新数据
        /// </summary>
        /// <param name="item"></param>
        public async Task Update(TodoLog item)
        {
            if (item == null)
            {
                return;
            }
            var daykey = item.Created.GetDayId();
            var p      = DayLogs.FirstOrDefault(x => x.Date == daykey);

            if (p == null)
            {
                //创建新的日期
                var daylog = new DayLog
                {
                    Date     = daykey,
                    TodoLogs = new List <TodoLog>()
                };
                Created(daylog);
                Created(item);
                daylog.TodoLogs.Add(item);
                DayLogs.Add(daylog);

                DataIndex.DayLogs.AddUniq(daylog.Key);
                await Save(daylog);
                await Save(DataIndex);
            }
            else
            {
                //检查记录是否存在
                var tl = p.TodoLogs.FirstOrDefault(x => x.Key == item.Key && x.ProjcectId == item.ProjcectId && x.TodoId == item.TodoId);
                if (tl == null)
                {
                    Created(item);
                    //创建新记录
                    p.TodoLogs.Add(item);
                }
                else
                {
                    //更新
                    tl.Update(item);
                }
                await Save(p);
            }

            MessageAction?.Invoke(MessageTypeUpdate);
        }
コード例 #5
0
ファイル: TodoLogEdit.razor.cs プロジェクト: alislin/TaskLog
 public void Reset(object obj)
 {
     TodoLog = new TodoLog();
 }
コード例 #6
0
 public TodoLog Create(TodoLog todo)
 {
     todo.Id = Connection.QueryFirst <int>("exec todoLog_sp_create @Description, @TodoId", todo, transaction: transaction);
     return(todo);
 }