예제 #1
0
        /// <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));
            }
        }
예제 #2
0
        /// <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));
            }
        }