public async void CreateOrSaveDB()
        {
            //var mainview = Application.Current.MainWindow as MetroWindow;
            var c = new LocalIssue()
            {
                //Id=3,
                Head     = "very fake issue",
                Body     = "fat body for fat issue",
                Color    = "reed",
                Created  = DateTime.Now,
                Modified = DateTime.Now,
                Row      = new RowInfo {
                    Name = "changingbysaving", Order = 2, Id = 4
                },
                Column = new ColumnInfo {
                    Name = "firstco2134lss", Order = 1, Id = 3
                },
            };
            var t = new ColumnInfo {
                Name = "firstcolsscs", Order = 1, Id = 3
            };

            // _repos = new SqliteLocalRepository(@"C:\ArsMak\Kanban.Desktop\Kanban.Desktop\Data.Sources.LocalStorage.Sqlite.Tests\bin\Debug\lololo.db");

            var cc = await repos.CreateOrUpdateIssueAsync(c);

            var tt = await repos.CreateOrUpdateColumnAsync(t);
        }
예제 #2
0
        public IssueViewModel()
        {
            mapper = CreateMapper();

            var issueFilled = this.WhenAnyValue(t => t.Head, t => t.Body, t => t.Row, t => t.Column,
                                                (sh, sb, sr, sc) => sr != null && sc != null &&
                                                !string.IsNullOrEmpty(sh) && !string.IsNullOrEmpty(sb));

            //TODO :add selectcommand when click uneditable with nulling all "selected" fields

            SaveCommand = ReactiveCommand.CreateFromTask(async _ =>
            {
                var editedIssue = new LocalIssue()
                {
                    Board = board
                };

                mapper.Map(this, editedIssue);

                if (editedIssue.Id == 0)
                {
                    editedIssue.Created = DateTime.Now;
                }

                editedIssue.Modified = DateTime.Now;

                await scope.CreateOrUpdateIssueAsync(editedIssue);

                IsOpened     = false;
                IssueChanged = true;
            }, issueFilled);

            CancelCommand = ReactiveCommand.Create(() => IsOpened = false);
        }
        //[Test]
        public async void RepShouldUpdateIssues()
        {
            // _repos = new SqliteLocalRepository("vsqwe");
            LocalIssue newiss = new LocalIssue()
            {
                //Id=3,
                Head     = "very fake issue",
                Body     = "fat body for fat issue",
                Color    = "reed",
                Created  = DateTime.Now,
                Modified = DateTime.Now,
                Row      = new RowInfo {
                    Name = "changingbysaving", Order = 2, Id = 4
                },
                Column = new ColumnInfo {
                    Name = "firstcolss", Order = 1, Id = 3
                },
            };

            // RowInfo newrow = new RowInfo { Name = "newrow", Order = 242, Width = 14 };
            var filt = new NameValueCollection();
            //var t=await _repos.CreateOrUpdateIssueAsync(newiss);
            //var t = _repos.GetIssues(filt);
            //var tt = t.Where(i => i.Id == 1);
            await repos.DeleteIssueAsync(17);

            // var newnew = _repos.CreateOrUpdateIssueAsync(newiss);
        }
        public async Task<LocalIssue> CreateOrUpdateIssueAsync(LocalIssue issue)
        {
            using (context = new SqliteContext(BaseConnstr))
            {
                var existed = context.Issue
                    .AsNoTracking()
                    .Include(i => i.Row)
                    .Include(i => i.Column)
                    .FirstOrDefault(iss => iss.Id == issue.Id);
                mapper.Map(issue, existed);

                if (existed == null)
                {
                    var newiss = mapper.Map<SqliteIssue>(issue);
                    context.Attach(newiss.Row);
                    context.Attach(newiss.Column);

                    await context.AddAsync(newiss);
                    await context.SaveChangesAsync();
                    context.Update(newiss.Column);
                    context.Update(newiss.Row);
                    await context.SaveChangesAsync();
                    return mapper.Map<LocalIssue>(newiss);
                }

                context.Update(existed);
                await context.SaveChangesAsync();
                return issue;
            }
        }
예제 #5
0
        public async Task <LocalIssue> LoadOrCreateIssueAsync(int?issueId)
        {
            var t = new LocalIssue();

            if (issueId.HasValue)
            {
                t = await repo.GetIssueAsync(issueId.Value);
            }

            return(t);
        }
예제 #6
0
        public IssueViewModel()
        {
            mapper = CreateMapper();

            var issueFilled = this.WhenAnyValue(t => t.Head, t => t.Body, t => t.Row, t => t.Column,
                                                (sh, sb, sr, sc) => sr != null && sc != null &&
                                                !string.IsNullOrEmpty(sh) && !string.IsNullOrEmpty(sb));

            //TODO :add selectcommand when click uneditable with nulling all "selected" fields

            SaveCommand = ReactiveCommand.CreateFromTask(async _ =>
            {
                var editedIssue = new LocalIssue();

                mapper.Map(this, editedIssue);

                await scope.SaveIssueAsync(editedIssue);

                Close();
            }, issueFilled);

            CancelCommand = ReactiveCommand.Create(Close);
        }
예제 #7
0
 public async Task CreateOrUpdateIssueAsync(LocalIssue issue)
 {
     await repo.CreateOrUpdateIssueAsync(issue);
 }
예제 #8
0
 public async Task SaveIssueAsync(LocalIssue issue)
 {
     issue.Modified = DateTime.Now;
     await repo_.CreateOrUpdateIssueAsync(issue);
 }