d85bb1fd0e
WIP Fanuc tool table WIP Siemens Active program fix
135 lines
4.8 KiB
C#
135 lines
4.8 KiB
C#
using Step.Database.Controllers;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Security.Claims;
|
|
using System.Web.Http;
|
|
using static Step.Model.Constants;
|
|
using System.Linq;
|
|
using Step.Model.DTOModels.MaintenanceModels;
|
|
using Step.Model.DTOModels.AlarmModels;
|
|
using Step.Model.DatabaseModels;
|
|
|
|
namespace Step.Controllers.WebApi
|
|
{
|
|
[RoutePrefix("api/alarm")]
|
|
public class ApiAlarmController : ApiController
|
|
{
|
|
[Route(""), HttpGet]
|
|
public IHttpActionResult GetAll(int page, int pageSize)
|
|
{
|
|
using (AlarmsController alarm = new AlarmsController())
|
|
{
|
|
var a = alarm.GetPaginated(page, pageSize);
|
|
|
|
return Ok(a);
|
|
}
|
|
}
|
|
|
|
[Route("paginated"), HttpPost]
|
|
public IHttpActionResult GetFiltered([FromBody]DTOAlarmsFilterModel data)
|
|
{
|
|
using (AlarmsController alarm = new AlarmsController())
|
|
{
|
|
var alarms = alarm.GetPaginatedWithFilter(data.Page - 1, data.PageSize, data.StartDate, data.EndDate, data.UserIds);
|
|
|
|
return Ok(alarms);
|
|
}
|
|
}
|
|
|
|
[Route("data"), HttpPost]
|
|
public IHttpActionResult GetAlarmsData(int pageSize)
|
|
{
|
|
using (AlarmsController alarmController = new AlarmsController())
|
|
{
|
|
var alarms = alarmController.GetAlarmsData(pageSize);
|
|
|
|
return Ok(alarms);
|
|
}
|
|
}
|
|
|
|
// Note
|
|
|
|
[Route("{alarmDescId:int}/note"), HttpPost]
|
|
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.USER_FUNCTIONS, Action = ACTIONS.WRITE)]
|
|
public IHttpActionResult AddAlarmNote(int alarmDescId, DTONewAlarmNoteModel note)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
return BadRequest(ModelState);
|
|
|
|
var identity = User.Identity as ClaimsIdentity;
|
|
// Find user id from the bearer token
|
|
var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault();
|
|
|
|
using (AlarmsController alarmsController = new AlarmsController())
|
|
{
|
|
// Check if maintenance id
|
|
AlarmDescriptionsModel dbMaint = alarmsController.FindById(alarmDescId);
|
|
if (dbMaint == null)
|
|
return NotFound();
|
|
|
|
// Update data
|
|
DTOAlarmNoteModel notes = alarmsController.CreateNote(Convert.ToInt32(userId.Value), alarmDescId, note);
|
|
|
|
return Ok(notes);
|
|
}
|
|
}
|
|
|
|
[Route("{alarmDescId:int}/note/{noteId:int}"), HttpPut]
|
|
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.MAINTENANCE, Action = ACTIONS.WRITE)]
|
|
public IHttpActionResult EditAlarmNote(int noteId, DTONewAlarmNoteModel newNote)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
return BadRequest(ModelState);
|
|
|
|
var identity = User.Identity as ClaimsIdentity;
|
|
// Find user id from the bearer token
|
|
var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault();
|
|
|
|
using (AlarmsController alarmsController = new AlarmsController())
|
|
{
|
|
// Check if maintenance id
|
|
AlarmNoteModel dbNote = alarmsController.FindNoteById(noteId);
|
|
if (dbNote == null)
|
|
return NotFound();
|
|
|
|
// Check if user is different
|
|
if (dbNote.UserId != Convert.ToInt32(userId.Value))
|
|
return Unauthorized();
|
|
|
|
// Update data
|
|
DTOAlarmNoteModel notes = alarmsController.UpdateNote(dbNote, newNote);
|
|
|
|
return Ok(notes);
|
|
}
|
|
}
|
|
|
|
[Route("{alarmDescId:int}/note/{noteId:int}"), HttpDelete]
|
|
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.MAINTENANCE, Action = ACTIONS.WRITE)]
|
|
public IHttpActionResult DeleteAlarmNote(int noteId)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
return BadRequest(ModelState);
|
|
|
|
var identity = User.Identity as ClaimsIdentity;
|
|
// Find user id from the bearer token
|
|
var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault();
|
|
|
|
using (AlarmsController alarmsController = new AlarmsController())
|
|
{
|
|
// Check if maintenance id
|
|
AlarmNoteModel dbNote = alarmsController.FindNoteById(noteId);
|
|
if (dbNote == null)
|
|
return NotFound();
|
|
|
|
// Check if user is different
|
|
if (dbNote.UserId != Convert.ToInt32(userId.Value))
|
|
return Unauthorized();
|
|
|
|
// Update data
|
|
alarmsController.DeleteNote(dbNote.NoteId);
|
|
|
|
return Ok();
|
|
}
|
|
}
|
|
}
|
|
} |