Ejemplo n.º 1
0
        /// <summary>
        /// Gets all the models
        /// </summary>
        /// <returns></returns>
        public IList <TModel> GetAll()
        {
            IAmplaViewProperties <TModel> amplaViewProperties = GetViewProperties(null);

            amplaViewProperties.Enforce.CanView();

            var             request  = GetDataRequest(true);
            GetDataResponse response = webServiceClient.GetData(request);

            List <TModel> records = new List <TModel>();
            IAmplaBinding binding = new AmplaGetDataBinding <TModel>(response, records, ModelProperties);

            if (binding.Validate() && binding.Bind())
            {
                return(records);
            }

            return(null);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Finds the model using the id.
        /// </summary>
        /// <param name="id">The unique identifier.</param>
        /// <returns></returns>
        public TModel FindById(int id)
        {
            IAmplaViewProperties <TModel> amplaViewProperties = GetViewProperties(null);

            amplaViewProperties.Enforce.CanView();

            FilterValue     filter   = new FilterValue("Id", Convert.ToString(id));
            var             request  = GetDataRequest(true, filter);
            GetDataResponse response = webServiceClient.GetData(request);

            List <TModel> records = new List <TModel>();
            IAmplaBinding binding = new AmplaGetDataBinding <TModel>(response, records, ModelProperties);

            if (binding.Validate() && binding.Bind())
            {
                return(records.Count == 1 ? records[0] : null);
            }

            return(null);
        }
Ejemplo n.º 3
0
        private AmplaRecord FindAmplaRecord(GetDataResponse response, IModelProperties <TModel> iModelProperties, IAmplaViewProperties <TModel> amplaViewProperties, out TModel model)
        {
            List <AmplaRecord> records = new List <AmplaRecord>();

            model = null;
            IAmplaBinding amplaBinding = new AmplaGetDataRecordBinding <TModel>(response, records, modelProperties,
                                                                                amplaViewProperties);

            if (amplaBinding.Validate() && amplaBinding.Bind())
            {
                List <TModel> models       = new List <TModel>();
                IAmplaBinding modelBinding = new AmplaGetDataBinding <TModel>(response, models, iModelProperties);
                if (modelBinding.Validate() && modelBinding.Bind())
                {
                    model = models.Count > 0 ? models[0] : null;
                }
                return(records.Count > 0 ? records[0] : null);
            }
            return(null);
        }