Exemplo n.º 1
0
        public async Task <FlareGroup> CreateFlareGroup(FlareGroup flareGroup)
        {
            if (!ValidateFlareGroup(flareGroup))
            {
                throw new ArgumentException("Invalid Flare Group!");
            }

            if (flareGroup.Id != Guid.Empty)
            {
                var existing = await UpdateFlareGroup(flareGroup);

                if (existing != null)
                {
                    return(existing);
                }

                flareGroup = await FlareGroupRepository.Create(flareGroup);

                return(flareGroup);
            }

            flareGroup.Id = Guid.NewGuid();

            flareGroup = await FlareGroupRepository.Create(flareGroup);

            return(flareGroup);
        }
Exemplo n.º 2
0
        public async Task <bool> DeleteFlareGroup(Guid id)
        {
            FlareGroup flareGroup = await GetFlareGroupById(id);

            if (flareGroup == null)
            {
                return(false);
            }

            var memberships = await FlareGroupMemberRepository.GetByFlareGroupId(id);

            await Task.WhenAll(memberships.Select(x => x.Id).Select(FlareGroupMemberRepository.Delete));

            return(await FlareGroupRepository.Delete(id));
        }
Exemplo n.º 3
0
        private bool ValidateFlareGroup(FlareGroup flareGroup)
        {
            if (flareGroup.OwnerId == Guid.Empty)
            {
                throw new ArgumentException("Flare group must have an admin!");
            }

            if (flareGroup.OrganizationId == Guid.Empty)
            {
                throw new ArgumentException("Flare group must have an organization!");
            }

            if (string.IsNullOrWhiteSpace(flareGroup.Name))
            {
                throw new ArgumentException("Flare group must have a name!");
            }

            return(true);
        }
Exemplo n.º 4
0
        public async Task <FlareGroup> UpdateFlareGroup(FlareGroup flareGroup)
        {
            if (!ValidateFlareGroup(flareGroup))
            {
                throw new ArgumentException("Invalid Flare Group!");
            }

            FlareGroup existing = await GetFlareGroupById(flareGroup.Id);

            if (existing == null)
            {
                return(null);
            }

            //merge values

            existing.Description = flareGroup.Description;

            existing.Name = flareGroup.Name;

            if (flareGroup.Data != null)
            {
                foreach (var kv in flareGroup.Data)
                {
                    if (existing.Data.ContainsKey(kv.Key))
                    {
                        existing.Data[kv.Key] = kv.Value;
                    }
                    else
                    {
                        existing.Data.Add(kv.Key, kv.Value);
                    }
                }
            }

            flareGroup = await FlareGroupRepository.Update(flareGroup);

            return(flareGroup);
        }
Exemplo n.º 5
0
 public async Task <ActionResult> Put(Guid id, [FromBody] FlareGroup flareGroup)
 {
     flareGroup.Id = id;
     return(Ok(await FlareGroupService.UpdateFlareGroup(flareGroup)));
 }
Exemplo n.º 6
0
 public async Task <ActionResult> Post([FromBody] FlareGroup flareGroup)
 {
     return(Ok(await FlareGroupService.CreateFlareGroup(flareGroup)));
 }