/// <summary>
            ///     Check uniqueness
            /// </summary>
            /// <param name="title"></param>
            /// <param name="cancellationToken"></param>
            /// <returns></returns>
            public async Task <bool> HasUniqueTitle(string title, CancellationToken cancellationToken)
            {
                var specification = new ToDoItemSearchSpecification(title,
                                                                    exactSearch: true);

                var entities = await _repo.GetItemsAsync(specification);

                return(entities == null || entities.Count() == 0);
            }
示例#2
0
文件: Create.cs 项目: shabi9/CosmosDB
            /// <summary>
            ///     Check uniqueness
            /// </summary>
            /// <param name="title"></param>
            /// <param name="cancellationToken"></param>
            /// <returns></returns>
            public async Task <bool> HasUniqueTitle(string title, CancellationToken cancellationToken)
            {
                ToDoItemSearchSpecification specification = new ToDoItemSearchSpecification(title,
                                                                                            exactSearch: true);

                System.Collections.Generic.IEnumerable <Core.Entities.ToDoItem> entities = await _repo.GetItemsAsync(specification);

                return(entities == null || entities.Count() == 0);
            }
示例#3
0
            /// <summary>
            ///     Check uniqueness
            /// </summary>
            /// <param name="command"></param>
            /// <param name="title"></param>
            /// <param name="cancellationToken"></param>
            /// <returns></returns>
            public async Task <bool> HasUniqueName(UpdateCommand command, string title, CancellationToken cancellationToken)
            {
                var specification = new ToDoItemSearchSpecification(title,
                                                                    exactSearch: true);

                var entities = await _repo.GetItemsAsync(specification);

                return(entities == null ||
                       entities.Count() == 0 ||
                       // self
                       entities.All(x => x.Id == command.Id));
            }
示例#4
0
        public async Task Run([TimerTrigger("0 */5 * * * *", RunOnStartup = true)] TimerInfo myTimer)
        {
            _log.LogInformation($"StarterFunction Timer trigger function executed at: {DateTime.Now}");

            // Example code to retrieve all ToDoItems and email "*****@*****.**" when time trigger is hit.
            var specification = new ToDoItemSearchSpecification(false);
            var entities      = await _repo.GetItemsAsync(specification);

            string messageBody = JsonSerializer.Serialize(entities);

            await _emailService.SendEmailAsync("*****@*****.**", "No Reply", "Todo Item Summary", messageBody);
        }
            /// <summary>
            ///     Handle
            /// </summary>
            /// <param name="query"></param>
            /// <param name="cancellationToken"></param>
            /// <returns></returns>
            public async Task <QueryResponse> Handle(GetAllQuery query, CancellationToken cancellationToken)
            {
                QueryResponse response = new QueryResponse();

                // If needed, this is where to implement cache reading and setting logic
                //var cachedEntities = await _cachedToDoItemsService.GetCachedToDoItemsAsync();

                //var entities = await _repo.GetItemsAsync($"SELECT * FROM c");
                // Get all the incompleted todo items
                var specification = new ToDoItemSearchSpecification(false);
                var entities      = await _repo.GetItemsAsync(specification);

                response.Resource = entities.Select(x => _mapper.Map <ToDoItemModel>(x));

                return(response);
            }
示例#6
0
            /// <summary>
            ///     Handle
            /// </summary>
            /// <param name="query"></param>
            /// <param name="cancellationToken"></param>
            /// <returns></returns>
            public async Task <QueryResponse> Handle(SearchToDoItemQuery query, CancellationToken cancellationToken)
            {
                QueryResponse response = new QueryResponse();

                // records
                ToDoItemSearchSpecification specification = new ToDoItemSearchSpecification(query.TitleFilter,
                                                                                            query.Start,
                                                                                            query.PageSize,
                                                                                            query.SortColumn,
                                                                                            query.SortDirection ?? query.SortDirection.Value);

                IEnumerable <Core.Entities.ToDoItem> entities = await _repo.GetItemsAsync(specification);

                response.Resource = entities.Select(x => _mapper.Map <ToDoItemModel>(x));

                // count
                ToDoItemSearchAggregationSpecification countSpecification = new ToDoItemSearchAggregationSpecification(query.TitleFilter);

                response.TotalRecordsMatched = await _repo.GetItemsCountAsync(countSpecification);

                response.CurrentPage = (query.PageSize != 0) ? query.Start / query.PageSize : 0;

                return(response);
            }