Beispiel #1
0
        public async Task <Result <Unit, Unit> > Add(
            string?userName,
            string projectName,
            AddCategoriesParams categoriesParams)
        {
            var projectId = await this.dbContext.Projects
                            .Where(project =>
                                   (project.Owner.UserName == userName ||
                                    project.Contributors.Any(contributor => contributor.User.UserName == userName)) &&
                                   project.Name == projectName)
                            .Select(project => (int?)project.Id)
                            .FirstOrDefaultAsync();

            if (projectId == null)
            {
                return(Result <Unit, Unit> .Failure(
                           HttpStatusCode.NotFound,
                           "project not found"));
            }

            foreach (var addCategoryParams in categoriesParams.Categories)
            {
                this.dbContext.Categories.Add(new Category()
                {
                    Id       = addCategoryParams.Id,
                    Name     = addCategoryParams.Name,
                    ParentId = projectId.Value
                });
            }

            await this.dbContext.SaveChangesAsync();

            return(Result <Unit, Unit> .Ok(Unit.Value));
        }
        public async Task <ActionResult <AddCategoriesResult> > AddCategories(
            [FromQuery] string projectName,
            [FromBody] AddCategoriesParams request,
            [FromServices] AddCategoriesHandler addCategoriesHandler)
        {
            var result = await addCategoriesHandler.Add(
                Request.GetUserName(),
                projectName,
                request);

            return(result.Unwrap(new AddCategoriesResult()));
        }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='projectName'>
 /// </param>
 /// <param name='body'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <object> AddCategoriesAsync(this IDidacticalEnigmaMem operations, string projectName = default(string), AddCategoriesParams body = default(AddCategoriesParams), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.AddCategoriesWithHttpMessagesAsync(projectName, body, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='projectName'>
 /// </param>
 /// <param name='body'>
 /// </param>
 public static object AddCategories(this IDidacticalEnigmaMem operations, string projectName = default(string), AddCategoriesParams body = default(AddCategoriesParams))
 {
     return(operations.AddCategoriesAsync(projectName, body).GetAwaiter().GetResult());
 }