static async Task <(int Count, string Message, Meeting?Entity)> AddNew(ModulesDbContext dbContext, Meeting entity) { dbContext.Add(entity); var result = await dbContext.SaveChangesAsync(); return(result.SaveResult(entity)); }
static async Task <(int Count, string Message, Module?Entity)> AddNew(ModulesDbContext dbContext, Module entity, ModuleOwnershipRef ownerRef) { if (entity.ModuleOwnerships.Count == 0) { entity.ModuleOwnerships.Add(CreateModuleOwnership(ownerRef)); } dbContext.Add(entity); var result = await dbContext.SaveChangesAsync(); return(result.SaveResult(entity));
static async Task <(int Count, string Message, Meeting?Entity)> UpdateExisting(ModulesDbContext dbContext, Meeting entity, Meeting existing) { dbContext.Entry(existing).CurrentValues.SetValues(entity); AddOrRemoveLayouts(dbContext, entity, existing); if (IsUnchanged(dbContext, existing)) { return((-1).SaveResult(existing)); } var result = await dbContext.SaveChangesAsync(); return(result.SaveResult(existing)); }
static async Task <(int Count, string Message, Module?Entity)> UpdateExisting(ModulesDbContext dbContext, Module entity, Module existing) { if (await IfStationWillHaveNoReferringModules(dbContext, entity, existing)) { return(Strings.StationMustHaveAtLeastOneModuleReferringToIt.SaveResult(entity)); } dbContext.Entry(existing).CurrentValues.SetValues(entity); AddOrRemoveExits(dbContext, entity, existing); if (IsUnchanged(dbContext, existing)) { return((-1).SaveResult(existing)); } var result = await dbContext.SaveChangesAsync(); return(result.SaveResult(existing));
static async Task <(int Count, string Message, Meeting?Entity)> UpdateExisting(ModulesDbContext dbContext, Meeting entity, Meeting existing) { if (IsMovedTooFarInTime(existing, entity)) { return(0, "MeetingDatesCannotBeChanged", entity); } dbContext.Entry(existing).CurrentValues.SetValues(entity); AddOrRemoveLayouts(dbContext, entity, existing); if (IsUnchanged(dbContext, existing)) { return((-1).SaveResult(existing)); } var result = await dbContext.SaveChangesAsync().ConfigureAwait(false); return(result.SaveResult(existing)); }