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()); }