public HttpResponseMessage Modify (int idSensorTelemetry, [FromBody] SensorTelemetryDTO dto) { // CAD, CEN, returnValue SensorTelemetryRESTCAD sensorTelemetryRESTCAD = null; SensorTelemetryCEN sensorTelemetryCEN = null; SensorTelemetryDTOA returnValue = null; // HTTP response HttpResponseMessage response = null; string uri = null; try { SessionInitializeTransaction (); sensorTelemetryRESTCAD = new SensorTelemetryRESTCAD (session); sensorTelemetryCEN = new SensorTelemetryCEN (sensorTelemetryRESTCAD); // Modify sensorTelemetryCEN.Modify (idSensorTelemetry, dto.Name , dto.SensorType ); // Return modified object returnValue = SensorTelemetryAssembler.Convert (sensorTelemetryRESTCAD.ReadOIDDefault (idSensorTelemetry), session); SessionCommit (); } catch (Exception e) { SessionRollBack (); if (e.GetType () == typeof(HttpResponseException)) throw e; else if (e.GetType () == typeof(MoSIoTGenNHibernate.Exceptions.ModelException) && e.Message.Equals ("El token es incorrecto")) throw new HttpResponseException (HttpStatusCode.Forbidden); else if (e.GetType () == typeof(MoSIoTGenNHibernate.Exceptions.ModelException) || e.GetType () == typeof(MoSIoTGenNHibernate.Exceptions.DataLayerException)) throw new HttpResponseException (HttpStatusCode.BadRequest); else throw new HttpResponseException (HttpStatusCode.InternalServerError); } finally { SessionClose (); } // Return 404 - Not found if (returnValue == null) return this.Request.CreateResponse (HttpStatusCode.NotFound); // Return 200 - OK else{ response = this.Request.CreateResponse (HttpStatusCode.OK, returnValue); return response; } }
public static SensorTelemetryDTOA Convert(SpecificTelemetryEN en, NHibernate.ISession session = null) { SensorTelemetryDTOA dto = null; SensorTelemetryRESTCAD sensorTelemetryRESTCAD = null; SensorTelemetryCEN sensorTelemetryCEN = null; SensorTelemetryCP sensorTelemetryCP = null; if (en != null) { dto = new SensorTelemetryDTOA(); sensorTelemetryRESTCAD = new SensorTelemetryRESTCAD(session); sensorTelemetryCEN = new SensorTelemetryCEN(sensorTelemetryRESTCAD); sensorTelemetryCP = new SensorTelemetryCP(session); SensorTelemetryEN enHijo = sensorTelemetryRESTCAD.ReadOIDDefault(en.Id); // // Attributes dto.Id = en.Id; if (enHijo != null) { dto.SensorType = enHijo.SensorType; } // // TravesalLink // // Service } return(dto); }
public HttpResponseMessage New_ ( [FromBody] SensorTelemetryDTO dto) { // CAD, CEN, returnValue, returnOID SensorTelemetryRESTCAD sensorTelemetryRESTCAD = null; SensorTelemetryCEN sensorTelemetryCEN = null; SensorTelemetryDTOA returnValue = null; int returnOID = -1; // HTTP response HttpResponseMessage response = null; string uri = null; try { SessionInitializeTransaction (); sensorTelemetryRESTCAD = new SensorTelemetryRESTCAD (session); sensorTelemetryCEN = new SensorTelemetryCEN (sensorTelemetryRESTCAD); // Create returnOID = sensorTelemetryCEN.New_ ( //Atributo OID: p_telemetry // attr.estaRelacionado: true dto.Telemetry_oid // association role , dto.Name //Atributo Primitivo: p_name , dto.SensorType //Atributo Primitivo: p_sensorType ); SessionCommit (); // Convert return returnValue = SensorTelemetryAssembler.Convert (sensorTelemetryRESTCAD.ReadOIDDefault (returnOID), session); } catch (Exception e) { SessionRollBack (); if (e.GetType () == typeof(HttpResponseException)) throw e; else if (e.GetType () == typeof(MoSIoTGenNHibernate.Exceptions.ModelException) && e.Message.Equals ("El token es incorrecto")) throw new HttpResponseException (HttpStatusCode.Forbidden); else if (e.GetType () == typeof(MoSIoTGenNHibernate.Exceptions.ModelException) || e.GetType () == typeof(MoSIoTGenNHibernate.Exceptions.DataLayerException)) throw new HttpResponseException (HttpStatusCode.BadRequest); else throw new HttpResponseException (HttpStatusCode.InternalServerError); } finally { SessionClose (); } // Return 201 - Created response = this.Request.CreateResponse (HttpStatusCode.Created, returnValue); // Location Header /* * Dictionary<string, object> routeValues = new Dictionary<string, object>(); * * // TODO: y rolPaths * routeValues.Add("id", returnOID); * * uri = Url.Link("GetOIDSensorTelemetry", routeValues); * response.Headers.Location = new Uri(uri); */ return response; }