예제 #1
0
        public async Task <int> AddProjectActivityPlan(ProjectActivityPlan projectactivityplan)
        {
            string mailSent    = "";
            string MailSubject = "Delay in Activity Completion";
            string MailBody    = "Following Activity is delayed to complete as per plan.";

            int insertedprojectplanid = 0;
            int projectplanid         = 0;

            if (!IsProjectPlanExist(projectactivityplan.ProjectID))
            {
                projectplanid = await ProjectPlanRepository.AddProjectPlan(new ProjectPlan { ProjectID = projectactivityplan.ProjectID, ProjectPlanStatus = "Created", ReopenReason = "", CreatedDate = projectactivityplan.CreatedDate, CreatedBy = projectactivityplan.CreatedBy });
            }
            else
            {
                projectplanid = projectactivityplan.ProjectPlanID;
            }
            if (!IsActivitiesExist(projectplanid, projectactivityplan.Activity))
            {
                if (!IsParentExist(projectplanid, projectactivityplan.ParentID))
                {
                    string strTemplateID = this.GetTemplateID(projectplanid, projectactivityplan.Activity, projectactivityplan.ParentID, true);
                    insertedprojectplanid = await ProjectActivityPlanRepository.AddProjectActivityPlan(new ProjectActivityPlan { ProjectID = projectactivityplan.ProjectID, ProjectPlanID = projectplanid, Activity = ppParentID.ToString(), TemplateID = strTemplateID, ParentID = "0", Dependency = "", StartDate = projectactivityplan.StartDate, EndDate = projectactivityplan.EndDate, ComplitionDate = projectactivityplan.ComplitionDate, Status = projectactivityplan.Status, CreatedDate = projectactivityplan.CreatedDate, CreatedBy = projectactivityplan.CreatedBy });
                }
                insertedprojectplanid = await ProjectActivityPlanRepository.AddProjectActivityPlan(new ProjectActivityPlan { ProjectID = projectactivityplan.ProjectID, ProjectPlanID = projectplanid, Activity = projectactivityplan.Activity, TemplateID = this.GetTemplateID(projectplanid, projectactivityplan.Activity, projectactivityplan.ParentID, false), ParentID = projectactivityplan.ParentID, Dependency = projectactivityplan.Dependency, StartDate = projectactivityplan.StartDate, EndDate = projectactivityplan.EndDate, ComplitionDate = projectactivityplan.ComplitionDate, Status = projectactivityplan.Status, CreatedDate = projectactivityplan.CreatedDate, CreatedBy = projectactivityplan.CreatedBy });

                if (insertedprojectplanid > 0)
                {
                    ProjectActivityPlan objprojectactivityplan = ProjectActivityPlanRepository.GetProjectActivityPlans().FirstOrDefault(c => c.ProjectID == projectactivityplan.ProjectID && c.ProjectPlanID == projectplanid && c.TemplateID == projectactivityplan.ParentID);
                    if (objprojectactivityplan != null)
                    {
                        if (projectactivityplan.EndDate > objprojectactivityplan.EndDate)
                        {
                            objprojectactivityplan.EndDate = projectactivityplan.EndDate;
                            int updateprojectplan = await ProjectActivityPlanRepository.UpdateProjectActivityPlan(objprojectactivityplan);
                        }
                    }

                    if (projectactivityplan.EndDate < DateTime.Now)
                    {
                        int    value;
                        string strActivity;
                        if (int.TryParse(projectactivityplan.Activity, out value))
                        {
                            ActivityTemplate activity = ActivitiesRepository.GetActivities().FirstOrDefault(c => c.ActivityID == value);
                            strActivity = activity.Activity;
                        }
                        else
                        {
                            strActivity = projectactivityplan.Activity;
                        }

                        MailBody = MailBody + "<br/><br/>" + "<b>Activity Name</b> : " + strActivity;
                        mailSent = await Mail.SendMailActivityPlan(projectactivityplan.ProjectID, "Delay", MailSubject, MailBody);
                    }
                }
            }
            return(projectplanid > 0 ? projectplanid : 0);
        }