Example #1
0
        public async void AddTask(string name, DateTime date, int type, string notes, int taskId)
        {
            date = new DateTime(date.Year, date.Month, date.Day, 0, 0, 0);
            if (taskId == 0)
            {
                var wtdTask = new WTDTask {
                    Name = name, Date = date, TypeId = type
                };
                await _wtdTaskRepository.Insert(wtdTask);

                if (!string.IsNullOrEmpty(notes))
                {
                    await _noteRepository.Insert(
                        new Note
                    {
                        Type   = (int)NoteType.Task,
                        TypeId = wtdTask.ID,
                        Notes  = notes,
                        Meta   = string.Format("{0}{1}{2}", (int)NoteType.Task, type, date.ToString("ddMMMyyyy"))
                    });
                }
            }
            else
            {
                var wtdTask = await _wtdTaskRepository.Get(taskId);

                wtdTask.Name   = name;
                wtdTask.TypeId = type;
                wtdTask.Date   = date;
                await _wtdTaskRepository.Update(wtdTask);

                var note = await _noteRepository.Get(predicate : x => x.Type == (int)NoteType.Task && x.TypeId == taskId);

                if (note == null)
                {
                    if (!string.IsNullOrEmpty(notes))
                    {
                        await _noteRepository.Insert(
                            new Note
                        {
                            Type   = (int)NoteType.Task,
                            TypeId = taskId,
                            Notes  = notes,
                            Meta   = string.Format("{0}{1}{2}", (int)NoteType.Task, type, date.ToString("ddMMMyyyy"))
                        });
                    }
                }
                else
                {
                    note.Type   = (int)NoteType.Task;
                    note.TypeId = taskId;
                    note.Notes  = notes;
                    note.Meta   = string.Format("{0}{1}{2}", (int)NoteType.Task, type, date.ToString("ddMMMyyyy"));
                    await _noteRepository.Update(note);
                }
            }
        }
        public WTDTaskEditViewModel()
        {
            Date = DateTime.Now;

            _wtdTaskManager = new WTDTaskManager();
            _noteManager    = new NoteManager();
            TaskTypes       = GetTaskTypes();

            MessagingCenter.Subscribe <WTDTaskViewModel, WTDTask>(this, "EditTask", async(message, args) =>
            {
                _selectedTask = args;
                Date          = _selectedTask.Date;
                if (_selectedTask.ID > 0)
                {
                    Name = _selectedTask.Name;

                    TypeStr = GetType(_selectedTask.TypeId);

                    var notesResult = await _noteManager.GetNote((int)NoteType.Task, _selectedTask.ID);
                    Notes           = notesResult == null ? string.Empty : notesResult.Notes;
                }
            });
        }