public async Task <ActionResult <ProjectResponse> > PostProject(MHKDTO.Models.Project input)
        {
            // Check if the project object already exists
            var existingProjectObject = await _context.Projects
                                        .Where(p => p.Month == input.Month &&
                                               p.Year == input.Year)
                                        .FirstOrDefaultAsync();

            if (existingProjectObject != null)
            {
                return(Conflict(input));
            }

            var project = new Data.Models.Project
            {
                WeightNK    = input.WeightNK,
                Minimum     = input.Minimum,
                Maximum     = input.Maximum,
                Month       = input.Month,
                Year        = input.Year,
                TotalTasks  = input.TotalTasks,
                TasksOnTime = input.TasksOnTime
            };

            _context.Projects.Add(project);
            await _context.SaveChangesAsync();

            var result = project.MapProjectResponse();

            return(CreatedAtAction(nameof(GetProject), new { id = result.Id },
                                   result));
        }
예제 #2
0
        public async Task <IActionResult> DeleteProject(int Id)
        {
            Data.Models.Project p = _ProjectService.GetById(Id);
            Helper.HtmlManager.DeleteHtml(p.HTMLPath, _environment);
            Helper.ImageManager.DeleteImage(p.ImgPath, _environment);

            await _ProjectService.Delete(p.Id);

            return(RedirectToAction("ListProjects"));
        }
예제 #3
0
        public async Task <IActionResult> CreateProject(ProjectList Input, string Tags, IFormFile file)
        {
            if (string.IsNullOrWhiteSpace(Input.Title) && string.IsNullOrEmpty(Input.Desciption))
            {
                return(RedirectToAction("CreateProject"));
            }
            Data.Models.Project project = new Data.Models.Project();

            project.Title      = Input.Title;
            project.Desciption = Input.Desciption;
            if (!string.IsNullOrWhiteSpace(Tags))
            {
                string[] tags = Tags.Split(",").Skip(1).ToArray();
                foreach (string item in tags)
                {
                    var t = _tagService.getByNorTag(item.ToUpper());
                    if (t == null)
                    {
                        return(RedirectToAction("CreateProject"));
                    }

                    project.TagLink.Add(new ProjectTag
                    {
                        project = project,
                        tag     = t
                    });
                }
            }

            await _ProjectService.Create(project);

            project.HTMLPath = Helper.HtmlManager.CreateHtml(Input.content, Input.Id.ToString(), @"\content\Projects\", _environment);
            project.ImgPath  = Helper.ImageManager.UploadImage(file: file, Input.Id.ToString(), "/images/Uploaded/Projects/", _environment);
            await _ProjectService.Edit(project);

            return(RedirectToAction("ListProjects"));
        }
예제 #4
0
        public Project(Data.Models.Project project)
        {
            Id = project.Id;

            Name = project.Name;

            Price = project.Price;

            IsDeactivated = project.IsDeactivated;

            CreatedDate = project.CreatedDate;

            LastModifiedDate = project.LastModifiedDate;

            IsFixed = project.IsFixed;

            StartDate = project.StartDate;

            EndDate = project.EndDate;

            CustomerId = project.CustomerId;

            if (project.Customer != null)
            {
                Customer = new Customer(project.Customer);
            }

            if (project.Tasks != null)
            {
                Tasks = project.Tasks.Select(x => new Task(x));
            }

            if (project.AssignedUsers != null)
            {
                AssignedUsers = project.AssignedUsers.Select(x => new User(x));
            }
        }
예제 #5
0
        public async Task <IActionResult> AddProject([FromBody] Data.Models.Project project)
        {
            NewResponseModel NewProjectResponseModel = new NewResponseModel();

            try
            {
                await _db.AddProject(project);

                NewProjectResponseModel.Message   = "Success !!!";
                NewProjectResponseModel.CreatedId = project.Id;
                UserProject userProject = new UserProject()
                {
                    ProjectId = project.Id, UserId = project.AdminId, RoleId = (await _db.GetRole("Admin")).Id
                };
                await _db.AddUserProject(userProject);

                return(Ok(NewProjectResponseModel));
            }
            catch (Exception ex)
            {
                NewProjectResponseModel.Message = ex.Message;
                return(BadRequest(NewProjectResponseModel));
            }
        }