コード例 #1
0
ファイル: ProjectDenormalizer.cs プロジェクト: stgolem/Scrumr
 public void Handle(SprintFinished evnt)
 {
     using (var context = new ReadModelContainer())
     {
         var sprint = context.Sprints.Single(s => s.Id == evnt.SprintId);
         sprint.IsActive = false;
     }
 }
コード例 #2
0
 public void Handle(NoteDailySummaryUpdated evnt)
 {
     using (var context = new ReadModelContainer())
     {
         var noteSummary = context.TotalsPerDayItemSet.SingleOrDefault(i => i.SummaryId == evnt.SummaryId);
         noteSummary.EditCount = evnt.EditCount;
         noteSummary.NewCount  = evnt.NewCount;
         context.SaveChanges();
     }
 }
コード例 #3
0
        public void Handle(NoteTextChanged evnt)
        {
            using (var context = new ReadModelContainer())
            {
                var itemToUpdate = context.NoteItemSet.Single(item => item.Id == evnt.NoteId);
                itemToUpdate.Text = evnt.NewText;

                context.SaveChanges();
            }
        }
コード例 #4
0
ファイル: NoteItemDenormalizer.cs プロジェクト: zonaid/ncqrs
        public void Handle(IPublishedEvent <NoteTextChanged> evnt)
        {
            using (var context = new ReadModelContainer())
            {
                var itemToUpdate = context.NoteItemSet.Single(item => item.Id == evnt.EventSourceId);
                itemToUpdate.Text = evnt.Payload.NewText;

                context.SaveChanges();
            }
        }
コード例 #5
0
 public void Handle(NoteDailySummaryCreated evnt)
 {
     using (var context = new ReadModelContainer())
     {
         var noteSummary = new TotalsPerDayItem()
         {
             Date = evnt.Date, EditCount = evnt.EditCount, SummaryId = evnt.SummaryId, NewCount = evnt.NewCount
         };
         context.TotalsPerDayItemSet.AddObject(noteSummary);
         context.SaveChanges();
     }
 }
コード例 #6
0
ファイル: ProjectDenormalizer.cs プロジェクト: stgolem/Scrumr
        public void Handle(NewProjectCreated evnt)
        {
            using (var context = new ReadModelContainer())
            {
                var newProject = new Project
                {
                    Id        = evnt.ProjectId,
                    Name      = evnt.Name,
                    ShortCode = evnt.ShortCode
                };

                context.AddToProjects(newProject);
                context.SaveChanges();
            }
        }
コード例 #7
0
        public void Handle(NewNoteAdded evnt)
        {
            using (var context = new ReadModelContainer())
            {
                var newItem = new NoteItem
                {
                    Id           = evnt.NoteId,
                    Text         = evnt.Text,
                    CreationDate = evnt.CreationDate
                };

                context.NoteItemSet.AddObject(newItem);
                context.SaveChanges();
            }
        }
コード例 #8
0
        public ActionResult Report()
        {
            IEnumerable <TotalsPerDayItem> items;

            using (var context = new ReadModelContainer())
            {
                var query = from item in context.TotalsPerDayItemSet
                            orderby item.Date descending
                            select item;

                items = query.ToArray();
            }

            return(View(items));
        }
コード例 #9
0
        public ActionResult Index()
        {
            IEnumerable <NoteItem> items;

            using (var context = new ReadModelContainer())
            {
                var query = from item in context.NoteItemSet
                            orderby item.CreationDate
                            select item;

                items = query.ToArray();
            }

            return(View(items));
        }
コード例 #10
0
ファイル: ProjectController.cs プロジェクト: stgolem/Scrumr
        public ActionResult ScrumBoard(Guid sprintId)
        {
            using (var context = new ReadModelContainer())
            {
                context.ContextOptions.LazyLoadingEnabled   = false;
                context.ContextOptions.ProxyCreationEnabled = false;

                var sprint = context.Sprints.Include("Stages").Include("Stories").Include("Stories.Tasks").Single
                             (
                    s => s.Id == sprintId
                             );

                return(View(sprint));
            }
        }
コード例 #11
0
ファイル: ProjectDenormalizer.cs プロジェクト: stgolem/Scrumr
        public void Handle(AddNewStoryToSprint evnt)
        {
            using (var context = new ReadModelContainer())
            {
                var sprint   = context.Sprints.Single(s => s.Id == evnt.SprintId);
                var newStory = new Story
                {
                    Id          = evnt.StoryId,
                    Description = evnt.Description,
                    Sprint      = sprint
                };

                context.AddToStories(newStory);
                context.SaveChanges();
            }
        }
コード例 #12
0
ファイル: ProjectDenormalizer.cs プロジェクト: stgolem/Scrumr
        public void Handle(NewStageAddedToSprint evnt)
        {
            using (var context = new ReadModelContainer())
            {
                var sprint   = context.Sprints.Single(s => s.Id == evnt.SprintId);
                var newStage = new Stage
                {
                    Id     = evnt.StageId,
                    Name   = evnt.Name,
                    Sprint = sprint
                };

                context.AddToStages(newStage);
                context.SaveChanges();
            }
        }
コード例 #13
0
        public ActionResult Edit(Guid id)
        {
            NoteItem item;

            using (var context = new ReadModelContainer())
            {
                item = context.NoteItemSet.Single(note => note.Id == id);
            }

            var command = new ChangeNoteText();

            command.NoteId  = id;
            command.NewText = item.Text;

            return(View(command));
        }
コード例 #14
0
ファイル: ProjectDenormalizer.cs プロジェクト: stgolem/Scrumr
        public void Handle(SprintAddedToProject evnt)
        {
            using (var context = new ReadModelContainer())
            {
                var newSprint = new Sprint
                {
                    Id        = evnt.SprintId,
                    ProjectId = evnt.ProjectId,
                    Name      = evnt.Name,
                    From      = evnt.From,
                    To        = evnt.To
                };

                context.AddToSprints(newSprint);
                context.SaveChanges();
            }
        }
コード例 #15
0
        public void Handle(NewNoteAdded evnt)
        {
            using (var context = new ReadModelContainer())
            {
                var date          = evnt.CreationDate.Date;
                var totalsForDate = context.TotalsPerDayItemSet.SingleOrDefault(i => i.Date == date);

                if (totalsForDate == null)
                {
                    totalsForDate = new TotalsPerDayItem {
                        Id = 1, Date = date
                    };
                    context.TotalsPerDayItemSet.AddObject(totalsForDate);
                }

                totalsForDate.NewCount++;
                context.SaveChanges();
            }
        }
コード例 #16
0
ファイル: ProjectDenormalizer.cs プロジェクト: stgolem/Scrumr
        public void Handle(NewTaskAddedToStory evnt)
        {
            using (var context = new ReadModelContainer())
            {
                var story = context.Stories.Single(s => s.Id == evnt.StoryId);
                var stage = context.Stages.Single(s => s.Id == evnt.StageId);

                var newTask = new Task
                {
                    Id          = evnt.TaskId,
                    Story       = story,
                    Stage       = stage,
                    Description = evnt.Description
                };

                context.AddToTasks(newTask);
                context.SaveChanges();
            }
        }
コード例 #17
0
        public void Handle(NoteTextChanged evnt)
        {
            using (var context = new ReadModelContainer())
            {
                var date          = evnt.EventTimeStamp.Date;
                var totalsForDate = context.TotalsPerDayItemSet.SingleOrDefault(i => i.Date == date);

                if (totalsForDate == null)
                {
                    totalsForDate = new TotalsPerDayItem {
                        Date = date
                    };
                    context.TotalsPerDayItemSet.AddObject(totalsForDate);
                }

                totalsForDate.EditCount++;

                context.SaveChanges();
            }
        }
コード例 #18
0
        public void Handle(NewNoteAdded evnt)
        {
            using (var context = new ReadModelContainer())
            {
                var existing = context.NoteItemSet.SingleOrDefault(x => x.Id == evnt.NoteId);
                if (existing != null)
                {
                    return;
                }

                var newItem = new NoteItem
                {
                    Id           = evnt.NoteId,
                    Text         = evnt.Text,
                    CreationDate = evnt.CreationDate
                };

                context.NoteItemSet.AddObject(newItem);
                context.SaveChanges();
            }
        }
コード例 #19
0
ファイル: NoteController.cs プロジェクト: mojamcpds/ncqrs
        public ActionResult Add(CreateNewNote command)
        {
            Guid summaryId;

            using (var context = new ReadModelContainer())
            {
                var query = from item in context.TotalsPerDayItemSet
                            where item.Date == System.DateTime.Now.Date
                            orderby item.Date descending
                            select item.SummaryId;

                Guid.TryParse(query.ToString(), out summaryId);
            }
            command.SummaryId = summaryId;
            var service = new MyNotesCommandServiceClient();

            service.CreateNewNote(command);

            // Return user back to the index that
            // displays all the notes.));
            return(RedirectToAction("Index"));
        }