public List <Assessment> GetAssessments(SkillwiseAssessmentsRequest request)
        {
            List <Assessment> response = new List <Assessment>();

            try
            {
                SqlSvrDAL dal = new SqlSvrDAL(request.ClientInfo);
                response = dal.GetAssessments(request.SkillId, request.CompetenceId);
            }
            catch (Exception ex)
            {
                TelemetryClient telemetry = new TelemetryClient();
                telemetry.TrackException(ex);
                //LogHelper.AddLog("AssessmentController", ex.Message, ex.StackTrace, "HCL.Academy.Service", request.ClientInfo.emailId);
            }
            return(response);
        }
        public async Task <ActionResult> Create(SkillTraining skillTraining)
        {
            try
            {
                InitializeServiceClient();
                int? assessmentID = null;
                bool result       = false;
                SkillwiseAssessmentsRequest assessmentRequest = new SkillwiseAssessmentsRequest();
                assessmentRequest.ClientInfo   = req.ClientInfo;
                assessmentRequest.CompetenceId = Convert.ToInt32(skillTraining.selectedCompetence);
                assessmentRequest.SkillId      = Convert.ToInt32(skillTraining.selectedSkill);
                HttpResponseMessage assessmentResponse = await client.PostAsJsonAsync("Assessment/GetAssessments", assessmentRequest);

                List <Assessment> assessmentsList = await assessmentResponse.Content.ReadAsAsync <List <Assessment> >();

                if (assessmentsList.Count > 0)
                {
                    assessmentID = assessmentsList.FirstOrDefault().AssessmentId;
                }
                skillTraining.assessmentId = assessmentID;
                string trainingName = skillTraining.selectedTraining;
                skillTraining.trainingName = trainingName;
                List <SkillTraining> skills = new List <SkillTraining>();

                SkillTrainingRequest skillTrainigRequest = new SkillTrainingRequest();
                skillTrainigRequest.ClientInfo         = req.ClientInfo;
                skillTrainigRequest.selectedSkill      = skillTraining.selectedSkill;
                skillTrainigRequest.selectedCompetence = skillTraining.selectedCompetence;
                skillTrainigRequest.selectedTraining   = skillTraining.selectedTraining;
                HttpResponseMessage skillTrainigResponse = await client.PostAsJsonAsync("Training/GetTrainingsByID", skillTrainigRequest);

                skills = await skillTrainigResponse.Content.ReadAsAsync <List <SkillTraining> >();

                if (skills != null)
                {
                    if (skills.Count > 0)
                    {
                        TempData["Message"] = "Combination already exists";
                        TempData.Keep();
                        return(RedirectToAction("Index"));
                    }
                }
                SkillTrainingRequest skilltrainingRequest = new SkillTrainingRequest();
                skilltrainingRequest.ClientInfo           = req.ClientInfo;
                skilltrainingRequest.selectedTraining     = skillTraining.selectedTraining;
                skilltrainingRequest.selectedCompetence   = skillTraining.selectedCompetence;
                skilltrainingRequest.selectedGEO          = skillTraining.selectedGEO;
                skilltrainingRequest.selectedSkill        = skillTraining.selectedSkill;
                skilltrainingRequest.isMandatory          = skillTraining.isMandatory;
                skilltrainingRequest.isAssessmentRequired = skillTraining.isAssessmentRequired;
                skilltrainingRequest.assessmentId         = skillTraining.assessmentId;
                skilltrainingRequest.points = skillTraining.points;
                HttpResponseMessage trainingResponse = await client.PostAsJsonAsync("Training/AddSkillTraining", skilltrainingRequest);

                result = await trainingResponse.Content.ReadAsAsync <bool>();

                if (result)
                {
                    return(RedirectToAction("Index"));
                }
                else
                {
                    return(View());
                }
            }
            catch (Exception ex)
            {
                //LogHelper.AddLog("SkillTrainingController", ex.Message, ex.StackTrace, "HCL.Academy.Web", user.EmailID);
                TelemetryClient telemetry = new TelemetryClient();
                telemetry.TrackException(ex);
                return(View(skillTraining));
            }
        }
        public async Task <ActionResult> Edit(int id, SkillTraining skillTraining, string category, string skillType)
        {
            try
            {
                InitializeServiceClient();
                bool result       = false;
                int? assessmentID = null;

                SkillwiseAssessmentsRequest assessmentRequest = new SkillwiseAssessmentsRequest();
                assessmentRequest.ClientInfo   = req.ClientInfo;
                assessmentRequest.CompetenceId = Convert.ToInt32(skillTraining.competencyLevelId);
                assessmentRequest.SkillId      = Convert.ToInt32(skillTraining.skillId);
                HttpResponseMessage assessmentResponse = await client.PostAsJsonAsync("Assessment/GetAssessments", assessmentRequest);

                List <Assessment> assessmentsList = await assessmentResponse.Content.ReadAsAsync <List <Assessment> >();

                if (assessmentsList.Count > 0)
                {
                    assessmentID = assessmentsList.FirstOrDefault().AssessmentId;
                }
                skillTraining.assessmentId = assessmentID;

                HttpResponseMessage geoResponse = await client.PostAsJsonAsync("Geo/GetAllGEOs", req);

                skillTraining.GEOs = await geoResponse.Content.ReadAsAsync <List <GEO> >();

                HttpResponseMessage competencyResponse = await client.PostAsJsonAsync("Competency/GetCompetenciesBySkillId?skillId=" + skillTraining.skillId, req);

                skillTraining.competences = await competencyResponse.Content.ReadAsAsync <List <Competence> >();

                //        HttpResponseMessage competenceResponse = await client.PostAsJsonAsync("Competency/GetAllCompetenceList", req);
                //      skillTraining.competences = await competenceResponse.Content.ReadAsAsync<List<Competence>>();

                HttpResponseMessage skillResponse = await client.PostAsJsonAsync("Skill/GetAllSkills", req);

                skillTraining.skills = await skillResponse.Content.ReadAsAsync <List <Skill> >();

                List <SkillTraining> training = new List <SkillTraining>();
                skillTraining.trainings = new List <SkillCompetencyLevelTraining>();

                HttpResponseMessage mastertrainingResponse = await client.PostAsJsonAsync("Training/GetMasterTrainings", req);

                training = await mastertrainingResponse.Content.ReadAsAsync <List <SkillTraining> >();

                foreach (var train in training)
                {
                    SkillCompetencyLevelTraining item = new SkillCompetencyLevelTraining();
                    item.Title = train.trainingName;
                    item.ID    = train.id;
                    skillTraining.trainings.Add(item);
                }
                List <SkillTraining> skills = new List <SkillTraining>();

                SkillTrainingRequest skillTrainigRequest = new SkillTrainingRequest();
                skillTrainigRequest.ClientInfo         = req.ClientInfo;
                skillTrainigRequest.selectedSkill      = skillTraining.skillId.ToString();
                skillTrainigRequest.selectedCompetence = skillTraining.competencyLevelId.ToString();
                skillTrainigRequest.selectedTraining   = skillTraining.trainingId.ToString();
                //HttpResponseMessage skillTrainigResponse = await client.PostAsJsonAsync("Training/GetTrainingsByID", skillTrainigRequest);
                //skills = await skillTrainigResponse.Content.ReadAsAsync<List<SkillTraining>>();

                //if (skills.Count > 0)
                //{
                //    TempData["Message"] = "Combination already exists";
                //    TempData.Keep();
                //    return RedirectToAction("Index");
                //}

                SkillTrainingRequest updateSkillTrainigRequest = new SkillTrainingRequest();
                updateSkillTrainigRequest.ClientInfo         = req.ClientInfo;
                updateSkillTrainigRequest.selectedSkill      = skillTraining.skillId.ToString();
                updateSkillTrainigRequest.selectedCompetence = skillTraining.competencyLevelId.ToString();
                updateSkillTrainigRequest.selectedTraining   = skillTraining.trainingId.ToString();
                updateSkillTrainigRequest.id                   = skillTraining.id;
                updateSkillTrainigRequest.GEO                  = skillTraining.GEOId.ToString();
                updateSkillTrainigRequest.selectedGEO          = skillTraining.GEOId.ToString();
                updateSkillTrainigRequest.isAssessmentRequired = skillTraining.isAssessmentRequired;
                updateSkillTrainigRequest.isMandatory          = skillTraining.isMandatory;
                updateSkillTrainigRequest.assessmentId         = skillTraining.assessmentId;
                updateSkillTrainigRequest.points               = skillTraining.points;
                updateSkillTrainigRequest.selectedTraining     = skillTraining.trainingId.ToString();
                HttpResponseMessage skillTrainigUpdateResponse = await client.PostAsJsonAsync("Training/UpdateSkillTraining", updateSkillTrainigRequest);

                result = await skillTrainigUpdateResponse.Content.ReadAsAsync <bool>();

                if (result)
                {
                    return(RedirectToAction("Index"));
                }
                else
                {
                    TempData["msg"] = "Update unsuccessful";
                    return(View(skillTraining));
                }
            }
            catch
            {
                return(View(skillTraining));
            }
        }
Beispiel #4
0
        public async Task <FileResult> DownloadReportToExcel(string skill, string competency, string projectId)
        {
            ExcelPackage excel     = new ExcelPackage();
            var          workSheet = excel.Workbook.Worksheets.Add("Sheet1");

            workSheet.TabColor         = System.Drawing.Color.Black;
            workSheet.DefaultRowHeight = 12;
            InitializeServiceClient();
            UserTrainingsRequest trainingPreReq = new UserTrainingsRequest();

            trainingPreReq.ClientInfo   = req.ClientInfo;
            trainingPreReq.CompetenceId = Convert.ToInt32(competency);
            trainingPreReq.SkillId      = Convert.ToInt32(skill);
            trainingPreReq.ProjectId    = Convert.ToInt32(projectId);
            HttpResponseMessage trainingResponse = await client.PostAsJsonAsync("Training/GetTrainings", trainingPreReq);

            List <Training> SkillBasedTrainings = await trainingResponse.Content.ReadAsAsync <List <Training> >();

            int k = 3;

            try
            {
                if (SkillBasedTrainings.Count > 0)
                {
                    workSheet.Row(1).Height = 40;
                    workSheet.Row(1).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
                    workSheet.Row(1).Style.VerticalAlignment   = ExcelVerticalAlignment.Top;
                    workSheet.Row(1).Style.Fill.PatternType    = ExcelFillStyle.Solid;
                    workSheet.Row(1).Style.Font.Bold           = true;
                    workSheet.Row(1).Style.Fill.BackgroundColor.SetColor(System.Drawing.Color.SkyBlue);
                    workSheet.Row(2).Style.VerticalAlignment = ExcelVerticalAlignment.Top;
                    workSheet.Row(3).Style.VerticalAlignment = ExcelVerticalAlignment.Top;
                    workSheet.Cells[1, 1].Value           = "Training Name";
                    workSheet.Cells[2, 1].Value           = "Training Completed";
                    workSheet.Cells[2, 1].Style.Font.Bold = true;
                    workSheet.Cells[3, 1].Value           = "Training Not Completed";
                    workSheet.Cells[3, 1].Style.Font.Bold = true;
                    workSheet.Column(1).Width             = 28;

                    for (int i = 0; i < SkillBasedTrainings.Count; i++)
                    {
                        workSheet.Column(i + 2).Width          = 50;
                        workSheet.Column(i + 2).Style.WrapText = true;
                        workSheet.Cells[1, i + 2].Value        = SkillBasedTrainings[i].TrainingName;
                        k = 2;
                        InitializeServiceClient();
                        HttpResponseMessage userResponse = await client.PostAsJsonAsync("Training/GetUserTrainingsByTrainingID?trainingId=" + SkillBasedTrainings[i].TrainingId + "&projectId=" + projectId, req);

                        List <UserTraining> userTrainings = await userResponse.Content.ReadAsAsync <List <UserTraining> >();

                        if (userTrainings != null & userTrainings.Count > 0)
                        {
                            StringBuilder completedUserList = new StringBuilder();
                            StringBuilder wipUserList       = new StringBuilder();

                            foreach (UserTraining userTraining in userTrainings)
                            {
                                if (userTraining.IsTrainingCompleted)
                                {
                                    completedUserList.Append(userTraining.Employee);
                                    completedUserList.Append(";");
                                }
                                else
                                {
                                    wipUserList.Append(userTraining.Employee);
                                    wipUserList.Append(";");
                                }
                            }
                            workSheet.Cells[k, i + 2].Value = completedUserList.ToString();
                            k = k + 1;
                            workSheet.Cells[k, i + 2].Value = wipUserList.ToString();
                        }
                    }
                }
                ////////////Get Assessments for the skill and competency level//////////
                SkillwiseAssessmentsRequest request = new SkillwiseAssessmentsRequest();
                request.ClientInfo   = req.ClientInfo;
                request.SkillId      = Convert.ToInt32(skill);
                request.CompetenceId = Convert.ToInt32(competency);

                HttpResponseMessage response = await client.PostAsJsonAsync("Assessment/GetAssessments", request);

                List <Assessment> SkillBasedAssessments = await response.Content.ReadAsAsync <List <Assessment> >();

                if (SkillBasedAssessments.Count > 0)
                {
                    k = k + 3;
                    workSheet.Row(k).Height = 40;
                    workSheet.Row(k).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
                    workSheet.Row(k).Style.Fill.PatternType    = ExcelFillStyle.Solid;
                    workSheet.Row(k).Style.Fill.BackgroundColor.SetColor(System.Drawing.Color.SkyBlue);
                    workSheet.Row(k).Style.Font.Bold             = true;
                    workSheet.Row(k).Style.VerticalAlignment     = ExcelVerticalAlignment.Top;
                    workSheet.Row(k + 1).Style.VerticalAlignment = ExcelVerticalAlignment.Top;
                    workSheet.Row(k + 2).Style.VerticalAlignment = ExcelVerticalAlignment.Top;
                    workSheet.Cells[k, 1].Value               = "Assessment Name";
                    workSheet.Cells[k + 1, 1].Value           = "Assessment Completed";
                    workSheet.Cells[k + 1, 1].Style.Font.Bold = true;
                    workSheet.Cells[k + 2, 1].Value           = "Assessment Not Completed";
                    workSheet.Cells[k + 2, 1].Style.Font.Bold = true;

                    for (int i = 0; i < SkillBasedAssessments.Count; i++)
                    {
                        workSheet.Cells[k, i + 2].Value = SkillBasedAssessments[i].AssessmentName;
                        HttpResponseMessage assessmentResponse = await client.PostAsJsonAsync("Assessment/GetUserAssessmentsByAssessmentId?assessmentId=" + SkillBasedAssessments[i].AssessmentId + "&projectId=" + projectId, request);

                        List <UserAssessment> userAssessments = await assessmentResponse.Content.ReadAsAsync <List <UserAssessment> >();

                        string userlist = String.Empty;
                        if (userAssessments != null & userAssessments.Count > 0)
                        {
                            StringBuilder completedAssmtUserList = new StringBuilder();
                            StringBuilder wipAssmtUserList       = new StringBuilder();
                            foreach (UserAssessment userAssessment in userAssessments)
                            {
                                if (userAssessment.IsAssessmentComplete)
                                {
                                    completedAssmtUserList.Append(userAssessment.Employee);
                                    completedAssmtUserList.Append(";");
                                }
                                else
                                {
                                    wipAssmtUserList.Append(userAssessment.Employee);
                                    wipAssmtUserList.Append(";");
                                }
                            }
                            workSheet.Cells[k + 1, i + 2].Value = completedAssmtUserList.ToString();
                            workSheet.Cells[k + 2, i + 2].Value = wipAssmtUserList.ToString();
                        }
                    }
                }
                string clientName = ConfigurationManager.AppSettings["ClientName"].ToString();
                string excelName  = clientName + "_TrainingReport_" + DateTime.Now.Day + DateTime.Now.Month + DateTime.Now.Year + ".xlsx";
                using (var memoryStream = new MemoryStream())
                {
                    Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                    Response.AddHeader("content-disposition", "attachment; filename=" + excelName);
                    excel.SaveAs(memoryStream);
                    memoryStream.WriteTo(Response.OutputStream);
                    Response.Flush();
                    Response.End();
                    return(File(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"));
                }
            }
            catch (Exception ex)
            {
                //LogHelper.AddLog("TrainingReportController", ex.Message, ex.StackTrace, "HCL.Academy.Web", user.EmailID);
                TelemetryClient telemetry = new TelemetryClient();
                telemetry.TrackException(ex);
                return(null);
            }
        }