public static void Validate(this UpdateFeatureRequest createFeatureRequest)
 {
     createFeatureRequest.Required(nameof(createFeatureRequest));
     createFeatureRequest.Name.Required(nameof(createFeatureRequest.Name));
     createFeatureRequest.NewName.Required(nameof(createFeatureRequest.NewName));
     createFeatureRequest.UpdatedBy.Required(nameof(createFeatureRequest.UpdatedBy));
 }
 public static UpdateFeatureCommand ToUpdateFeatureCommand(this UpdateFeatureRequest createFeatureRequest)
 {
     return(new UpdateFeatureCommand
     {
         Name = createFeatureRequest.Name,
         Path = createFeatureRequest.Path,
         NewName = createFeatureRequest.NewName,
         NewPath = createFeatureRequest.NewPath,
         UpdatedBy = createFeatureRequest.UpdatedBy,
     });
 }
        public async Task <IActionResult> Post([FromBody] UpdateFeatureRequest createFeatureRequest)
        {
            createFeatureRequest.Validate();

            if (
                createFeatureRequest.NewName.Equals(createFeatureRequest.Name, StringComparison.InvariantCultureIgnoreCase) &&
                createFeatureRequest.NewPath.Equals(createFeatureRequest.Path, StringComparison.InvariantCultureIgnoreCase))
            {
                return(new StatusCodeResult((int)HttpStatusCode.NoContent));
            }

            var command = createFeatureRequest.ToUpdateFeatureCommand();

            await this._handleCommand.Handle(command);

            return(new StatusCodeResult((int)HttpStatusCode.OK));
        }