Ejemplo n.º 1
0
        async Task <TModel> BuildFromResultSets(DbDataReader reader)
        {
            TModel model = null;

            if ((reader != null) && (reader.HasRows))
            {
                model = ActivateInstanceOf <TModel> .Instance();

                await reader.ReadAsync();

                model.PopulateModel(reader);

                // Data
                if (await reader.NextResultAsync())
                {
                    var data = new List <EntityReplyData>();
                    if (reader.HasRows)
                    {
                        while (await reader.ReadAsync())
                        {
                            var entityData = new EntityReplyData(reader);
                            data.Add(entityData);
                        }
                    }

                    model.Data = data;
                }
            }
            return(model);
        }
Ejemplo n.º 2
0
        // --------------------------

        async Task <IEnumerable <IEntityReplyData> > SerializeMetaDataAsync(TModel entity)
        {
            // Get all existing entity data
            var data = await _entityReplyDataStore.GetByReplyIdAsync(entity.Id);

            // Prepare list to search, use dummy list if needed
            var dataList = data?.ToList() ?? new List <IEntityReplyData>();

            // Iterate all meta data on the supplied type,
            // check if a key already exists, if so update existing key
            var output = new List <IEntityReplyData>();

            foreach (var item in entity.MetaData)
            {
                var key        = item.Key.FullName;
                var entityData = dataList.FirstOrDefault(d => d.Key == key);
                if (entityData != null)
                {
                    entityData.Value = await item.Value.SerializeAsync();
                }
                else
                {
                    entityData = new EntityReplyData()
                    {
                        Key   = key,
                        Value = item.Value.Serialize()
                    };
                }

                output.Add(entityData);
            }

            return(output);
        }
Ejemplo n.º 3
0
        public async Task <IEntityReplyData> SelectByIdAsync(int id)
        {
            if (_logger.IsEnabled(LogLevel.Information))
            {
                _logger.LogInformation($"Selecting entity reply data with id: {id}");
            }

            EntityReplyData data = null;

            using (var context = _dbContext)
            {
                data = await context.ExecuteReaderAsync(
                    CommandType.StoredProcedure,
                    "SelectEntityReplyDatumById",
                    async reader =>
                {
                    if (reader != null)
                    {
                        if (reader.HasRows)
                        {
                            data = new EntityReplyData();
                            await reader.ReadAsync();
                            data.PopulateModel(reader);
                        }
                    }

                    return(data);
                }, new IDbDataParameter[]
                {
                    new DbParam("Id", DbType.Int32, id)
                });
            }

            return(data);
        }
Ejemplo n.º 4
0
        public async Task <IEnumerable <IEntityReplyData> > SelectByReplyIdAsync(int entityId)
        {
            IList <EntityReplyData> data = null;

            using (var context = _dbContext)
            {
                data = await context.ExecuteReaderAsync(
                    CommandType.StoredProcedure,
                    "SelectEntityReplyDatumByReplyId",
                    async reader =>
                {
                    if (reader != null)
                    {
                        if (reader.HasRows)
                        {
                            data = new List <EntityReplyData>();
                            while (await reader.ReadAsync())
                            {
                                var entityData = new EntityReplyData();
                                entityData.PopulateModel(reader);
                                data.Add(entityData);
                            }
                        }
                    }

                    return(data);
                }, new IDbDataParameter[]
                {
                    new DbParam("ReplyId", DbType.Int32, entityId)
                });
            }
            return(data);
        }
Ejemplo n.º 5
0
        public async Task <IPagedResults <IEntityReplyData> > SelectAsync(IDbDataParameter[] dbParams)
        {
            IPagedResults <IEntityReplyData> results = null;

            using (var context = _dbContext)
            {
                results = await context.ExecuteReaderAsync <PagedResults <IEntityReplyData> >(
                    CommandType.StoredProcedure,
                    "SelectEntityReplyDatumPaged",
                    async reader =>
                {
                    if ((reader != null) && (reader.HasRows))
                    {
                        var output = new PagedResults <IEntityReplyData>();
                        while (await reader.ReadAsync())
                        {
                            var data = new EntityReplyData();
                            data.PopulateModel(reader);
                            output.Data.Add(data);
                        }

                        if (await reader.NextResultAsync())
                        {
                            await reader.ReadAsync();
                            output.PopulateTotal(reader);
                        }

                        return(output);
                    }

                    return(null);
                },
                    dbParams);
            }

            return(results);
        }