public async Task <IActionResult> Create([FromBody] CreateMaintenanceTaskDto maintenanceTask)
        {
            try {
                if (!ModelState.IsValid)
                {
                    var errors = ModelState.Values.Select(inv => inv.Errors.Select(er => er.ErrorMessage));
                    return(BadRequest(new { errors }));
                }
                var newTask = await _service.Create(new MaintenanceTask {
                    Description     = maintenanceTask.Description,
                    FactoryDeviceId = (int)maintenanceTask.FactoryDeviceId,
                    Criticality     = (Criticality)maintenanceTask.Criticality,
                    Time            = DateTime.Parse(maintenanceTask.Time)
                });

                if (newTask == null)
                {
                    return(BadRequest(new { error = "Device with provided id not found" }));
                }

                return(CreatedAtAction(nameof(Get), new { newTask }, new MaintenanceTaskDto {
                    Id = newTask.Id,
                    Description = newTask.Description,
                    FactoryDeviceId = newTask.FactoryDeviceId,
                    Criticality = newTask.Criticality.ToString(),
                    Time = newTask.Time,
                    Done = newTask.Done
                }));
            } catch (DbUpdateException ue) {
                ConsoleLogError("Create", ue, "DbUpdateException");
                if (((MySql.Data.MySqlClient.MySqlException)ue.InnerException).Number == 1452)
                {
                    return(BadRequest(new { error = "Device with provided id not found" }));
                }
                return(Conflict());
            } catch (Exception e) {
                ConsoleLogError("Create", e);
                return(StatusCode(500));
            }
        }
Example #2
0
 private async Task <MaintenanceTask> CreateMT(
     IMaintenanceTaskService service, MaintenanceTask task)
 {
     return(await service.Create(task));
 }