private async Task <DotnetApps> SaveDotnetApp(DotnetApps dotnetApp) { var existingDotnetApp = await GetDotnetApp(dotnetApp.Repo, dotnetApp.Path); if (await HasDuplicateDotnetApp(dotnetApp.Name, dotnetApp.Repo, dotnetApp.Path)) { dotnetApp.Name = ($"{dotnetApp.Repo.Replace("mdsol/", string.Empty)}_{dotnetApp.Name}").Replace(".csproj", string.Empty); } using (var context = new PikapikaContext(_options)) { if (existingDotnetApp != null) { dotnetApp.Id = existingDotnetApp.Id; context.DotnetApps.Update(dotnetApp); } else { context.DotnetApps.Add(dotnetApp); } context.SaveChanges(); } return(dotnetApp); }
private async Task DeleteDotnetApp(DotnetApps dotnetApp) { using (var context = new PikapikaContext(_options)) { foreach (var reference in await context.DotnetAppDotnetNugets .Where(reference => reference.DotnetAppId == dotnetApp.Id).ToListAsync()) { context.Entry(reference).State = EntityState.Deleted; } context.Entry(dotnetApp).State = EntityState.Deleted; context.SaveChanges(); } }