public bool AddProjectSkillResource(ProjectSkillResourceRequest request) { bool status = false; try { ProjectSkillResource psr = new ProjectSkillResource(); psr.projectId = request.projectId; psr.skillId = request.skillId; psr.competencyLevelId = request.competencyLevelId; psr.expectedResourceCount = request.expectedResourceCount; psr.availableResourceCount = request.availableResourceCount; SqlSvrDAL dal = new SqlSvrDAL(request.ClientInfo); status = dal.AddProjectSkillResource(request.projectId, psr); } catch (Exception ex) { //LogHelper.AddLog("ProjectController,AddProjectSkillResource", ex.Message, ex.StackTrace, "HCL.Academy.Service", request.ClientInfo.emailId); TelemetryClient telemetry = new TelemetryClient(); telemetry.TrackException(ex); } return(status); }
/// <summary> /// Checks whether the Project Details were uploaded successfully. /// </summary> /// <param name="projects"></param> /// <param name="projectskills"></param> /// <param name="projectskillresources"></param> /// <param name="logText"></param> /// <returns></returns> //private bool InsertProjectFromExcel(List<Project> projects, List<ProjectSkill> projectskills, // List<ProjectSkillResource> projectskillresources, ref StringBuilder logText) private async Task <MultiReturnValue> InsertProjectFromExcel(List <Project> projects, List <ProjectSkill> projectskills, List <ProjectSkillResource> projectskillresources) { //IDAL dal = (new DALFactory()).GetInstance(); InitializeServiceClient(); //bool result = false; MultiReturnValue mrv = new MultiReturnValue(); try { List <Project> allProjects = null; List <ProjectSkill> allProjectSkills = null; List <ProjectSkillResource> allProjectSkillResource = null; /*Code for Service*/ HttpResponseMessage response = null; foreach (Project project in projects) { //dal.AddProject(project.projectName); response = await client.PostAsJsonAsync("Project/AddProject?projectName=" + project.projectName, req); mrv.LogText.Append("<tr><td class='success'>The Project : <span class='bold'>" + project.projectName + "</span> added successfully to the list Projects.</td></tr>"); } //allProjects = dal.GetAllProjects(); //List of all Projects response = await client.PostAsJsonAsync("Project/GetAllProjects", req); allProjects = await response.Content.ReadAsAsync <List <Project> >(); //allProjectSkills = dal.GetAllProjectSkills(); //List of all Project Skills response = await client.PostAsJsonAsync("Project/GetAllProjectSkills", req); allProjectSkills = await response.Content.ReadAsAsync <List <ProjectSkill> >(); mrv.LogText.Append("<tr><td> </td></tr>"); foreach (ProjectSkill proskill in projectskills) { List <ProjectSkill> objProSkill = allProjectSkills.Where(item => item.project == proskill.project && item.skill == proskill.skill).ToList(); if (objProSkill != null && objProSkill.Count > 0) { // project & skill combination already exists mrv.LogText.Append("<tr><td class='error'>Project :<span class='bold'>" + objProSkill.FirstOrDefault().project + "</span>Skill : <span class='bold'>" + objProSkill.FirstOrDefault().skill + "</span> is already present in ProjectSkill list.<td><tr>"); } else // add project skill { List <Project> project = allProjects.Where(item => item.projectName == proskill.project).ToList(); if (project != null && project.Count > 0) { //dal.AddProjectSkill( // allProjects.Where(item => item.projectName == proskill.project).FirstOrDefault().id, // proskill.skillId); //AddProjectSkill(RequestBase req, int ProjectID, int SkillID) response = await client.PostAsJsonAsync("Project/AddProjectSkill?ProjectID=" + project[0].id + "&SkillID=" + proskill.skillId, req); mrv.LogText.Append("<tr><td class='success'>Project : <span class='bold'>" + proskill.project + "</span> and Skill : <span class='bold'>" + proskill.skill + "</span> added successfully to the list ProjectSkills.</td></tr>"); } else { // project doesn't exist in Project list // So it can't be added to project skill mrv.LogText.Append("<tr><td class='error'>Project :<span class='bold'>" + proskill.project + "</span>is not available in Project list so It can't be added to ProjectSkill<td><tr>"); } } } //allProjectSkillResource = dal.GetAllProjectSkillResources(); response = await client.PostAsJsonAsync("Project/GetAllProjectSkillResources", req); allProjectSkillResource = await response.Content.ReadAsAsync <List <ProjectSkillResource> >(); response = null; response = await client.PostAsJsonAsync("Skill/GetAllSkills", req); List <Skill> allSkills = await response.Content.ReadAsAsync <List <Skill> >(); mrv.LogText.Append("<tr><td> </td></tr>"); ProjectSkillResourceRequest req1 = new ProjectSkillResourceRequest(); foreach (ProjectSkillResource skillResource in projectskillresources) { List <Project> project = allProjects.Where(item => item.projectName == skillResource.projectName).ToList(); List <Skill> skill = allSkills.Where(x => x.SkillName == skillResource.skill).ToList(); if (project != null && project.Count > 0) { int projectid = project != null && project.Count() > 0 ? project.FirstOrDefault().id : -1; int skillid = skill != null && skill.Count() > 0 ? skill.FirstOrDefault().SkillId : -1; List <ProjectSkillResource> objProSkillResource = allProjectSkillResource.Where(item => item.projectId == projectid && item.skillId == skillResource.skillId && item.competencyLevelId == skillResource.competencyLevelId).ToList(); //List<ProjectSkillResource> objProSkillResource = await response.Content.ReadAsAsync<List<ProjectSkillResource>>(); if (objProSkillResource != null && objProSkillResource.Count() > 0 && objProSkillResource[0].expectedResourceCount != 0 && objProSkillResource[0].availableResourceCount != 0) { // Item already exist // Can't be added again mrv.LogText.Append("<tr><td class='error'>Project :<span class='bold'>" + skillResource.projectName + "</span> Skill : <span class='bold'>" + skillResource.skill + "</span>, Competency Level : <span class='bold'>" + skillResource.competencyLevel + "</span> already exists in ProjectSkillResource list.<td><tr>"); } else { //dal.AddProjectSkillResource(allProjects.Where(item => item.projectName == skillResource.projectName).FirstOrDefault().id,skillResource); req1.skillId = skillid; req1.projectId = projectid; req1.competencyLevelId = skillResource.competencyLevelId; req1.availableResourceCount = skillResource.availableResourceCount; req1.expectedResourceCount = skillResource.expectedResourceCount; response = await client.PostAsJsonAsync("Project/AddProjectSkillResource", req1); mrv.LogText.Append("<tr><td class='success'>Project : " + skillResource.projectName + " Skill : " + skillResource.skill + " and Competency Level : " + skillResource.competencyLevel + " added successfully to the list ProjectSkillResource. </td></tr>"); } } else { // Can't be added // Project doesn't exist mrv.LogText.Append("<tr><td class='error'>Project is not available for combination, Project :<span class='bold'>" + skillResource.projectName + "</span> Skill : <span class='bold'>" + skillResource.skill + "</span>, Competency Level : <span class='bold'>" + skillResource.competencyLevel + "</span>. So it can't be added to ProjectSkillResource<td><tr>"); } } mrv.Result = true; //result = true; } catch (Exception ex) { //UserManager user = (UserManager)Session["CurrentUser"]; //LogHelper.AddLog("ImportsProjectController", ex.Message, ex.StackTrace, "HCL.Academy.Web", user.EmailID); TelemetryClient telemetry = new TelemetryClient(); telemetry.TrackException(ex); mrv.Result = false; } //return result; return(mrv); }