private bool ValidateOrganizationForFollowUpUpdate(OrganizationDto organization, InfoSessionFollowUpStatus newStatus) { if (organization == default) { ValidationDictionary.AddModelError("OrganizationId", "Organization with specified Id does not exist"); return(false); } if (organization.FollowUpStatus == newStatus) { ValidationDictionary.AddModelError("No change", "Organization already has specified status"); return(false); } if (organization.FollowUpStatus == InfoSessionFollowUpStatus.NotSent) { ValidationDictionary.AddModelError("Follow up", "First send follow up in order to update it."); return(false); } return(true); }
public async Task UpdateStatusAsync(Guid organizationId, InfoSessionFollowUpStatus newStatus) { await using var context = ContextFactory.CreateDataContext(null); var organizationItems = context.Set <Organization>(); var organization = await organizationItems.AsNoTracking() .Include(org => org.InfoSessionFollowUp) .FirstOrDefaultAsync(org => org.Id == organizationId) .ConfigureAwait(false); var entityToUpdate = organization.InfoSessionFollowUp; if (entityToUpdate != default) { entityToUpdate.Status = newStatus; context.Entry(entityToUpdate).Property(followUp => followUp.Status).IsModified = true; context.Set <InfoSessionFollowUp>().Update(entityToUpdate); await context.SaveChangesAsync().ConfigureAwait(false); } }
public async Task UpdateStatusAsync(string token, InfoSessionFollowUpStatus newStatus) { if (string.IsNullOrWhiteSpace(token)) { throw new ArgumentNullException(nameof(token)); } await using var context = ContextFactory.CreateDataContext(null); var items = context.Set <InfoSessionFollowUp>(); var entityToUpdate = await items.AsNoTracking() .FirstOrDefaultAsync(item => item.Token == token) .ConfigureAwait(false); if (entityToUpdate != default) { entityToUpdate.Status = newStatus; context.Entry(entityToUpdate).Property(followUp => followUp.Status).IsModified = true; items.Update(entityToUpdate); await context.SaveChangesAsync().ConfigureAwait(false); } }