public async Task <IActionResult> CreateIncident(IncidentDTO incidentDTO) { try { if (!_dataService.HasAccount(incidentDTO.AccountName)) { return(NotFound()); } await _dataService.CreateIncident(incidentDTO); } catch (DbUpdateException) { return(BadRequest()); } return(Ok("Incident created")); }
public async Task <IActionResult> Post([FromBody] IncidentDTO body) { // string id = User.Claims.First(x => x.Type == "UserID").Value; //string role = authentification.Users.FirstOrDefault(x => x.Id == id).Role; if (body.Role != "Dispatcher") { return(Unauthorized()); } else { Incident inc = new Incident(); inc.Type = body.Incident.Type; inc.Confirmed = body.Incident.Confirmed; inc.Status = body.Incident.Status; inc.ETA = body.Incident.ETA; inc.ATA = body.Incident.ATA; inc.ETR = body.Incident.ETR; inc.AffectedCustomers = body.Incident.AffectedCustomers; inc.Voltage = body.Incident.Voltage; inc.ScheduledTime = body.Incident.ScheduledTime; inc.Cause = body.Incident.Cause; inc.Subcause = body.Incident.SubCause; inc.ConstructionType = body.Incident.ConstructionType; inc.Material = body.Incident.Material; inc.Crew = data.Crews.FirstOrDefault(x => x.Id == body.Crew); foreach (DeviceDTO device in body.Devices) { await data.IncidentsDevices.AddAsync(new IncidentDevice() { Incident = inc, Device = data.Devices.FirstOrDefault(x => x.Name == device.Name) }); } await data.Incidents.AddAsync(inc); await data.SaveChangesAsync(); return(Ok()); } }
public async Task CreateIncident(IncidentDTO incidentDto) { var dbAccount = GetAccountByName(incidentDto.AccountName); Contact dbContact = GetContactByEmail(incidentDto.ContactEmail); if (dbContact != null) { UpdateContact(dbContact, incidentDto.ContactFirstName, incidentDto.ContactLastName, dbAccount); } else { Contact newContact = new Contact() { Email = incidentDto.ContactEmail, FirstName = incidentDto.ContactFirstName, LastName = incidentDto.ContactLastName, AccountName = dbAccount.Name }; if (dbAccount.Contacts == null) { dbAccount.Contacts = new List <Contact>(); } dbAccount.Contacts.Add(newContact); _dbContext.Contacts.Add(newContact); } Incident incident = new Incident() { Description = incidentDto.Description }; incident.Accounts = new List <Account>(); incident.Accounts.Add(dbAccount); dbAccount.IncidentName = incident.Name; _dbContext.Incidents.Add(incident); await _dbContext.SaveChangesAsync(); }