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)); }
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)); }
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)); }