public void DeleteState(int id, int sid, int stid)
{
var _p = _db.PD_Processes.Find(id);
if (User.Identity.Name.Equals(_p.LockedBy))
{
PD_Subject i = _db.PD_Subjects.Find(id, sid);
var state = _db.PD_States.Find(id, sid, stid);
if (state != null)
{
var todelete = _db.PD_Transitions.Where(result => result.Source == state.Id && result.PD_Process_Id == id && result.PD_Subject_Id == sid || result.Target == state.Id && result.PD_Process_Id == id && result.PD_Subject_Id == sid);
_db.PD_Transitions.RemoveRange(todelete);
i.States.Remove(state);
_db.SaveChanges();
}
else
{
throw new HttpResponseException(HttpStatusCode.NotFound);
}
}
}