예제 #1
0
        public async Task <IActionResult> AddProjectCycle([FromBody]
                                                          [Bind("projectId", "user", "cycleName", "cycleDescription", "startDate", "endDate")] AddProjectCycle projectCycle)
        {
            if (ModelState.IsValid)
            {
                ProjectCycle pC = await _projectRepository.AddCycleToProjectAsync(projectCycle);

                if (pC != null)
                {
                    ProjectCycle c = new ProjectCycle
                    {
                        CycleActive          = pC.CycleActive,
                        CycleName            = pC.CycleName,
                        CycleDescription     = pC.CycleDescription,
                        CyclePlannedStart    = pC.CyclePlannedStart,
                        CyclePlannedEnd      = pC.CyclePlannedEnd,
                        Unique_CycleIdString = pC.Unique_CycleIdString,
                        CycleNumber          = pC.CycleNumber
                    };
                    return(Ok(c));
                }
                else
                {
                    return(Ok("error"));
                }
            }
            else
            {
                return(BadRequest());
            }
        }
예제 #2
0
        public async Task <ProjectCycle> AddCycleToProjectAsync(AddProjectCycle pC)
        {
            Project p = await GetProjectByUniqueId(pC.projectId);

            p.NumberOfProjectCycles = p.NumberOfProjectCycles + 1;

            ProjectCycle c = new ProjectCycle {
            };

            c.ProjectId            = p.ProjectId;
            c.CycleActive          = false;
            c.CycleDescription     = pC.cycleDescription;
            c.CycleName            = pC.cycleName;
            c.CycleNumber          = p.NumberOfProjectCycles;
            c.CyclePlannedStart    = pC.startDate;
            c.CyclePlannedEnd      = pC.endDate;
            c.CycleRegistered      = DateTime.Now;
            c.Unique_CycleIdString = getGuid();

            p.ProjectCycles.Add(c);
            _db.Update(p);
            if (await _db.SaveChangesAsync() > 0)
            {
                ProjectCycle newCycle = await GetProjectCycleByUniqueId(c.Unique_CycleIdString);

                return(newCycle);
            }
            else
            {
                return(null);
            }
        }
예제 #3
0
        public async Task <IActionResult> ViewProjectCycle([FromRoute] string id)
        {
            ProjectCycle c = await _projectRepository.GetProjectCycleByUniqueId(id);

            ViewProjectCycleViewModel model = new ViewProjectCycleViewModel
            {
                ProjectCycle = c
            };

            return(View(model));
        }
예제 #4
0
        public async Task <IActionResult> ViewProjectCycleTask([FromRoute] string id)
        {
            ProjectCycleTask t = await _projectRepository.GetProjectCycleTaskByUniqueId(id);

            ProjectCycle c = await _projectRepository.GetProjectCycleByUniqueId(t.ProjectCycleId);

            Project p = await _projectRepository.GetProjectByUniqueId(c.ProjectId);

            ViewProjectCycleTaskViewModel model = new ViewProjectCycleTaskViewModel
            {
                ProjectCycleTask = await _projectRepository.GetProjectCycleTaskByUniqueId(id),
                ProjectCycle     = c,
                Project          = p
            };

            return(View(model));
        }
예제 #5
0
        public async Task <IActionResult> EditProjectCycle([FromRoute] string id)
        {
            ProjectCycle c = await _projectRepository.GetProjectCycleByUniqueId(id);

            EditProjectCycleViewModel model = new EditProjectCycleViewModel
            {
                unique_CycleIdString = c.Unique_CycleIdString,
                cycleName            = c.CycleName,
                cycleDescription     = c.CycleDescription,
                startDate            = c.CyclePlannedStart,
                endDate       = c.CyclePlannedEnd,
                cycleActive   = c.CycleActive,
                cycleFinished = c.CycleFinished
            };

            return(View(model));
        }
예제 #6
0
        ///////////////                //////////////
        ///////////////     Project    //////////////
        ///////////////                //////////////
        public async Task <string> CreateProject(AddProject project)
        {
            Project p = new Project {
            };

            p.ProjectName          = project.ProjectName;
            p.ProjectClient        = project.ProjectClient;
            p.ProjectDescription   = project.ProjectDescription;
            p.ProjectPlannedStart  = project.ProjectPlannedStart;
            p.ProjectPlannedEnd    = project.ProjectPlannedEnd;
            p.ProjectCreatedByUser = project.ProjectCreatedByUser;

            p.ProjectRegistered      = DateTime.Now;
            p.Unique_ProjectIdString = getGuid();

            ProjectCycle initCycle = new ProjectCycle
            {
                CycleName            = "Mine Oppgaver",
                CycleRegistered      = DateTime.Now,
                Unique_CycleIdString = getGuid(),
                CycleNumber          = 1,
                CyclePlannedStart    = project.ProjectPlannedStart,
                CyclePlannedEnd      = project.ProjectPlannedEnd,
                CycleDescription     = "Du kan opprette alle oppgaver under denne syklusen, eller du kan lage flere sykluser. Hver syklus kan ha mange arbeidsoppgaver."
            };

            List <ProjectCycle> initList = new List <ProjectCycle>();

            initList.Add(initCycle);
            p.ProjectCycles         = initList;
            p.NumberOfProjectCycles = initList.Count;

            _db.Project.Add(p);
            if (await _db.SaveChangesAsync() > 0)
            {
                return(p.Unique_ProjectIdString);
            }
            else
            {
                return(null);
            }
        }
예제 #7
0
        // TODO: Edit all updates correct -ie comleted, active...
        public async Task <bool> EditProjectCycleAsync(EditProjectCycle pC)
        {
            ProjectCycle c = await GetProjectCycleByUniqueId(pC.unique_CycleIdString);

            if (pC.cycleActive != c.CycleActive)
            {
                c.CycleActive = pC.cycleActive;
            }
            if (pC.cycleDescription != c.CycleDescription)
            {
                c.CycleDescription = pC.cycleDescription;
            }
            if (pC.cycleFinished != c.CycleFinished)
            {
                c.CycleFinished = pC.cycleFinished;
            }
            if (pC.cycleName != c.CycleName)
            {
                c.CycleName = pC.cycleName;
            }
            if (pC.endDate != c.CyclePlannedEnd)
            {
                c.CyclePlannedEnd = pC.endDate;
            }
            if (pC.startDate != c.CyclePlannedStart)
            {
                c.CyclePlannedStart = pC.startDate;
            }

            _db.Update(c);
            if (await _db.SaveChangesAsync() > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
예제 #8
0
        public async Task <string> DeleteProjectCycleAsync(string unique_id)
        {
            ProjectCycle c = await GetProjectCycleByUniqueId(unique_id);

            if (c != null)
            {
                string projectUniqueId = await getProjectCycleId(c.ProjectId);

                _db.RemoveRange(c);
                if (await _db.SaveChangesAsync() > 0)
                {
                    return(projectUniqueId);
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }