Exemple #1
0
        public async Task <Timesheet> DeleteTimesheet(Timesheet timesheet)
        {
            var readModel = _dbContext.Timesheet.FirstOrDefault(o => o.Identity == timesheet.Identity);

            if (readModel is null)
            {
                return(timesheet);
            }

            _dbContext.Timesheet.Remove(readModel);

            timesheet.ClearDomainEvents();

            return(await Task.FromResult(timesheet));
        }
Exemple #2
0
        public Task <Timesheet> AddTimesheet(Timesheet timesheet)
        {
            var readModel = new TimesheetReadModel(timesheet.Identity)
            {
                TeamMemberId    = timesheet.TeamMemberId,
                ProjectAssignId = timesheet.ProjectAssignId,
                Task            = timesheet.Task,
                StartDate       = timesheet.StartDate,
                EndDate         = timesheet.EndDate,
                Duration        = timesheet.Duration
            };

            readModel.TransferDomainEvents(timesheet);

            _dbContext.Timesheet.Add(readModel);

            timesheet.ClearDomainEvents();

            return(Task.FromResult(timesheet));
        }
Exemple #3
0
        public async Task <Timesheet> StopTimesheetAsync(Timesheet timesheet)
        {
            var readModel = _dbContext.Timesheet.FirstOrDefault(o => o.Identity == timesheet.Identity);

            if (readModel is null)
            {
                return(timesheet);
            }

            readModel.TeamMemberId    = timesheet.TeamMemberId;
            readModel.ProjectAssignId = timesheet.ProjectAssignId;
            readModel.Task            = timesheet.Task;
            readModel.StartDate       = timesheet.StartDate;
            readModel.EndDate         = timesheet.EndDate;

            timesheet.DomainEvents.ToList().ForEach(o => readModel.AddDomainEvent(o));

            _dbContext.Timesheet.Update(readModel);

            timesheet.ClearDomainEvents();

            return(await Task.FromResult(timesheet));
        }