public IActionResult Put(int id, [FromForm] ChangeAttachmentDto dto
                                 , [FromServices] ChangeAttachmentValidator validator
                                 , [FromServices] IChangeAttachmentCommand command)
        {
            dto.Id = id;

            var result = validator.Validate(dto);

            if (result.IsValid)
            {
                Attachment attachment = _mapper.Map <Attachment>(dto);

                if (dto.File != null)
                {
                    string fileName = CreateNewFileName(dto.File);

                    string path = Path.Combine("wwwroot", "images", fileName);

                    using (var fileStream = new FileStream(path, FileMode.Create))
                    {
                        dto.File.CopyTo(fileStream);
                    }

                    attachment.Path = path;

                    //TODO delete old file
                }

                _useCaseExecutor.ExecuteCommand(command, attachment);
                return(Ok());
            }

            return(UnprocessableEntity(UnprocessableEntityResponse.Message(result.Errors)));
        }
        public IActionResult Post([FromForm] AddAttachmentDto dto
                                  , [FromServices] AddAttachmentValidator validator
                                  , [FromServices] IAddAttachmentCommand command)
        {
            var result = validator.Validate(dto);

            if (result.IsValid)
            {
                string fileName = CreateNewFileName(dto.File);

                string path = Path.Combine("wwwroot", "images", fileName);

                using (var fileStream = new FileStream(path, FileMode.Create))
                {
                    dto.File.CopyTo(fileStream);
                }

                //Save path, name, ticketId
                Attachment attachment = _mapper.Map <Attachment>(dto);
                attachment.Path = path;
                _useCaseExecutor.ExecuteCommand(command, attachment);

                return(Ok());
            }

            return(UnprocessableEntity(UnprocessableEntityResponse.Message(result.Errors)));
        }
예제 #3
0
        public IActionResult Login([FromBody] LoginDto dto
                                   , [FromServices] LoginValidator validator)
        {
            var result = validator.Validate(dto);

            if (result.IsValid)
            {
                string token = _manager.MakeToken(dto.Email);
                return(Ok(new { token }));
            }

            return(UnprocessableEntity(UnprocessableEntityResponse.Message(result.Errors)));
        }
예제 #4
0
        public IActionResult Post([FromBody] AddRoleCaseDto dto
                                  , [FromServices] IAddRoleCaseCommand command
                                  , [FromServices] AddRoleCaseValidator validator)
        {
            var result = validator.Validate(dto);

            if (result.IsValid)
            {
                RoleUserCase applicationUserCase = _mapper.Map <RoleUserCase>(dto);
                _useCaseExecutor.ExecuteCommand(command, applicationUserCase);
                return(Ok());
            }

            return(UnprocessableEntity(UnprocessableEntityResponse.Message(result.Errors)));
        }
예제 #5
0
        public IActionResult Register([FromBody] RegisterDto dto
                                      , [FromServices] IRegisterCommand command
                                      , [FromServices] RegisterValidator validator)
        {
            var result = validator.Validate(dto);

            if (result.IsValid)
            {
                ApplicationUser applicationUser = _mapper.Map <ApplicationUser>(dto);
                _executor.ExecuteCommand(command, applicationUser);
                return(Ok("Application user created successfully"));
            }

            return(UnprocessableEntity(UnprocessableEntityResponse.Message(result.Errors)));
        }
예제 #6
0
        public IActionResult Post([FromBody] AddRoleDto dto
                                  , [FromServices] IAddRoleCommand command
                                  , [FromServices] AddRoleValidator addRoleValidator)
        {
            var result = addRoleValidator.Validate(dto);

            if (result.IsValid)
            {
                Role role = _mapper.Map <Role>(dto);
                _useCaseExecutor.ExecuteCommand(command, role);
                return(Ok("Role created successfully"));
            }

            return(UnprocessableEntity(UnprocessableEntityResponse.Message(result.Errors)));
        }
예제 #7
0
        public IActionResult Post([FromBody] AddTicketDto dto
                                  , [FromServices] IAddTicketCommand command
                                  , [FromServices] AddTicketValidator validator)
        {
            var result = validator.Validate(dto);

            if (result.IsValid)
            {
                Ticket ticket = _mapper.Map <Ticket>(dto);
                _useCaseExecutor.ExecuteCommand(command, ticket);
                return(Ok("Ticket created successfully"));
            }

            return(UnprocessableEntity(UnprocessableEntityResponse.Message(result.Errors)));
        }
예제 #8
0
        public IActionResult Post([FromBody] AddProjectApplicationUserDto dto
                                  , [FromServices] IAddProjectApplicationUserCommand command
                                  , [FromServices] AddProjectApplicationUserValidator validator)
        {
            var result = validator.Validate(dto);

            if (result.IsValid)
            {
                ProjectApplicationUser projectApplicationUser = _mapper.Map <ProjectApplicationUser>(dto);
                _useCaseExecutor.ExecuteCommand(command, projectApplicationUser);
                return(Ok("ProjectApplicationUser created successfully"));
            }

            return(UnprocessableEntity(UnprocessableEntityResponse.Message(result.Errors)));
        }
예제 #9
0
        public IActionResult Put(int id, [FromBody] ChangeCommentDto dto
                                 , [FromServices] IChangeCommentCommand command
                                 , [FromServices] ChangeCommentValidator validator)
        {
            var result = validator.Validate(dto);

            if (result.IsValid)
            {
                dto.Id = id;
                _useCaseExecutor.ExecuteCommand(command, dto);
                return(Ok("Comment updated successfully"));
            }

            return(UnprocessableEntity(UnprocessableEntityResponse.Message(result.Errors)));
        }
예제 #10
0
        public IActionResult Delete([FromBody] RemoveRoleCaseDto dto
                                    , [FromServices] RemoveRoleCaseValidator validator
                                    , [FromServices] IGetOneRoleCaseQuery query
                                    , [FromServices] IRemoveRoleCaseCommand command)
        {
            var result = validator.Validate(dto);

            if (result.IsValid)
            {
                RoleUserCase roleCase = _useCaseExecutor.ExecuteQuery(query, dto);
                _useCaseExecutor.ExecuteCommand(command, roleCase);
                return(Ok());
            }

            return(UnprocessableEntity(UnprocessableEntityResponse.Message(result.Errors)));
        }
예제 #11
0
        public IActionResult ChangeProfile([FromBody] ChangeProfileDto dto
                                           , [FromServices] IChangeProfileCommand command
                                           , [FromServices] ChangeProfileValidator validator)
        {
            dto.Id = _actor.Id;
            var result = validator.Validate(dto);

            if (result.IsValid)
            {
                ApplicationUser applicationUser = _mapper.Map <ApplicationUser>(dto);
                _executor.ExecuteCommand(command, applicationUser);
                return(Ok("Application user changed successfully"));
            }

            return(UnprocessableEntity(UnprocessableEntityResponse.Message(result.Errors)));
        }
예제 #12
0
        public IActionResult RealPut(int id, [FromBody] ChangeTicketDto dto
                                     , [FromServices] IChangeTicketCommand command
                                     , [FromServices] ChangeTicketValidator validator)
        {
            dto.Id = id;
            var result = validator.Validate(dto);

            if (result.IsValid)
            {
                Ticket ticket = _mapper.Map <Ticket>(dto);
                _useCaseExecutor.ExecuteCommand(command, ticket);
                return(Ok("Ticket changed successfully"));
            }

            return(UnprocessableEntity(UnprocessableEntityResponse.Message(result.Errors)));
        }
예제 #13
0
        public IActionResult Put(int id, [FromBody] ChangeRoleDto dto
                                 , [FromServices] IChangeRoleCommand command
                                 , [FromServices] ChangeRoleValidator validator)
        {
            dto.Id = id;
            var result = validator.Validate(dto);

            if (result.IsValid)
            {
                Role role = _mapper.Map <Role>(dto);
                _useCaseExecutor.ExecuteCommand(command, role);
                return(Ok("Role updated successfully"));
            }

            return(UnprocessableEntity(UnprocessableEntityResponse.Message(result.Errors)));
        }
예제 #14
0
        public IActionResult Put(int id, [FromBody] ChangeApplicationUserDto dto
                                 , [FromServices] IChangeApplicationUserCommand command
                                 , [FromServices] ChangeApplicationUserValidator validator)
        {
            dto.Id = id;
            var result = validator.Validate(dto);

            if (result.IsValid)
            {
                ApplicationUser applicationUser = _mapper.Map <ApplicationUser>(dto);
                _useCaseExecutor.ExecuteCommand(command, dto);
                return(Ok("Application user updated successfully"));
            }

            return(UnprocessableEntity(UnprocessableEntityResponse.Message(result.Errors)));
        }
예제 #15
0
        public IActionResult Put(int id, [FromBody] ChangeProjectDto dto
                                 , [FromServices] IChangeProjectCommand command
                                 , [FromServices] ChangeProjectValidator validator)
        {
            dto.Id = id;
            var result = validator.Validate(dto);

            if (result.IsValid)
            {
                Project project = _mapper.Map <Project>(dto);
                _useCaseExecutor.ExecuteCommand(command, project);
                return(Ok("Project updated successfully"));
            }

            return(UnprocessableEntity(UnprocessableEntityResponse.Message(result.Errors)));
        }
예제 #16
0
        public IActionResult FakePut(int id, [FromBody] ChangeTicketDto dto
                                     , [FromServices] IAddTicketCommand command
                                     , [FromServices] ChangeTicketValidator validator)
        {
            dto.Id = id; //Add id to dto to validate if item exists
            var result = validator.Validate(dto);

            if (result.IsValid)
            {
                Ticket ticket = _mapper.Map <Ticket>(dto);
                ticket.OriginalTicketId = id;
                ticket.Id = default; //set default value for int (0), because new instance will be created
                _useCaseExecutor.ExecuteCommand(command, ticket);
                return(Ok("Ticket changed successfully"));
            }

            return(UnprocessableEntity(UnprocessableEntityResponse.Message(result.Errors)));
        }