Esempio n. 1
0
        public async Task <Project> ImportAsync(MbeProject engProject, string userId)
        {
            if (!string.IsNullOrEmpty(engProject.Id))
            {
                var existingProject = await _projectRepository.GetProjectsByEngId(engProject.Id);

                if (existingProject != null)
                {
                    return(null);
                }
            }

            var project = new Project
            {
                MBEProjectId   = engProject.Id,
                Name           = engProject.Name,
                Description    = engProject.Description,
                ProjectNo      = engProject.ProjectNo,
                UsersInProject = new List <UserInProject>
                {
                    new UserInProject {
                        Id = userId, RoleId = "1"
                    }
                },
                CreatedDate = DateTime.UtcNow
            };

            return(await _projectRepository.AddAsync(project));
        }
Esempio n. 2
0
        public async Task ImportFieldHeaders(string mbeProjectId, string projectId, IProjectImportAdapter mbeProjectClient, string userId)
        {
            MbeProject mbeProject = await mbeProjectClient.GetProjectByIdAsync(mbeProjectId);

            var fieldHeaders = mbeProject.ProjectDoorStructure.Select(
                fieldStructure =>
                new FieldHeader(fieldStructure.FieldName, fieldStructure.Header, fieldStructure.FieldType)
                ).ToList();
        }
        public async Task <ProjectImportSuccessStatus> Import(MbeProject engProject, string userId)
        {
            var _projectDomain   = ObjectLocator.DomainObjectFactory.ProjectDomain;
            var mbeProjectClient = ObjectLocator.ProjectImportAdapter;
            //mbeProjectClient.
            //var _projectImportAdapter = this.ObjectLocator.ProjectImportAdapter;

            var createdProject = await _projectDomain.ImportAsync(engProject, userId);

            var projectMSResult = new ProjectImportSuccessStatus(createdProject.MBEProjectId);

            if (createdProject != null)
            {
                // Set Progress project id in Engineering project (only a single Progress project is allowed per Engineering project)
                var isUpdateSuccessfull = await mbeProjectClient.SetManagementProjectId(createdProject.MBEProjectId, createdProject.Id);

                if (isUpdateSuccessfull)
                {
                    var doorMSResult = await ObjectLocator.MbeDoorService.ImportDoors(createdProject.MBEProjectId, createdProject.Id);

                    if (doorMSResult.IsSuccess)
                    {
                        projectMSResult.Project   = createdProject;
                        projectMSResult.IsSuccess = true;

                        Task addProjectDocuments = ObjectLocator.DomainObjectFactory.ProjectDocumentDomain.ImportProjectDocuments(createdProject.MBEProjectId, createdProject.Id, this.ObjectLocator.ProjectDocumentImportAdapter);
                        Task addFieldHeaders     = _projectDomain.ImportFieldHeaders(createdProject.MBEProjectId, createdProject.Id, mbeProjectClient, userId);

                        await Task.WhenAll(addProjectDocuments, addFieldHeaders);
                    }
                    else
                    {
                        await _projectDomain.DeleteProject(engProject.Id, userId);

                        projectMSResult.IsSuccess = false;
                        projectMSResult.Error     = doorMSResult.Error;
                    }
                }
                else
                {
                    await _projectDomain.DeleteProject(engProject.Id, userId);

                    projectMSResult.IsSuccess = false;
                    //projectMSResult.Error = "Project creation failed. Please try again or consult the developers.";
                    projectMSResult.Error = "Project creation failed. Please try again or consult the developers.";
                }
            }
            else
            {
                projectMSResult.IsSuccess = false;
                //projectMSResult.Error = "Project creation failed. Please try again or consult the developers.";
                projectMSResult.Error = "Project creation failed. Please try again or consult the developers.";
            }

            return(projectMSResult);
        }
        public async Task <HttpResponseMessage> ImportMBEProject(MbeProject mbeProject)
        {
            string userId = RequestContext.GetUserId();
            var    result = await ObjectsLocator.MbeProjectService.ImportFromMbe(mbeProject, userId);

            if (result == null)
            {
                return(Request.CreateResponse(HttpStatusCode.Conflict));
            }

            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }