コード例 #1
0
        public async Task <ActionResult> CreateAsync(CreateProjectViewModel vm)
        {
            if (ModelState.IsValid)
            {
                var domainProject = projectService.CreateProject();
                var projectUser   = projectService.CreateProjectUser();

                Mapper.Map <CreateProjectViewModel, IProjectPoco>(vm, domainProject);
                domainProject.ProjectLeaderId = this.UserId;
                domainProject.CompanyId       = this.CompanyId;

                projectUser.ProjectId     = domainProject.Id;
                projectUser.UserId        = this.UserId;
                projectUser.ProjectRoleId = lookupService.GetAllProjectRoles().First(p => p.Abrv == "PM").Id;
                domainProject.ProjectUsers.Add(projectUser);

                try
                {
                    await this.projectService.InsertProjectAsync(domainProject);

                    var projectsVm = await GetProjectsViewModelAsync(new PagingParameters(1, 12));

                    Response.StatusCode = (int)HttpStatusCode.OK;
                    return(Json(new { success = true, responseText = "Project is added successfuly.", html = this.RenderView("_ProjectsList", projectsVm.Projects) }, JsonRequestBehavior.AllowGet));
                }
                catch (Exception ex)
                {
                    SetErrorResponse(HttpStatusCode.InternalServerError, "Something went wrong");
                }
            }
            else
            {
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
            }

            return(PartialView("_NewProjectModal", vm));
        }