Exemple #1
0
        public async Task Remove(Todo item)
        {
            if (item == null)
            {
                return;
            }

            //检查是否存在
            var data = LoadLogs(item.ProjcectId);
            var todo = data.Todos.FirstOrDefault(x => x.Id == item.Id);

            if (data.Logs.Count(x => x.TodoId == item.Id) > 0)
            {
                //项目不为空,跳过处理
                Console.WriteLine("项目不为空,不能删除。");
                return;
            }

            //移除项目
            Todos.Remove(todo);
            //移除索引
            DataIndex.Todos.Remove(item.Key);
            await Remove(todo.Key);
            await Save(DataIndex);

            MessageAction?.Invoke(MessageTypeUpdate);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        public async Task Remove(Project item)
        {
            if (item == null)
            {
                return;
            }

            //检查是否存在
            var data = LoadLogs(item.Id);

            if (data.Todos.Count > 0)
            {
                //项目不为空,跳过处理
                Console.WriteLine("项目不为空,不能删除。");
                return;
            }

            //移除项目
            Projects.Remove(data.Project);
            //移除索引
            DataIndex.Projects.Remove(item.Key);
            await Remove(data.Project.Key);
            await Save(DataIndex);

            MessageAction?.Invoke(MessageTypeUpdate);
        }
Exemple #5
0
        public async Task Remove(Todo item)
        {
            if (item == null)
            {
                return;
            }

            //检查是否存在
            var data = LoadLogs(item.ProjcectId);
            var todo = data.Todos.FirstOrDefault(x => x.Id == item.Id);

            if (data.Logs.Count(x => x.TodoId == item.Id) > 0)
            {
                //项目不为空,跳过处理
                Console.WriteLine("项目不为空,不能删除。");
                return;
            }

            //移除项目
            using var db = await NewDb;
            var p = db.Todos.FirstOrDefault(x => x.Key == item.Key);

            if (p != null)
            {
                db.Todos.Remove(p);
                await db.SaveChanges();
                await LoadTodo();
            }
            MessageAction?.Invoke(MessageTypeUpdate);
        }
Exemple #6
0
        /// <summary>
        /// 更新报告
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public async Task Update(Report item)
        {
            if (item == null)
            {
                return;
            }
            using var db = await NewDb;
            var report = db.Reports.FirstOrDefault(x => x.Key == item.Key);

            if (Reports == null)
            {
                Created(item);
                db.Reports.Add(item);
            }
            else
            {
                report.End       = item.End;
                report.Items     = item.Items;
                report.ParentKey = item.ParentKey;
                report.Start     = item.Start;
            }
            await db.SaveChanges();

            await LoadReport();

            MessageAction?.Invoke(MessageTypeUpdate);
        }
Exemple #7
0
        /// <summary>
        /// 更新数据
        /// </summary>
        /// <param name="item"></param>
        public async Task Update(Project item)
        {
            if (item == null)
            {
                return;
            }
            dt.Check();
            using var db = await NewDb;
            dt.Check("数据连接");
            var p = db.Projects.FirstOrDefault(x => x.Id == item.Id);

            dt.Check("读取数据");
            if (p == null)
            {
                Created(item);
                db.Projects.Add(item);
            }
            else
            {
                p.Update(item);
            }
            await db.SaveChanges();

            dt.Check("保存");
            await LoadProject();

            dt.Check("重新加载");
            MessageAction?.Invoke(MessageTypeUpdate);
        }
Exemple #8
0
        private async void Init()
        {
            //加载数据
            await LoadProject();
            await LoadTodo();
            await LoadDayLog();

            MessageAction?.Invoke(MessageTypeUpdate);
        }
Exemple #9
0
        /// <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);
        }
Exemple #10
0
        /// <summary>
        /// 更新报告
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public async Task Update(Report item)
        {
            if (item == null)
            {
                return;
            }
            if (string.IsNullOrWhiteSpace(item.Key) || Reports.FirstOrDefault(x => x.Key == item.Key) == null)
            {
                Created(item);
                item.ValueCheck();
                DataIndex.Reports.Add(item.Key);
                await Save(DataIndex);
            }
            await Save(item);

            MessageAction?.Invoke(MessageTypeUpdate);
        }
Exemple #11
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 #12
0
        public async Task Remove(Report item)
        {
            if (item == null)
            {
                return;
            }

            using var db = await NewDb;
            var report = db.Reports.FirstOrDefault(x => x.Key == item.Key);

            if (report == null)
            {
                return;
            }
            Reports.RemoveAll(x => x.Key == item.Key);
            db.Reports.Remove(report);
            await db.SaveChanges();

            MessageAction?.Invoke(MessageTypeUpdate);
        }
Exemple #13
0
        public async Task Remove(Report item)
        {
            if (item == null)
            {
                return;
            }

            var report = Reports.FirstOrDefault(x => x.Key == item.Key);

            if (report == null)
            {
                return;
            }

            await Remove(item.Key);

            DataIndex.Reports.Remove(item.Key);
            await Save(DataIndex);

            MessageAction?.Invoke(MessageTypeUpdate);
        }
Exemple #14
0
        /// <summary>
        /// 更新数据
        /// </summary>
        /// <param name="item"></param>
        public async Task Update(Todo item)
        {
            if (item == null)
            {
                return;
            }
            var p = Todos.FirstOrDefault(x => x.Id == item.Id);

            if (p == null)
            {
                Created(item);
                Todos.Add(item);
                DataIndex.Todos.AddUniq(item.Key);
                await Save(DataIndex);
            }
            else
            {
                p.Update(item);
            }
            await Save(item);

            MessageAction?.Invoke(MessageTypeUpdate);
        }
Exemple #15
0
        /// <summary>
        /// 更新数据
        /// </summary>
        /// <param name="item"></param>
        public async Task Update(Todo item)
        {
            if (item == null)
            {
                return;
            }
            using var db = await NewDb;
            var p = db.Todos.FirstOrDefault(x => x.Id == item.Id);

            if (p == null)
            {
                Created(item);
                db.Todos.Add(item);
            }
            else
            {
                p.Update(item);
            }
            await db.SaveChanges();

            await LoadTodo();

            MessageAction?.Invoke(MessageTypeUpdate);
        }
Exemple #16
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);
        }