Ejemplo n.º 1
0
        public async Task <IActionResult> Get(string id, string include)
        {
            var includeFields = IncludeField.ParseList(include);

            using (var db = RavenStore.Store.OpenAsyncSession())
            {
                var includeTests         = includeFields.Any(f => f.HasNameAndFilter("tests", ""));
                Models.Raven.Group group = null;
                if (includeTests)
                {
                    group = await db.Include <Models.Raven.Group>(g => g.Tests).LoadAsync <Models.Raven.Group>($"groups/{id}");
                }
                else
                {
                    group = await db.LoadAsync <Models.Raven.Group>($"groups/{id}");
                }
                if (group == null)
                {
                    return(NotFound());
                }

                return(Ok(new Models.Outgoing.Group()
                {
                    Id = group.Id,
                    Name = group.Name,
                    Description = group.Description,
                    Tests = includeTests ? group.Tests.Select(t =>
                    {
                        var test = db.LoadAsync <Models.Raven.Group>(t).Result;
                        return new Models.Outgoing.Test()
                        {
                            Description = test.Description,
                            Name = test.Name,
                            Id = test.Id,
                            SerializeSteps = false
                        };
                    }).ToList() : null,
                    SerializeTests = includeTests
                }));
            }
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Create([FromBody] Models.Post.Group model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            using (var db = RavenStore.Store.OpenAsyncSession())
            {
                var group = new Models.Raven.Group()
                {
                    Description = model.Description,
                    Name        = model.Name
                };

                await db.StoreAsync(group, null, null);

                await db.SaveChangesAsync();

                return(CreatedAtAction("Get", new { id = group.Id }, group));
            }
        }