public async Task <IActionResult> OnGetAsync(int code)
        {
            Contract = await _contractService.Get(code);

            if (Contract is null)
            {
                return(RedirectToPage("./NotFound"));
            }
            return(Page());
        }
        private List <IDbDataParameter> CreateParameters(ContractMO contract)
        {
            List <IDbDataParameter> parameters = new List <IDbDataParameter>();

            parameters.Add(_repository.CreateParameter(PARAMETER_codContract, DbType.Int32, contract.Code));
            parameters.Add(_repository.CreateParameter(PARAMETER_clientName, DbType.String, contract.ClientName));
            parameters.Add(_repository.CreateParameter(PARAMETER_type, DbType.Int32, (int)contract.Type));
            parameters.Add(_repository.CreateParameter(PARAMETER_quantity, DbType.Int32, contract.Quantity));
            parameters.Add(_repository.CreateParameter(PARAMETER_value, DbType.Decimal, contract.Value));
            parameters.Add(_repository.CreateParameter(PARAMETER_startDate, DbType.DateTime, contract.StartDate));
            parameters.Add(_repository.CreateParameter(PARAMETER_endDate, DbType.DateTime, contract.EndDate));
            return(parameters);
        }
        private ContractMO CreateContract(IDataReader reader)
        {
            ContractMO contract = new ContractMO();

            contract.Code       = reader.GetInt32(0);
            contract.ClientName = reader.GetString(1);
            contract.Type       = (ContractType)reader.GetInt32(2);
            contract.Quantity   = reader.GetInt32(3);
            contract.Value      = reader.GetDecimal(4);
            contract.StartDate  = Convert.ToDateTime(reader.GetString(5));
            if (!reader.IsDBNull(6))
            {
                contract.EndDate = Convert.ToDateTime(reader.GetString(6));
            }
            return(contract);
        }
        public async Task <ContractMO> Save(ContractMO contract)
        {
            try
            {
                List <IDbDataParameter> parameters = CreateParameters(contract);
                if (contract.Code > 0)
                {
                    await _repository.ExecuteNonQuery(SQL_UPDATE_CONTRACT, parameters);
                }
                else
                {
                    int lastIdentity = await _repository.ExecuteNonQueryIdentity(SQL_INSERT_CONTRACT, parameters);

                    contract.Code = lastIdentity;
                }
                return(contract);
            }
            catch (Exception e)
            {
                return(null);
            }
        }
 public async Task <ContractMO> Save(ContractMO contract)
 {
     //TODO: Validate if can save
     return(await _contractRepository.Save(contract));
 }