Ejemplo n.º 1
0
        public async Task <Models.Flare> SendFlare(Models.Flare flare)
        {
            if (!ValidateFlare(flare))
            {
                throw new ArgumentException("Flare is invalid!");
            }

            flare.Id = Guid.NewGuid();

            flare = await FlareRepository.Create(flare);

            CryptoProvider crypt = new CryptoProvider();

            if (flare.UseEmail)
            {
                FlareMessage[] emails = flare.Recipients.Select(x => { return(new FlareMessage {
                        RecipientId = x, FlareId = flare.Id
                    }); }).ToArray();

                emails = await Task.WhenAll(emails.Select(x => FlareMessageService.CreateFlareMessage(x, FlareMessageType.Email)));
            }

            if (flare.UseSms)
            {
                FlareMessage[] texts = flare.Recipients.Select(x => { return(new FlareMessage {
                        RecipientId = x, FlareId = flare.Id
                    }); }).ToArray();

                texts = await Task.WhenAll(texts.Select(x => FlareMessageService.CreateFlareMessage(x, FlareMessageType.Sms)));
            }

            if (flare.UsePhone)
            {
                FlareMessage[] calls = flare.Recipients.Select(x => { return(new FlareMessage {
                        RecipientId = x, FlareId = flare.Id
                    }); }).ToArray();

                calls = await Task.WhenAll(calls.Select(x => FlareMessageService.CreateFlareMessage(x, FlareMessageType.PhoneCall)));
            }

            return(flare);
        }
Ejemplo n.º 2
0
        private bool ValidateFlare(Models.Flare flare)
        {
            if (flare == null)
            {
                throw new ArgumentException("Must provide a flare to send...");
            }

            if (flare.SenderId == Guid.Empty)
            {
                throw new ArgumentException("To send a flare you specify a sender!");
            }

            if (flare.OrganizationId == Guid.Empty)
            {
                throw new ArgumentException("To send a flare you must specify an organization!");
            }

            if (flare.Recipients == null || flare.Recipients.Length < 1)
            {
                throw new ArgumentException("A flare must have recipients!");
            }

            return(true);
        }
Ejemplo n.º 3
0
 public async Task <ActionResult> Post([FromBody] Models.Flare flare)
 {
     return(Ok(await FlareService.SendFlare(flare)));
 }