예제 #1
0
        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"));
        }
예제 #2
0
        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();
        }