Exemple #1
0
        /// <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);
        }
Exemple #2
0
        private async Task Init()
        {
            //加载索引
            DataIndex = await Load <DataIndex>(dataIndexKey);

            if (DataIndex == null)
            {
                //首次使用
                DataIndex = new DataIndex {
                    Key = dataIndexKey, Created = DateTime.Now, Creator = Operator.Name
                };
                return;
            }

            //加载数据
            foreach (var item in DataIndex.Projects)
            {
                var dat = await Load <Project>(item);

                if (dat == null)
                {
                    continue;
                }
                Projects.Add(dat);
            }

            foreach (var item in DataIndex.Todos)
            {
                var dat = await Load <Todo>(item);

                if (dat == null)
                {
                    continue;
                }
                Todos.Add(dat);
                if (string.IsNullOrWhiteSpace(dat.ProjcectId))
                {
                    IndexProject.Todos.Add(dat.Key);
                }
            }

            foreach (var item in DataIndex.DayLogs)
            {
                var dat = await Load <DayLog>(item);

                if (dat == null)
                {
                    continue;
                }
                DayLogs.Add(dat);
                dat.TodoLogs.ForEach(x =>
                {
                    if (string.IsNullOrWhiteSpace(x.ProjcectId))
                    {
                        IndexProject.DayLogs.Add(x.Key);
                    }
                });
            }

            foreach (var item in DataIndex.Reports)
            {
                var dat = await Load <Report>(item);

                if (dat == null)
                {
                    continue;
                }
                Reports.Add(dat);
            }

            MessageAction?.Invoke(MessageTypeUpdate);
        }