Exemple #1
0
        public async Task Should_Throw_ProjectShortNameAlready_Exception_For_Duplicate_ShortName()
        {
            var createProjectDto = new CreateProjectDto
            {
                Name                    = "ABP vNext",
                ShortName               = "ABP",
                Format                  = "md",
                DefaultDocumentName     = "index",
                NavigationDocumentName  = "docs-nav.json",
                ParametersDocumentName  = "docs-params.json",
                MinimumVersion          = "1",
                MainWebsiteUrl          = "abp.io",
                LatestVersionBranchName = "",
                DocumentStoreType       = "GitHub",
                ExtraProperties         = new Dictionary <string, object>()
            };

            createProjectDto.ExtraProperties.Add("GitHubRootUrl",
                                                 "https://github.com/abpframework/abp/tree/{version}/docs/en/");
            createProjectDto.ExtraProperties.Add("GitHubAccessToken", "123456");
            createProjectDto.ExtraProperties.Add("GitHubUserAgent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64)");

            //Act
            await Assert.ThrowsAsync <ProjectShortNameAlreadyExistsException>(() =>
                                                                              _projectAdminAppService.CreateAsync(createProjectDto));
        }
Exemple #2
0
        public IActionResult Create(CreateProjectDto CreateProjectDto)
        {
            var UID = User.FindFirst(ClaimTypes.NameIdentifier).Value;

            projectManagerRepository.AddProject(CreateProjectDto);
            return(RedirectToAction("ShowProjects", "ProjectManager", UID));
        }
        public IActionResult CreateProject(Guid freelancerId, [FromBody] CreateProjectDto model)
        {
            if (ModelState.IsValid)
            {
                var userId = new Guid(this.User.FindFirstValue(ClaimTypes.NameIdentifier));

                if (freelancerId == userId)
                {
                    var projectRep = _WorkRepository.CreateProject(freelancerId, model.Title);
                    if (!projectRep.Any())
                    {
                        return(NotFound());
                    }

                    var projects = projectRep.Select(a => new ProjectDto
                    {
                        ProjetId  = a.Id,
                        Title     = a.Title,
                        startDate = a.StartDate
                    });

                    return(Ok(projects));
                }
            }
            return(BadRequest());
        }
        public async Task <IActionResult> Create([FromBody] CreateProjectDto projectDto)
        {
            if (projectDto == null)
            {
                return(NotFound());
            }
            if (ModelState.IsValid)
            {
                var mapped = Mapper.Map <Projects>(projectDto);

                await _project.Create(projectDto);

                //
                if (!await _project.Save())
                {
                    return(StatusCode(500, "Server Error, Something went wrong with our server"));
                }
                var created = Mapper.Map <Projects>(mapped);
                return(CreatedAtRoute("GetProject", new { id = created.Id }, created));
            }
            else
            {
                return(BadRequest(ModelState));
            }
        }
        public int CreateProject(CreateProjectDto input)
        {
            Logger.Info("Creating a project for input: " + input);

            var project = new Project
            {
                TenantId = _abpSession.TenantId,

                Name         = input.Name,
                Description  = input.Description,
                StartTime    = input.StartTime,
                DeliverTime  = input.DeliverTime,
                TeamLeaderId = input.TeamLeaderId
            };

            if (input.TeamLeaderId.HasValue)
            {
                var user = _userRepository.Get(ObjectMapper.Map <long>(input.TeamLeaderId));
                project.TeamLeader = user;

                string message = "A new project -- \"" + input.Name + "\" has being assigned to u.";
                _notificationPublisher.Publish("New Project", new MessageNotificationData(message), null, NotificationSeverity.Info, new[] { user.ToUserIdentifier() });
            }

            return(_projectRepository.InsertAndGetId(project));
        }
        public async Task <IActionResult> Create([FromBody] CreateProjectDto project)
        {
            Guard.IsNotNull(project, nameof(project));
            if (!ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            project.CreatedBy = this.username;
            var p = new Project
            {
                ProjectId   = Guid.NewGuid(),
                EndDate     = project.EndDate,
                ProjectName = project.ProjectName,
                StartDate   = project.StartDate
            };
            var result = await this.mediator.Send(Project.CreateProjectCreatedEventArgs(p));

            if (result.Outcome == OutcomeType.Successful)
            {
                var url = this.linkGenerator.GetPathByAction(
                    this.HttpContext,
                    controller: "Projects",
                    action: "GetById",
                    values: new { id = p.ProjectId });

                return(this.Created($"{this.HttpContext.Request.Scheme}//{this.HttpContext.Request.Host}{url}", this.mapper.Map <Project>(p)));
            }

            return(new StatusCodeResult(500));
        }
        public async Task <IActionResult> CreateProject([FromBody] CreateProjectDto project)
        {
            if (project == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var projectToCreate = Mapper.Map <Project>(project);

            _projectManagerRepository.AddProjectAsync(projectToCreate);

            if (!await _projectManagerRepository.SaveAsync())
            {
                _logger.LogError("An error occured creating the new project");
                return(StatusCode(500, "A problem happened while handling your request."));
            }

            var createdProjectToReturn = Mapper.Map <ProjectDto>(projectToCreate);

            return(CreatedAtRoute("GetProject", new
            {
                id = createdProjectToReturn.Id,
            },
                                  createdProjectToReturn));
        }
 public virtual async Task <ProjectDto> CreateAsync(CreateProjectDto input)
 {
     return(await RequestAsync <ProjectDto>(nameof(CreateAsync), new ClientProxyRequestTypeValue
     {
         { typeof(CreateProjectDto), input }
     }));
 }
Exemple #9
0
        public async Task <ActionResult <Project> > Create(CreateProjectDto project)
        {
            var createdProject = await _projectService.AddAsync(_mapper.Map <Project>(project));

            return(CreatedAtAction(nameof(GetByIdAndCode), new { id = createdProject.Id, code = createdProject.Code },
                                   createdProject));
        }
        public async Task <IActionResult> Create([FromBody] CreateProjectDto projectDto)
        {
            var currentUserId = _httpContextAccessor.GetCurrentUserId();
            var currentUser   = _userService.Read(currentUserId);
            var project       = _projectService.CreateProject(currentUser, projectDto.Title, projectDto.Content);

            if (project == null)
            {
                return(BadRequest(new { Message = "Failed to create project." }));
            }

            var createdProjectDto = _mapper.Map <CreateProjectDto>(project);

            createdProjectDto.ProjectOwner = _mapper.Map <ReadUserDto>(project.User);

            try
            {
                // Notify all subscribers (logged in users) that a new project has been created.
                await _projectHubContext.Clients
                .Groups(Constants.ProjectSubscriberGroupName)
                .SendAsync(Constants.ClientProjectNotificationMethodName, new
                {
                    CreatedProjectDto = createdProjectDto,
                });
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Encountered exception while attempting to publish project creation to subscribers.  Message: {ex.Message}.");
                Console.WriteLine(ex.StackTrace);
            }

            return(Ok(createdProjectDto));
        }
        public async Task <ProjectDto> CreateAsync(CreateProjectDto dto, int userId, CancellationToken cancellationToken)
        {
            var entity = fMapper.Map <CreateProjectDto, ProjectEntity>(dto);

            await InTrasactionAsync(async() =>
            {
                DbSet.Add(entity);
                await fContext.SaveChangesAsync(cancellationToken);

                entity.Permissions.Add
                (
                    new ProjectPermissionEntity
                {
                    UserId    = userId,
                    ProjectId = entity.Id,
                    Type      = PermissionType.Own
                }
                );
                await fContext.SaveChangesAsync(cancellationToken);
            }, cancellationToken);

            // TODO: Think this over so it could be used with mapper
            return(new ProjectDto
            {
                Id = entity.Id,
                Name = entity.Name,
                Description = entity.Description,
                CurrencyType = entity.CurrencyType,
                UserPermission = PermissionType.Own
            });
        }
        public async Task <IActionResult> Post([FromBody] CreateProjectDto project)
        {
            var p = project.ToProject();
            await _dbService.AddAsync(p);

            return(CreatedAtAction("GetOne", new { p.Id }));
        }
        /// <summary>
        /// Creates a new project
        /// </summary>
        /// <param name="name">Name of the project</param>
        /// <param name="visibility">Visibility of the project</param>
        /// <returns>Response wrapped in JSON object</returns>
        public async Task <JObject> Create(string name, string visibility)
        {
            string response;

            var dto = new CreateProjectDto
            {
                Name         = name,
                Description  = "Generated project by DevOpsApiClient",
                Visibility   = visibility,
                Capabilities = new Capabilities
                {
                    VersionControl = new VersionControl
                    {
                        SourceControlType = "Git"
                    },
                    ProcessTemplate = new ProcessTemplate
                    {
                        TemplateTypeId = "adcc42ab-9882-485e-a3ed-7678f01f66bc"
                    }
                },
            };

            using (var client = new AzureHttpClient(Credentials.AccessToken))
            {
                using (var responseMessage =
                           await client.PostAsync(GenerateUrl("/projects", false), HttpConvert.ToRequestBody(dto)))
                {
                    response = await responseMessage.Content.ReadAsStringAsync();
                }
            }

            return(JObject.Parse(response));
        }
Exemple #14
0
        public ActionResult <ProjectDto> CreateProject(Guid personId, [FromBody] CreateProjectDto dto)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest());
                }
                if (!_db.Person.BelongsToUser(personId, HttpContext))
                {
                    return(Forbid());
                }

                var projectWithThisName = _db.Project.FindByCondition(x => x.Name == dto.Name).SingleOrDefault();
                if (projectWithThisName != null)
                {
                    return(BadRequest(nameof(ProjectNameUniqueException)));
                }

                var project = _mapper.Map <Project>(dto);
                _db.Project.Create(project);

                var role = new Role
                {
                    ProjectId          = project.Id,
                    Name               = "Administrator",
                    CalendarRead       = true,
                    CalendarWrite      = true,
                    KnowledgeBaseRead  = true,
                    KnowledgeBaseWrite = true,
                    ParticipantsRead   = true,
                    ParticipantsWrite  = true,
                    RolesRead          = true,
                    RolesWrite         = true,
                    SettingsRead       = true,
                    SettingsWrite      = true,
                    Editable           = false,
                };
                _db.Role.Create(role);

                var participation = new Participation
                {
                    ProjectId = project.Id,
                    PersonId  = personId,
                    RoleId    = role.Id,
                    Status    = nameof(ParticipationStatus.Active),
                };
                _db.Participation.Create(participation);

                _db.Save();

                return(Ok(_mapper.Map <ProjectDto>(project)));
            }
            catch (Exception e)
            {
                _logger.LogError($"ERROR in CreateProject: {e.Message}");
                return(StatusCode(500, "Internal server error"));
            }
        }
Exemple #15
0
        public async Task <IActionResult> CreateProject([FromBody] CreateProjectDto dto)
        {
            var user = await _userManager.GetUserAsync(HttpContext.User);

            var project = await _projectsAppService.CreateProjectAsync(user, dto.Name);

            return(CreatedAtAction(nameof(GetProjectById), new { Id = project.Id }, project));
        }
Exemple #16
0
        public async Task <IActionResult> CreateProject([FromBody] CreateProjectDto project)
        {
            await userService.CreateProjectAsync(project.Title, project.Title, project.Due,
                                                 Int32.Parse(httpContextAccessor.HttpContext.User
                                                             .FindFirst("Id").Value));

            return(Ok());
        }
Exemple #17
0
 public IActionResult New(CreateProjectDto dto)
 {
     return(withUser(Request, user =>
     {
         var result = _projectService.CreateProject(user.Id, dto);
         return new JsonResult(result);
     }));
 }
Exemple #18
0
 public async Task Create(CreateProjectDto projectDto)
 {
     await _context.Projects.AddAsync(new Projects
     {
         Name           = projectDto.Name,
         Description    = projectDto.Description,
         OrganisationId = projectDto.OrganisationId
     });
 }
Exemple #19
0
        public ActionResult Create(CreateProjectDto task)
        {
            var id = _projectAppService.CreateProject(task);

            var input  = new ProjectSearchInputDto();
            var output = _projectAppService.SearchProjects(input);

            return(PartialView("_ListProjects", output.Projects));
        }
Exemple #20
0
        public async void testUpdateProject()
        {//TODO add all types of projects
            var client = _factory.CreateClient();

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _projectsEnv._stringDict.GetValueOrDefault("token"));
            var folder = new CreateFolderDto
            {
                description = "test",
                name        = "test1",
                icon        = "test3"
            };
            var actualResponseFolder = await client.testSuccessPostAsync <GetFolderDto, CreateFolderDto>("/api/folders", folder);

            var responseTimersGet = await client.testSuccessGetAsync <List <GetTimerDto> >("/api/timers");

            var newTimerId = responseTimersGet.data.FirstOrDefault(x => x.id != _projectsEnv._stringDict.GetValueOrDefault("timerId")).id;

            var project = new CreateProjectDto
            {
                projectType    = PROJECT_TYPE.ENERGY,
                name           = "test10",
                stats          = new STATS[] { STATS.EMOTIONS },
                dominantStat   = STATS.EMOTIONS,
                folderId       = actualResponseFolder.data.id,
                defaultTimerId = newTimerId
            };
            var expectedProject = new GetProjectDto
            {
                name           = project.name,
                stats          = project.stats,
                dominantStat   = project.dominantStat,
                projectType    = project.projectType,
                folderId       = project.folderId,
                defaultTimerId = project.defaultTimerId
            };

            // Act
            var actualResponseProject = await client
                                        .testSuccessPutAsync <GetProjectDto, CreateProjectDto>($"/api/projects/{_projectsEnv._stringDict.GetValueOrDefault("projectId")}", project);

            // Assert
            expectedProject.WithDeepEqual(actualResponseProject.data)
            .SkipDefault <DateTime>()
            .IgnoreSourceProperty(x => x.id)
            .IgnoreDestinationProperty(x => x.dateCreated)
            .Assert();

            // Act
            var actualResponseProjectGet = await client.testSuccessGetAsync <GetProjectDto>("/api/projects/" + actualResponseProject.data.id);

            expectedProject.id = actualResponseProject.data.id;
            // Assert
            expectedProject.WithDeepEqual(actualResponseProjectGet.data)
            .SkipDefault <DateTime>()
            .IgnoreDestinationProperty(x => x.dateCreated)
            .Assert();
        }
 public async Task Create(CreateProjectDto input)
 {
     if (input.ShouldCreateAsanaTask)
     {
         await CreateTasksForAsana(input);
     }
     else
     {
         //await SaveTaskForDevOps(input);
     }
 }
Exemple #22
0
        public void CreateProject(CreateProjectDto newProject)
        {
            var project = new Project
            {
                Customer = (int)newProject.Customer,
                Name     = newProject.Name
            };

            _context.Project.Add(project);
            _context.SaveChanges();
        }
        public async Task Create(ProjectViewModel projectViewModel)
        {
            var project = new CreateProjectDto
            {
                Name              = projectViewModel.Name,
                Code              = projectViewModel.Code,
                Budget            = projectViewModel.Budget,
                VinculationTypeId = projectViewModel.VinculationId
            };

            await _projectService.Create(project);
        }
Exemple #24
0
 public IActionResult InsertProject(CreateProjectDto projectDto)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest("Invalid data."));
     }
     else
     {
         projectRepository.InsertProject(projectDto);
     }
     return(Ok());
 }
        public async Task <Project> InsertProject(String partitionKey, CreateProjectDto body)
        {
            var entity = new Project();

            entity.PartitionKey = partitionKey;
            entity.RowKey       = body.Name;
            entity.Color        = body.Color;
            var operation = TableOperation.InsertOrReplace(entity);
            await _projectTable.ExecuteAsync(operation);

            return(entity);
        }
Exemple #26
0
        public IActionResult InsertProject(CreateProjectDto projectDto)
        {
            var userID = User.FindFirst(ClaimTypes.NameIdentifier).Value;

            projectDto.ProjectManagerID = userID;
            if (ModelState.IsValid)
            {
                projectRepository.InsertProject(projectDto);
                return(RedirectToAction("ShowProjectManagerProjects"));
            }
            else
            {
                return(RedirectToAction("Create"));
            }
        }
Exemple #27
0
        public async Task <int> Post([FromBody] CreateProjectDto projectDto)
        {
            var project = mapper.Map <Project>(projectDto);

            project.ProjectUsers = userService.GetAll()
                                   .Where(x => projectDto.UserNames.Contains(x.UserName))
                                   .Select(user => new ProjectUser {
                UserId = user.Id, Project = project
            })
                                   .ToList();

            await projectService.Create(project);

            return(project.Id);
        }
Exemple #28
0
        public CreateProjectResultDto CreateProject(int userId, CreateProjectDto dto)
        {
            var record = _projectRepository.Save(new ProjectRecord {
                UserId = userId,
                Title  = dto.Title,
                Colour = dto.Colour
            });

            _projectMembershipRepository.Save(new ProjectMembershipRecord {
                UserId = userId, ProjectId = record.Id
            });

            return(new CreateProjectResultDto {
                Id = record.Id
            });
        }
Exemple #29
0
        public void UpdateProject(CreateProjectDto request)
        {
            var existingProject = _context.Project
                                  .Where(x => x.Id == request.Id)
                                  .FirstOrDefault();

            if (request.Customer != null)
            {
                existingProject.Customer = (int)request.Customer;
            }
            if (request.Name != null)
            {
                existingProject.Name = request.Name;
            }

            _context.SaveChanges();
        }
Exemple #30
0
        public async Task <ProjectDto> CreateProject(CreateProjectDto request, CancellationToken cancellationToken)
        {
            Project createdProject = Project.CreateProject(request.OwnerId, request.Name, request.Description, request.State);
            await _projectRepository.Add(createdProject, cancellationToken);

            ProjectUser projectUserLink = ProjectUser.CreateProjectUser(createdProject.Id, request.OwnerId, createdProject);
            await _projectRepository.AddProjectUser(projectUserLink, cancellationToken);

            foreach (string technologyName in request.Technologies)
            {
                Technology technology = await _projectRepository.GetTechnologyByName(technologyName);

                await _projectRepository.AddProjectTechnology(createdProject, technology, cancellationToken);
            }

            return(_mapper.Map <ProjectDto>(createdProject));
        }