public async Task <IActionResult> PutDbITProviderCredentials(string username, ITProviderCredentials credentials) { if (username != credentials.Provider.Username) { return(BadRequest()); } DbITProviderCredentials dbCredentials = new DbITProviderCredentials(); dbCredentials.toDbITProviderCredentials(credentials); DbITProvider provider = new DbITProvider(); List <DbTechnologies> techs = provider.toDbITProvider(credentials.Provider); DbContactInfo ci = new DbContactInfo(); ci.toDbContactInfo(credentials.Provider.ContactInfo, credentials.Provider.Username); List <DbTechnologies> toDeleteTechs = _context.technologies.Where(tec => tec.Username == username).ToList <DbTechnologies>(); foreach (DbTechnologies t in toDeleteTechs) { _context.technologies.Remove(t); } await _context.SaveChangesAsync(); foreach (DbTechnologies t in techs) { _context.technologies.Add(t); } _context.Entry(dbCredentials).State = EntityState.Modified; _context.Entry(provider).State = EntityState.Modified; _context.Entry(ci).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!DbITProviderCredentialsExists(username)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult <DbITProviderCredentials> > PostDbITProviderCredentials(ITProviderCredentials credentials) { DbITProviderCredentials dbCredentials = new DbITProviderCredentials(); dbCredentials.toDbITProviderCredentials(credentials); _context.ITProviderCredentials.Add(dbCredentials); DbITProvider provider = new DbITProvider(); List <DbTechnologies> techs = provider.toDbITProvider(credentials.Provider); _context.ITProviders.Add(provider); foreach (DbTechnologies tec in techs) { _context.technologies.Add(tec); } DbContactInfo ci = new DbContactInfo(); ci.toDbContactInfo(credentials.Provider.ContactInfo, credentials.Provider.Username); _context.contactInfo.Add(ci); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (DbITProviderCredentialsExists(credentials.Provider.Username)) { return(Conflict()); } else { throw; } } return(CreatedAtAction("GetDbITProviderCredentials", new { id = credentials.Provider.Username }, credentials)); }