Exemplo n.º 1
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,DateTimePosted,DateTimeChanged,ProjectPostDescription,DateTimePlaned,DateTimeStarted,DateTimeDone,HourPrice,TimeEstimate,TotalCostEstimate,TimeActual,MtrCostActual,LabourCostActual,TotalCostActual,ProjectPostStatusId")] ProjectPost projectPost)
        {
            if (id != projectPost.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(projectPost);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ProjectPostExists(projectPost.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["ProjectPostStatusId"] = new SelectList(_context.Set <ProjectPostStatus>(), "Id", "Id", projectPost.ProjectPostStatusId);
            return(View(projectPost));
        }
Exemplo n.º 2
0
        public Response SetNewProject(ProjectPost project)
        {
            var result = RunInsertJson(project.images);

            if (result.valid)
            {
                var procedure = "sp_project_set";
                using (var conn = new MySqlConnection(_connectionString))
                {
                    try
                    {
                        conn.Open();
                        var param = new DynamicParameters();
                        param.Add("INname", project.name);
                        param.Add("INdescription", project.description);
                        param.Add("INcontent", project.content);
                        param.Add("INurl", project.url);
                        var data = conn.QueryFirstOrDefault <Response>(procedure, param, commandType: System.Data.CommandType.StoredProcedure);
                        return(data);
                    }
                    catch (Exception ex)
                    {
                        throw;
                    }
                }
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 3
0
        public IActionResult PutActivity(int employeeId, int activityId, [FromBody] ProjectPost project)
        {
            var emp = _employeeContext.Employees.FirstOrDefault(e => e.Id == employeeId);

            if (emp == null)
            {
                return(NotFound());
            }

            var activity = _employeeContext.Activities.FirstOrDefault(a => a.Id == activityId && a.Employee.Id == employeeId);

            if (activity == null)
            {
                return(NotFound("No activity"));
            }

            activity = new Activity()
            {
                Project = new Project()
                {
                    Name      = project.Project,
                    DateStart = project.DateStart,
                    DateEnd   = project.DateEnd
                },
                ActivityType = project.ActivityType,
                Role         = project.Role
            };
            _employeeContext.SaveChanges();

            return(Ok());
        }
Exemplo n.º 4
0
        public async Task <IActionResult> Create([Bind("Id,DateTimePosted,DateTimeChanged,ProjectPostDescription,DateTimePlaned,DateTimeStarted,DateTimeDone,HourPrice,TimeEstimate,TotalCostEstimate,TimeActual,MtrCostActual,LabourCostActual,TotalCostActual,ProjectPostStatusId")] ProjectPost projectPost)
        {
            if (ModelState.IsValid)
            {
                _context.Add(projectPost);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["ProjectPostStatusId"] = new SelectList(_context.Set <ProjectPostStatus>(), "Id", "Id", projectPost.ProjectPostStatusId);
            return(View(projectPost));
        }
Exemplo n.º 5
0
        public ProjectCrudController()
        {
            Post("/api/v1/project/post/new", _ => {
                var me      = UserRepository.Find(CurrentRequest.UserId);
                var project = ProjectRepository.FindByGuid(GetRequestStr("project_guid"));
                if (project == null)
                {
                    return(HttpResponse.Error(HttpStatusCode.NotFound, "Project not found"));
                }

                var errors = ValidationProcessor.Process(Request, new IValidatorRule[] {
                    new ShouldHaveParameters(new[] { "project_guid", "title", "content" }),
                    new ExistsInTable("project_guid", "projects", "guid"),
                    new HasPermission(me, project.id, EntityType.Project),
                }, true);
                if (errors.Count > 0)
                {
                    return(HttpResponse.Errors(errors));
                }

                var post = ProjectPost.Create(
                    project, GetRequestStr("title"), GetRequestStr("content")
                    );

                return(HttpResponse.Item(
                           "post", new ProjectPostTransformer().Transform(post), HttpStatusCode.Created
                           ));
            });

            Delete("/api/v1/project/post/delete", _ => {
                var post = ProjectPost.FindBy("guid", GetRequestStr("post_guid"));
                if (post == null)
                {
                    return(HttpResponse.Error(HttpStatusCode.NotFound, "Post not found"));
                }

                var me = UserRepository.Find(CurrentRequest.UserId);

                var errors = ValidationProcessor.Process(Request, new IValidatorRule[] {
                    new ShouldHaveParameters(new[] { "post_guid" }),
                    new HasPermission(me, post.project_id, EntityType.Project),
                }, true);
                if (errors.Count > 0)
                {
                    return(HttpResponse.Errors(errors));
                }

                post.Delete();

                return(HttpResponse.Item("post", new ProjectPostTransformer().Transform(post)));
            });
        }
        public IActionResult SetProject([FromBody] ProjectPost project)
        {
            if (!Request.Headers.ContainsKey("Authorization"))
            {
                return(Unauthorized());
            }
            var data = _alphahomeService.SetNewProject(project);

            if (data.valid)
            {
                return(new JsonResult(data));
            }
            return(BadRequest(data));
        }
Exemplo n.º 7
0
        public async Task <ApiResult> CreateProject([FromBody] ProjectPost projectPost)
        {
            if (!ModelState.IsValid)
            {
                return(ApiResult.BadRequest(ModelState.First(e => e.Value.Errors.Any()).Value.Errors.First().ErrorMessage));
            }

            var currentUser = await _userManager.GetUserAsync(User);

            var project = _projectService.CreateProject(projectPost.ProjectName, projectPost.ProjectDescription, currentUser.Id);

            var projectModel = _mapper.Map <Core.Models.Projects.Project>(project);

            return(ApiResult.Success(projectModel));
        }
Exemplo n.º 8
0
        public async Task <object> Create([FromBody] ProjectPost project)
        {
            try
            {
                project.LastEditedUser =
                    this._userRepo.GetByUsername(AuthenticationController.GetCurrentUsername(this.HttpContext)).Id;
                project.LastEditedDate = DateTimeOffset.Now;
                project.LocationCode   = this.GetLocation(project.Location.Longtitude, project.Location.Latitude).Id;

                this._repo.Add(project);
                return(new { success = true });
            }
            catch (Exception error)
            {
                return(new Response(this.Response,
                                    new Error(HttpStatusCode.BadRequest, "Kan geen nieuw project aanmaken: " + error.Message)));
            }
        }
Exemplo n.º 9
0
        public async Task <IActionResult> AddProjectPost([Bind("Id,DateTimePosted,DateTimeChanged,ProjectPostDescription," +
                                                               "DateTimePlaned,DateTimeStarted,DateTimeDone,HourPrice,TimeEstimate,TotalCostEstimate,TimeActual,MtrCostActual,LabourCostActual,TotalCostActual,ProjectPostStatusId")] ProjectPost projectPost)
        {
            if (ModelState.IsValid)
            {
                var pROLabContext = _context.ProjectPosts
                                    .Include(p => p.Status);
                projectPost.TotalCostEstimate = (projectPost.TimeEstimate * projectPost.HourPrice) + projectPost.MtrCostActual;
                projectPost.TotalCostActual   = (projectPost.TimeActual * projectPost.HourPrice) + projectPost.MtrCostActual;
                projectPost.LabourCostActual  = projectPost.HourPrice * projectPost.TimeActual;
                _context.Add(projectPost);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(ListProjectPosts)));
            }
            ViewData["ProjectPostStatusId"] = new SelectList(_context.Set <ProjectPostStatus>(), "Id", "ProjectPostStatusName", projectPost.ProjectPostStatusId);
            return(View(projectPost));
        }
Exemplo n.º 10
0
        public ProjectPostsController()
        {
            Get("/api/v1/all_projects/posts/latest/get", _ => {
                return(HttpResponse.Item(
                           "posts", new ProjectPostTransformer().Many(ProjectPost.Latest())
                           ));
            });

            Get("/api/v1/project/posts/get", _ => {
                var errors = ValidationProcessor.Process(Request, new IValidatorRule[] {
                    new ExistsInTable("project_guid", "projects", "guid"),
                });
                if (errors.Count > 0)
                {
                    return(HttpResponse.Errors(errors));
                }

                var project = ProjectRepository.FindByGuid(GetRequestStr("project_guid"));

                return(HttpResponse.Item("posts", new ProjectPostTransformer().Many(project.Posts())));
            });
        }
Exemplo n.º 11
0
        public IActionResult AddActivity(int employeeId, [FromBody] ProjectPost project)
        {
            var emp = _employeeContext.Employees.FirstOrDefault(e => e.Id == employeeId);

            if (emp == null)
            {
                return(NotFound());
            }

            emp.Activities ??= new List <Activity>();
            if (project.DateStart.Date != project.DateEnd.Date)
            {
                return(NotFound("Date start and date end should be in one day"));
            }

            if (project.DateEnd < project.DateStart)
            {
                return(NotFound("Start date cannot be greater than end date"));
            }

            // check project.end > projects.start
            emp.Activities.Add(new Activity()
            {
                Project = new Project()
                {
                    Name      = project.Project,
                    DateStart = project.DateStart,
                    DateEnd   = project.DateEnd
                },
                ActivityType = project.ActivityType,
                Role         = project.Role
            });

            _employeeContext.SaveChanges();

            return(Ok());
        }
Exemplo n.º 12
0
        public async Task <IActionResult> AddShiftDescription(int id, [Bind("Id,DateTimePosted,DateTimeChanged,ProjectPostDescription," +
                                                                            "DateTimePlaned,DateTimeStarted,DateTimeDone,HourPrice,TimeEstimate,TotalCostEstimate,TimeActual,MtrCostActual,LabourCostActual,TotalCostActual,ProjectPostStatusId,ShiftDescription")] ProjectPost projectPost)
        {
            if (id != projectPost.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var pROLabContext = _context.ProjectPosts
                                        .Include(p => p.Status);
                    projectPost.TotalCostEstimate = (projectPost.TimeEstimate * projectPost.HourPrice) + projectPost.MtrCostActual;
                    projectPost.TotalCostActual   = (projectPost.TimeActual * projectPost.HourPrice) + projectPost.MtrCostActual;
                    projectPost.LabourCostActual  = projectPost.HourPrice * projectPost.TimeActual;
                    _context.Update(projectPost);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ProjectPostExists(projectPost.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(ListProjectPosts)));
            }
            ViewData["ProjectPostStatusId"] = new SelectList(_context.Set <ProjectPostStatus>(), "Id", "ProjectPostStatusName", projectPost.ProjectPostStatusId);
            return(View(projectPost));
        }
Exemplo n.º 13
0
        public async Task <Response> Put([FromBody] ProjectPost project)
        {
            try
            {
                User user = this._userRepo.GetByUsername(AuthenticationController.GetCurrentUsername(this.HttpContext));
                if (user != null)
                {
                    project.LastEditedUser = user.Id;
                }
                project.LastEditedDate = DateTimeOffset.Now;

                if (project.Location?.Latitude != null && project.Location.Longtitude != null)
                {
                    project.LocationCode = this.GetLocation(project.Location.Longtitude, project.Location.Latitude).Id;
                }

                return(new Response(this.Response, this._repo.Edit(project)));
            }
            catch (Exception error)
            {
                return(new Response(this.Response,
                                    new Error(HttpStatusCode.BadRequest, "Kan project niet wijzigen: " + error.Message)));
            }
        }
Exemplo n.º 14
0
 public ProjectPost[] Posts() => ProjectPost.Get(this);
Exemplo n.º 15
0
 public FieldsPost()
 {
     project   = new ProjectPost();
     issuetype = new IssueTypePost();
 }
Exemplo n.º 16
0
        public SyncReleases()
        {
            Post("/api/v1/schedule/project/sync_releases/start", _ => {
                var task = Task.Run(() => {
                    var githubClient = new GitHubClient(new ProductHeaderValue("GitCom"));
                    var githubToken  = AppConfig.GetConfiguration("auth:external:github:token");
                    if (githubToken != null)
                    {
                        githubClient.Credentials = new Credentials(githubToken);
                    }

                    var repos = Repo.GetRandom(50);

                    foreach (var repo in repos)
                    {
                        try {
                            if (repo.service_type != RepoServiceType.GitHub)
                            {
                                continue;
                            }
                            var splitUrl = repo.repo_url.Split("/");
                            IEnumerable <Release> releases;
                            try {
                                releases = githubClient.Repository.Release.GetAll(
                                    splitUrl[3], splitUrl[4]
                                    ).Result.OrderBy(x => x.Id);
                            }
                            catch (Exception e) {
                                continue; // ignored
                            }

                            foreach (var release in releases)
                            {
                                if (release.Body.Length < 100)
                                {
                                    continue;
                                }

                                var existingPost = ProjectPost.FindBy("origin_id", release.Id.ToString());
                                if (existingPost != null)
                                {
                                    continue;
                                }

                                var post = ProjectPost.Create(
                                    repo.Project(), $"Released {release.Name}", release.Body
                                    );
                                post.UpdateCol("origin_id", release.Id.ToString());
                                post.UpdateCol(
                                    "created_at", release.PublishedAt.Value.ToUnixTimeSeconds().ToString()
                                    );
                            }
                        }
                        catch (Exception e) {
                            SentrySdk.CaptureException(e);
                        }
                    }
                });
                JobsPool.Get().Push(task);
                return(HttpResponse.Data(new JObject()));
            });
        }
Exemplo n.º 17
0
 public FieldsPost()
 {
     project = new ProjectPost();
     issuetype = new IssueTypePost();
 }
Exemplo n.º 18
0
 public Response SetNewProject(ProjectPost project)
 {
     return _alphahomeRepo.SetNewProject(project);
 }
Exemplo n.º 19
0
 public Project Add(ProjectPost project)
 {
     return(Execute(this.GetInserts(), project));
 }
Exemplo n.º 20
0
 public Project Edit(ProjectPost project)
 {
     return(Execute(this.GetUpdates(), project));
 }