public async Task <IActionResult> Produce(CreateLayoutRequest request) { var validatorActionResult = await _validationArrangement.Validate(request); var actionResult = await _operationArrangement.Process(request, validatorActionResult); return(actionResult); }
public async Task <IActionResult> Create([FromQuery] CreateLayoutFromQuery query, [FromBody] CreateLayoutFromBody body) { var request = new CreateLayoutRequest(query, body); var result = await _apiResult.Produce(request); return(result); }
/// <summary> /// Creates the layout. /// </summary> /// <param name="request">The request.</param> /// <returns> /// Created layout entity /// </returns> public Layout CreateLayout(CreateLayoutRequest request) { ValidateRequest(request); try { UnitOfWork.BeginTransaction(); var layout = new Layout { LayoutPath = request.LayoutPath, Name = request.Name, PreviewUrl = request.PreviewUrl }; // reference or create new regions by identifiers if (request.Regions != null) { layout.LayoutRegions = new List <LayoutRegion>(); foreach (var regionIdentifier in request.Regions) { if (string.IsNullOrWhiteSpace(regionIdentifier)) { continue; } var region = LoadOrCreateRegion(regionIdentifier); var layoutRegion = new LayoutRegion { Layout = layout, Region = region }; layout.LayoutRegions.Add(layoutRegion); } } Repository.Save(layout); UnitOfWork.Commit(); return(layout); } catch (Exception inner) { var message = string.Format("Failed to create layout. Path: {0}, Name: {1}, Url: {2}", request.LayoutPath, request.Name, request.PreviewUrl); Logger.Error(message, inner); throw new CmsApiException(message, inner); } }
private static Layout AddLayout(PagesApiContext pagesApi) { var layouts = pagesApi.GetLayouts(new GetLayoutsRequest(l => l.LayoutPath == Template.LayoutPath)); if (layouts.Items.Count > 0) { return(layouts.Items[0]); } var request = new CreateLayoutRequest() { Name = Template.Name, LayoutPath = Template.LayoutPath, Regions = new[] { Template.Regions.Main, Template.Regions.Header, Template.Regions.Footer } }; return(pagesApi.CreateLayout(request)); }
public async Task<IActionResult> Process(CreateLayoutRequest request, IValidatorActionResult validatorActionResult) { IActionResult actionResult; if (validatorActionResult.Result == null) { var call = _cqsMapper.Map(request); var result = await _mediator.Send(call); actionResult = result.IsFailure ? _apiResponse.Fail(result) : _apiResponse.Created(string.Format("/api/layouts/{0}", ((Result<Guid>)result).Value), result.Version.ToString()); } else { actionResult = validatorActionResult.Result; } return actionResult; }
public CreateLayoutCommand Map(CreateLayoutRequest request) { var result = new CreateLayoutCommand(request.BodyName, request.BodyDescription, request.BodyImage); return(result); }