Ejemplo n.º 1
0
        public async Task <PagedView <View.Call> > Get(CallGetBinding binding)
        {
            using (var context = GetMainContext())
            {
                var calls = await context.Calls
                            .WhereUser(UserId)
                            .WhereIf(binding.From.HasValue, x => x.Timestamp >= binding.From.Value)
                            .WhereIf(binding.To.HasValue, x => x.Timestamp <= binding.To.Value)
                            .WhereIf(!string.IsNullOrEmpty(binding.Number), x => x.Number == binding.Number)
                            .Include(x => x.File)
                            .OrderByDescending(x => x.Timestamp)
                            .Select(x => new View.Call(x))
                            .ToPagedViewAsync(binding);

                foreach (var call in calls.Items)
                {
                    var person = await context.People.SingleOrDefaultAsync(x => x.Contacts.Any(y => y.Identifier == call.Number));

                    call.Person = person.ConvertTo(p => new Model.View.Person.Person(p));
                }

                return(calls);
            }
        }
Ejemplo n.º 2
0
 public async Task <IActionResult> Get([FromQuery] CallGetBinding binding) => Ok(await _callHandler.Get(binding));