public async Task <ApiResponse> Handle(AddProjectSubActivityDetailCommand request, CancellationToken cancellationToken)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                ProjectActivityDetail obj = _mapper.Map <AddProjectSubActivityDetailCommand, ProjectActivityDetail>(request);
                //Note : check for all the subactivity are completed or not.
                ProjectActivityDetail parent = await _dbContext.ProjectActivityDetail
                                               .FirstOrDefaultAsync(x => x.IsDeleted == false &&
                                                                    x.ActivityId == request.ParentId &&
                                                                    x.StatusId == (int)ProjectPhaseType.Completed);

                obj.StatusId    = (int)ProjectPhaseType.Planning;
                obj.CreatedDate = request.CreatedDate;
                obj.IsDeleted   = false;
                obj.CreatedById = request.CreatedById;
                await _dbContext.ProjectActivityDetail.AddAsync(obj);

                await _dbContext.SaveChangesAsync();

                ProjectActivityModel actvityModel = new ProjectActivityModel()
                {
                    ActivityDescription = obj.ActivityDescription,
                    ActivityId          = obj.ActivityId,
                    StatusId            = obj.StatusId,
                    ActivityName        = obj.ActivityName,
                    ActualEndDate       = obj.ActualEndDate,
                    ActualStartDate     = obj.ActualStartDate,
                    BudgetLineId        = obj.BudgetLineId,
                    ParentId            = obj.ParentId,
                    Target           = obj.Target,
                    PlannedEndDate   = obj.PlannedEndDate,
                    PlannedStartDate = obj.PlannedStartDate,
                    EmployeeID       = obj.EmployeeID,
                    SubActivityTitle = obj.SubActivityTitle
                };

                if (parent != null)
                {
                    parent.StatusId = (int)ProjectPhaseType.Implementation;
                    await _dbContext.SaveChangesAsync();

                    actvityModel.StatusId = parent.StatusId;
                }
                response.data.ProjectActivityModel = actvityModel;
                response.StatusCode = StaticResource.successStatusCode;
                response.Message    = "Success";
            }
            catch (Exception ex)
            {
                response.StatusCode = StaticResource.failStatusCode;
                response.Message    = StaticResource.SomethingWrong + ex.Message;
            }
            return(response);
        }
        public async Task <ApiResponse> Handle(GetProjectActivityByActivityIdQuery request, CancellationToken cancellationToken)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                var activityDetail = await _dbContext.ProjectActivityDetail
                                     .Include(x => x.ProjectBudgetLineDetail)
                                     .Include(x => x.EmployeeDetail)
                                     .Include(x => x.ActivityStatusDetail)
                                     .Include(x => x.ProjectActivityProvinceDetail)
                                     .Include(x => x.ProjectActivityProvinceDetail)
                                     .FirstOrDefaultAsync(v => v.IsDeleted == false &&
                                                          v.ParentId == null &&
                                                          v.ActivityId == request.activityId
                                                          );

                ProjectActivityModel obj = new ProjectActivityModel();

                if (activityDetail != null)
                {
                    obj.ActivityId          = activityDetail.ActivityId;
                    obj.ActivityName        = activityDetail.ActivityName;
                    obj.ActivityDescription = activityDetail.ActivityDescription;
                    obj.BudgetLineId        = activityDetail.ProjectBudgetLineDetail.BudgetLineId;
                    obj.BudgetName          = activityDetail.ProjectBudgetLineDetail.BudgetName;
                    obj.EmployeeID          = activityDetail.EmployeeDetail.EmployeeID;
                    obj.EmployeeName        = activityDetail.EmployeeDetail.EmployeeName;
                    obj.StatusId            = activityDetail.ActivityStatusDetail.StatusId;
                    obj.StatusName          = activityDetail.ActivityStatusDetail.StatusName;
                    obj.PlannedStartDate    = activityDetail.PlannedStartDate;
                    obj.PlannedEndDate      = activityDetail.PlannedEndDate;
                    obj.Recurring           = activityDetail.Recurring;
                    obj.RecurringCount      = activityDetail.RecurringCount;
                    obj.RecurrinTypeId      = activityDetail.RecurrinTypeId;
                    obj.ActualStartDate     = activityDetail.ActualStartDate;
                    obj.ActualEndDate       = activityDetail.ActualEndDate;
                    obj.ProvinceId          = activityDetail.ProjectActivityProvinceDetail.Select(x => x.ProvinceId);
                    obj.DistrictID          = activityDetail.ProjectActivityProvinceDetail.Select(x => x.DistrictID);
                }

                response.data.ProjectActivityDetails = obj;
                response.StatusCode = StaticResource.successStatusCode;
                response.Message    = "Success";
            }
            catch (Exception ex)
            {
                response.StatusCode = StaticResource.failStatusCode;
                response.Message    = StaticResource.SomethingWrong + ex.Message;
            }
            return(response);
        }
Пример #3
0
 public ActionResult Edit(ProjectActivityModel projectActivity)
 {
     if (ModelState.IsValid)
     {
         var project = AutoMapper.Mapper.Map <ProjectActivity>(projectActivity);
         db.Entry(project).State = EntityState.Modified;
         project.UserName        = Convert.ToString(Session["Username"]);
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.ActivityId       = new SelectList(db.Activity, "ActivityId", "ActivityName", projectActivity.ActivityId);
     ViewBag.ActivityStatusId = new SelectList(db.ActivityStatus, "ActivityStatusId", "ActivityStatusName", projectActivity.ActivityStatusId);
     ViewBag.ProjectId        = new SelectList(db.Project, "ProjectId", "ProjectName", projectActivity.ProjectId);
     return(View(projectActivity));
 }