Example #1
0
        public async Task <IHttpActionResult> Put(AddTask model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            ICollection <Message> tasks = new List <Message>();

            foreach (var domain in model.Domains)
            {
                foreach (string phone in domain.Phones)
                {
                    Message task = new Message {
                        PhoneNumber = phone,
                        Content     = domain.Message,
                        StatusId    = pendingId
                    };
                    tasks.Add(task);
                }
            }

            try
            {
                await _repository.AddRangeAsync(tasks);
            }
            catch (DbUpdateException)
            {
                throw;
            }

            InfoTask result = new InfoTask {
                Domains = tasks.GroupBy(msg => msg.Content,
                                        (key, group) => new InfoDomain {
                    Message = key,
                    Tasks   = group.Select(msg => (Info)msg).ToList()
                }).ToList()
            };

            return(Ok(result));
        }