public async Task <Archive> CheckName(UpdateArchive viewModel) { Archive archive = await Context.Archive .TagWith("CheckName") .AsNoTracking() .FirstOrDefaultAsync(x => x.Name == viewModel.Name && x.Id != viewModel.Id); if (archive != null) { // Log string logData = archive.GetType().Name + " with Name " + archive.Name + " was already found at " + DateTime.Now.ToShortTimeString(); Logger.WriteGetItemFoundLog(logData); throw new Exception(archive.GetType().Name + " with Name " + viewModel.Name + " already exists"); } return(archive); }
public async Task <ViewArchive> UpdateArchive(UpdateArchive viewModel) { await CheckName(viewModel); Archive archive = await FindArchiveById(viewModel.Id); archive.Name = viewModel.Name; archive.By = await FindApplicationUserByEmail(viewModel.By.Email); archive.ApplicationUserArchives = new List <ApplicationUserArchive>(); Context.Archive.Update(archive); UpdateApplicationUserArchive(viewModel, archive); UpdateArchiveVersion(viewModel, archive); await Context.SaveChangesAsync(); // Log string logData = archive.GetType().Name + " with Id " + archive.Id + " was modified at " + DateTime.Now.ToShortTimeString(); Logger.WriteUpdateItemLog(logData); return(Mapper.Map <ViewArchive>(archive)); }
public void UpdateArchiveVersion(UpdateArchive viewModel, Archive entity) { ArchiveVersion archiveVersion = new() { Archive = entity, Data = viewModel.Data, Size = viewModel.Size, Type = viewModel.Type }; entity.ArchiveVersions.Add(archiveVersion); }
public void UpdateApplicationUserArchive(UpdateArchive viewModel, Archive entity) { viewModel.ApplicationUsersId.AsQueryable().ToList().ForEach(async x => { ApplicationUser applicationUser = await FindApplicationUserById(x); ApplicationUserArchive arenalPoblacion = new() { Archive = entity, ApplicationUser = applicationUser, }; entity.ApplicationUserArchives.Add(arenalPoblacion); }); }