/// <summary> /// Modificar un tipo de documento. En el cuerpo del mensaje se envía en el formato adecuado el objeto con los datos modificados /// </summary> /// <param name="id"> Identificador único del tipo </param> /// <param name="tipoDocumento">Tipo de documento con los valores que se desean en sus atributos</param> /// <param name="tk"> Tique de autorización (Ver 'Login')</param> /// <returns></returns> public virtual TipoDocumento Put(int id, TipoDocumento tipoDocumento, string tk) { using (PortalProContext ctx = new PortalProContext()) { // comprobar el tique if (!CntWebApiSeguridad.CheckTicket(tk, ctx)) { throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Se necesita tique de autorización (Tipos de documentos)")); } // comprobar los formatos if (tipoDocumento == null || id != tipoDocumento.TipoDocumentoId) { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest)); } // primero buscamos si un grupo con ese id existe TipoDocumento gu = (from g in ctx.TipoDocumentos where g.TipoDocumentoId == id select g).FirstOrDefault<TipoDocumento>(); // existe? if (gu == null) { throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No hay un tipo con el id proporcionado (Tipos de documentos)")); } // modificar el objeto ctx.AttachCopy<TipoDocumento>(tipoDocumento); ctx.SaveChanges(); return tipoDocumento; } }
/// <summary> /// Crear un nuevo tipo de documento /// </summary> /// <param name="tipoDocumento">Objeto a crear, el atributo TipoDocumentoId lo genera la aplicación y es devuelto en el objeto incluido en la respuesta.</param> /// <param name="tk"> Tique de autorización (se debe obtener con la accion Login)</param> /// <returns></returns> public virtual TipoDocumento Post(TipoDocumento tipoDocumento, string tk) { using (PortalProContext ctx = new PortalProContext()) { // comprobar el tique if (!CntWebApiSeguridad.CheckTicket(tk,ctx)) { throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Se necesita tique de autorización (Tipos de documentos)")); } // comprobar las precondiciones if (tipoDocumento == null) { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest)); } // dar de alta el objeto en la base de datos y devolverlo en el mensaje ctx.Add(tipoDocumento); ctx.SaveChanges(); return tipoDocumento; } }