/// <summary> /// Will close Custody object /// </summary> /// <param name="idCustody">ID Custody</param> /// <returns></returns> public ActionResponse CloseCustodyByIdAction(int idCustody) { ActionResponse output = new ActionResponse(); try { CustodyData custodyData = new CustodyData(); // Check if custody exists or not Custody oCustody = custodyData.GetCustodyById(idCustody); if (oCustody == null) { return(functions.Response((int)CodeStatusEnum.NO_CONTENT, "No existe ninguna custodia asociada al identificador", null)); } // If custody exists, verify if custody is valid or not ActionResponse isCustodyValid = IsCustodyValid(oCustody); if (isCustodyValid.code != (int)CodeStatusEnum.OK) { return(functions.Response(isCustodyValid.code, isCustodyValid.message, null)); } // If everything is ok, try to close it int res = custodyData.CloseCustody(idCustody); if (res <= 0) { return(functions.Response((int)CodeStatusEnum.INTERNAL_ERROR, "No se pudo actualizar el estado de la custodia", null)); } CloseCustodyResponse response = new CloseCustodyResponse(); response.updated = DateTime.Now; return(functions.Response((int)CodeStatusEnum.OK, "OK", response)); } catch (Exception e) { logger.Fatal(e.Message); return(functions.Response((int)CodeStatusEnum.INTERNAL_ERROR, e.Message, null)); } }
/// <summary> /// Verify if Custody object is valid or not /// </summary> /// <param name="oCustody">Custody object</param> /// <returns></returns> public ActionResponse IsCustodyValid(Custody oCustody) { ActionResponse output = new ActionResponse(); try { CustodyData custodyData = new CustodyData(); // If custody exists, verify if custody is valid or not if (oCustody.expirationDate != null) { DateTime today = DateTime.Now; int compare = DateTime.Compare(today, oCustody.expirationDate.Value); if (compare > 0) { return(functions.Response((int)CodeStatusEnum.CONFLICT, "El código proporcionado corresponde a una custodia expirada", null)); } } if (!oCustody.active.Value) { return(functions.Response((int)CodeStatusEnum.CONFLICT, "La custodia ya fue utilizada o se encuentra inactiva", null)); } return(functions.Response((int)CodeStatusEnum.OK, "OK", true)); } catch (Exception e) { logger.Fatal(e.Message); return(functions.Response((int)CodeStatusEnum.INTERNAL_ERROR, e.Message, null)); } }