public async Task <Archive> CheckName(AddArchive viewModel) { Archive archive = await Context.Archive .TagWith("CheckName") .AsNoTracking() .FirstOrDefaultAsync(x => x.Name == viewModel.Name); 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> AddArchive(AddArchive viewModel) { await CheckName(viewModel); Archive archive = new() { Name = viewModel.Name, By = await FindApplicationUserByEmail(viewModel.By.Email), ApplicationUserArchives = new List <ApplicationUserArchive>(), ArchiveVersions = new List <ArchiveVersion>() }; await Context.Archive.AddAsync(archive); AddApplicationUserArchive(viewModel, archive); AddArchiveVersion(viewModel, archive); await Context.SaveChangesAsync(); // Log string logData = archive.GetType().Name + " with Id " + archive.Id + " was added at " + DateTime.Now.ToShortTimeString(); Logger.WriteInsertItemLog(logData); return(Mapper.Map <ViewArchive>(archive)); }
public void AddArchiveVersion(AddArchive viewModel, Archive entity) { ArchiveVersion archiveVersion = new() { Archive = entity, Data = viewModel.Data, Size = viewModel.Size, Type = viewModel.Type }; entity.ArchiveVersions.Add(archiveVersion); }
public void AddApplicationUserArchive(AddArchive 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); }); }