public bool UpdateCustomerCoreScore(int PerId, string ComCSV) { SendReviewToCustomer coDetails = _db.SendReviewToCustomers.Where(x => x.Id == PerId && x.Archived == false).FirstOrDefault(); EditSegmentViewModel model = new EditSegmentViewModel(); JavaScriptSerializer js = new JavaScriptSerializer(); model.CoworkerSegment = js.Deserialize <List <CoworkerSegment> >(ComCSV); int totalScore = 0, totalQue = 0; foreach (var item in model.CoworkerSegment) { item.questionDataList = js.Deserialize <List <CoworkerSegmentQuetion> >(item.questionData); totalQue = totalQue + item.questionDataList.Count(); foreach (var data in item.questionDataList) { totalScore = totalScore + Convert.ToInt32(data.Score); } } int AvgCoreScore = totalScore / totalQue; coDetails.CoWorkerScoreJSC = ComCSV; coDetails.CoreScore = Convert.ToString(AvgCoreScore); coDetails.MailStatus = "See Response"; _db.SaveChanges(); return(true); }
public int saveEmployeePerformance(int PerformanceID, int Flag, string OverallScoreString, string Comments, int EmpId, string JSONCustomerSegment, string JSONJobRoleSegment, int ReviewID, int IsManagerEmployee, int EmpPerfDetailId, int EmployeePerformaceID) { var ExistPerformance = _db.PerformanceEmployeeDetails.Where(x => x.Performance_Id == ReviewID && x.EmployeeId == EmpId).ToList(); JavaScriptSerializer js = new JavaScriptSerializer(); EditSegmentViewModel model = new EditSegmentViewModel(); EmployeePerformanceCoreJSONDetail custoJSON = new EmployeePerformanceCoreJSONDetail(); EmployeePerformanceJobRoleSegmentJSONDetail jobroleJSON = new EmployeePerformanceJobRoleSegmentJSONDetail(); int EmpPerfDeId = Convert.ToInt32(EmpPerfDetailId); int IsManagerID = Convert.ToInt32(IsManagerEmployee); //if (ExistPerformance != null && ExistPerformance.Count > 0) //{ // bool delete = deleteInviteCutomer(EmpId); //} int ID = 0; PerformanceEmployeeDetail perDetails = new PerformanceEmployeeDetail(); if (Flag == 2) { var ExistPerformanceData = (from record in _db.PerformanceEmployeeDetails.Where(x => x.ReviewID == ReviewID && x.EmployeeId == EmpId && x.IsArchived == false && x.IsManager_Id == IsManagerEmployee) orderby record.UserIDCreatedDate descending select record).SingleOrDefault(); if (ExistPerformanceData != null) { ExistPerformanceData.OverAllScoreJSON = OverallScoreString; ExistPerformanceData.Comments = Comments; ExistPerformanceData.IsArchived = false; ExistPerformanceData.EmployeeId = EmpId; ExistPerformanceData.UserIDLastModifiedBy = SessionProxy.UserId; ExistPerformanceData.UserIDLastModifiedDate = DateTime.Now; _db.Entry(ExistPerformanceData).State = System.Data.Entity.EntityState.Modified; ExistPerformanceData.IsManager_Id = IsManagerID; _db.SaveChanges(); ID = (from record in _db.PerformanceEmployeeDetails where record.ReviewID == ReviewID && record.EmployeeId == EmpId && record.IsArchived == false && record.IsManager_Id == IsManagerEmployee orderby record.Id descending select record.Id).First(); //Update OverAllScore Of Employee } else { perDetails.Performance_Id = EmployeePerformaceID; perDetails.OverAllScoreJSON = OverallScoreString; perDetails.Comments = Comments; if (IsManagerEmployee == 0) { perDetails.IsManager_Id = IsManagerID; perDetails.EmployeeId = EmpId; } else if (IsManagerEmployee == 1) { perDetails.IsManager_Id = IsManagerID; perDetails.Performance_ManagerId = SessionProxy.UserId; } perDetails.IsArchived = false; perDetails.EmployeeId = EmpId; perDetails.UserIDLastModifiedBy = SessionProxy.UserId; perDetails.UserIDLastModifiedDate = DateTime.Now; perDetails.ReviewID = ReviewID; perDetails.IsFormCompleted = true; _db.PerformanceEmployeeDetails.Add(perDetails); _db.SaveChanges(); ID = (from record in _db.PerformanceEmployeeDetails where record.ReviewID == ReviewID && record.EmployeeId == EmpId && record.IsArchived == false && record.IsManager_Id == IsManagerEmployee orderby record.Id descending select record.Id).First(); } } else if (Flag == 1) { if (!string.IsNullOrEmpty(JSONCustomerSegment)) { model.CoreSeg = js.Deserialize <List <CoreSegment> >(JSONCustomerSegment); foreach (var item in model.CoreSeg) { item.CoreQueListData = js.Deserialize <List <QuestionModel> >(item.QueationType); } } if (model.CoreSeg != null && model.CoreSeg.Count > 0) { foreach (var item in model.CoreSeg) { foreach (var data in item.CoreQueListData) { int QueIDCoreSeg = Convert.ToInt32(data.QueId); var ExistingCoreSegData = (from record in _db.EmployeePerformanceCoreJSONDetails.Where(x => x.ReviewID == ReviewID && x.EmployeeID == EmpId && x.QueId == QueIDCoreSeg && x.CoreId == item.CoreId && x.Archived == false && x.IsManager_Id == IsManagerEmployee) orderby record.UserIdCreatedBy descending select record).SingleOrDefault(); if (ExistingCoreSegData != null) { ExistingCoreSegData.Score = data.Score; ExistingCoreSegData.Comments = data.Comments; ExistingCoreSegData.UserIdLastModifiedBy = SessionProxy.UserId; ExistingCoreSegData.UserIdLastModifiedDate = DateTime.Now; ExistingCoreSegData.IsManager_Id = IsManagerID; _db.Entry(ExistingCoreSegData).State = System.Data.Entity.EntityState.Modified; _db.SaveChanges(); ID = (from record in _db.EmployeePerformanceCoreJSONDetails where record.ReviewID == ReviewID && record.EmployeeID == EmpId && record.Archived == false && record.IsManager_Id == IsManagerEmployee orderby record.Id descending select record.Id).First(); } else { if (IsManagerEmployee == 1) { custoJSON.IsManager_Id = IsManagerID; custoJSON.PerManagerDetailId = SessionProxy.UserId; } else { custoJSON.IsManager_Id = IsManagerID; //custoJSON.PerManagerDetailId = SessionProxy.UserId; } custoJSON.CoreId = item.CoreId; custoJSON.PerEmployeedetailId = perDetails.Id; custoJSON.QueId = Convert.ToInt32(data.QueId); custoJSON.Score = data.Score; custoJSON.Comments = data.Comments; custoJSON.Archived = false; custoJSON.EmployeeID = EmpId; custoJSON.UserIdCreatedBy = SessionProxy.UserId; custoJSON.UserIdCreatedDate = DateTime.Now; custoJSON.UserIdLastModifiedBy = SessionProxy.UserId; custoJSON.UserIdLastModifiedDate = DateTime.Now; custoJSON.ReviewID = ReviewID; custoJSON.IsFormCompleted = true; _db.EmployeePerformanceCoreJSONDetails.Add(custoJSON); _db.SaveChanges(); ID = (from record in _db.EmployeePerformanceCoreJSONDetails where record.ReviewID == ReviewID && record.EmployeeID == EmpId && record.Archived == false && record.IsManager_Id == IsManagerEmployee orderby record.Id descending select record.Id).First(); } } } } } else if (Flag == 0) { if (!string.IsNullOrEmpty(JSONJobRoleSegment)) { model.JobRoleSeg = js.Deserialize <List <JobRoleSegment> >(JSONJobRoleSegment); foreach (var item in model.JobRoleSeg) { item.JobRoleQueListData = js.Deserialize <List <JobRoleQuestionModel> >(item.QueationType); } } if (model.JobRoleSeg != null && model.JobRoleSeg.Count > 0) { foreach (var item in model.JobRoleSeg) { foreach (var data in item.JobRoleQueListData) { int QueIDJobRoleSeg = Convert.ToInt32(data.QueId); var ExistingJObRoleSegData = (from record in _db.EmployeePerformanceJobRoleSegmentJSONDetails.Where(x => x.ReviewID == ReviewID && x.EmployeeID == EmpId && x.QueId == QueIDJobRoleSeg && x.JobRoleSegId == item.JobRoleIds && x.Archived == false && x.IsManager_Id == IsManagerEmployee) orderby record.UserIdCreatedBy descending select record).SingleOrDefault(); if (ExistingJObRoleSegData != null) { ExistingJObRoleSegData.Score = data.Score; ExistingJObRoleSegData.Comment = data.Comments; ExistingJObRoleSegData.LastModifiedBy = SessionProxy.UserId; ExistingJObRoleSegData.LastModifiedDate = DateTime.Now; _db.Entry(ExistingJObRoleSegData).State = System.Data.Entity.EntityState.Modified; ExistingJObRoleSegData.IsManager_Id = IsManagerID; _db.SaveChanges(); ID = (from record in _db.EmployeePerformanceJobRoleSegmentJSONDetails where record.ReviewID == ReviewID && record.EmployeeID == EmpId && record.Archived == false && record.IsManager_Id == IsManagerEmployee orderby record.Id descending select record.Id).First(); } else { if (IsManagerEmployee == 1) { jobroleJSON.IsManager_Id = IsManagerID; jobroleJSON.PerManagerdetailId = SessionProxy.UserId; } else { jobroleJSON.IsManager_Id = IsManagerID; // jobroleJSON.PerManagerdetailId = null; } jobroleJSON.PerEmployeedetailId = perDetails.Id; jobroleJSON.JobRoleSegId = item.JobRoleIds; jobroleJSON.QueId = Convert.ToInt32(data.QueId); jobroleJSON.Score = data.Score; jobroleJSON.Comment = data.Comments; jobroleJSON.Archived = false; jobroleJSON.EmployeeID = EmpId; jobroleJSON.UserIdCreatedBy = SessionProxy.UserId; jobroleJSON.UserIdCreatedDate = DateTime.Now; jobroleJSON.LastModifiedBy = SessionProxy.UserId; jobroleJSON.LastModifiedDate = DateTime.Now; jobroleJSON.ReviewID = ReviewID; jobroleJSON.IsFormCompleted = true; _db.EmployeePerformanceJobRoleSegmentJSONDetails.Add(jobroleJSON); _db.SaveChanges(); ID = (from record in _db.EmployeePerformanceJobRoleSegmentJSONDetails where record.ReviewID == ReviewID && record.EmployeeID == EmpId && record.Archived == false && record.IsManager_Id == IsManagerEmployee orderby record.Id descending select record.Id).First(); } } } } // Update CoreScore var JobRoleScore = _db.EmployeePerformanceJobRoleSegmentJSONDetails.Where(x => x.ReviewID == ReviewID && x.EmployeeID == EmpId && x.Archived == false && x.IsManager_Id == IsManagerEmployee).ToList(); if (JobRoleScore.Count > 0) { int TotalJobRoleScore = 0; double AvgQueJobRoleScore = 0; foreach (var item in JobRoleScore) { int check; int.TryParse(item.Score, out check); TotalJobRoleScore = TotalJobRoleScore + check; } AvgQueJobRoleScore = TotalJobRoleScore / JobRoleScore.Count; var EmployeePerf = (from record in _db.EmployeePerformances where record.ReviewId == ReviewID & record.Archived == false orderby record.Id descending select record).FirstOrDefault(); //var EmployeePerf = _db.EmployeePerformances.Where(x => x.Id == ReviewID && x.Archived == false).FirstOrDefault(); EmployeePerf.JobRoleScore = Convert.ToString(AvgQueJobRoleScore); EmployeePerf.LastModifiedDate = DateTime.Now; EmployeePerf.UserIDLastModifiedBy = SessionProxy.UserId; _db.SaveChanges(); } } var CalculateCoreScore = _db.EmployeePerformanceCoreJSONDetails.Where(x => x.ReviewID == ReviewID && x.EmployeeID == EmpId && x.Archived == false).ToList(); if (CalculateCoreScore.Count > 0) { int TotalCoreScore = 0; double AvgQueCoreScore = 0; foreach (var item in CalculateCoreScore) { int chkq; int.TryParse(item.Score, out chkq); TotalCoreScore = TotalCoreScore + chkq; } AvgQueCoreScore = TotalCoreScore / CalculateCoreScore.Count; var EmployeePerf = _db.PerformanceEmployeeDetails.Where(x => x.Id == EmpPerfDeId).FirstOrDefault(); if (EmployeePerf != null) { EmployeePerf.CoreScore = Convert.ToString(AvgQueCoreScore); EmployeePerf.UserIDLastModifiedDate = DateTime.Now; EmployeePerf.UserIDLastModifiedBy = SessionProxy.UserId; } _db.SaveChanges(); } if (!string.IsNullOrEmpty(OverallScoreString)) { string[] OverallScoreStringList = OverallScoreString.Split('^'); int OverAllScoreValue = OverallScoreStringList.Length; var EmployeePerf = (from record in _db.EmployeePerformances where record.ReviewId == ReviewID & record.Archived == false orderby record.Id descending select record).FirstOrDefault(); EmployeePerf.OverallScore = Convert.ToString(OverAllScoreValue); EmployeePerf.LastModifiedDate = DateTime.Now; EmployeePerf.UserIDLastModifiedBy = SessionProxy.UserId; _db.SaveChanges(); } return(ID); }
public int saveInviteCustomer(string OverallScoreString, string Comments, int PerReviewId, int CustomerId, int EmpId, string JSONCustomerSegment, string JSONJobRoleSegment, string EmpPerfDetailId) { //var ExistPerformance = _db.PerformanceCustomerDetails.Where(x => x.Performance_Id == PerReviewId && x.InviteCustomer_Id == CustomerId).ToList(); //if (ExistPerformance != null && ExistPerformance.Count > 0) //{ // bool delete = deleteInviteCutomer(CustomerId); //} PerformanceCustomerDetail custDetails = new PerformanceCustomerDetail(); if (!string.IsNullOrEmpty(EmpPerfDetailId) && EmpPerfDetailId != "0") { custDetails.Id = Convert.ToInt32(EmpPerfDetailId); //Update OverAllScore Of Employee } custDetails.Performance_Id = PerReviewId; custDetails.InviteCustomer_Id = CustomerId; // custDetails.OverallScoreJSON = OverallScoreString; custDetails.InviteStatus = "Invite"; custDetails.Comments = Comments; custDetails.IsArchived = false; custDetails.EmployeeId = EmpId; custDetails.CusomerSegmentsJSON = JSONCustomerSegment; custDetails.LastModifiedBy = SessionProxy.UserId; custDetails.LastModifiedDate = DateTime.Now; _db.PerformanceCustomerDetails.Add(custDetails); _db.SaveChanges(); JavaScriptSerializer js = new JavaScriptSerializer(); EditSegmentViewModel model = new EditSegmentViewModel(); if (!string.IsNullOrEmpty(JSONCustomerSegment)) { model.CustomerSeg = js.Deserialize <List <CustomerSegment> >(JSONCustomerSegment); foreach (var item in model.CustomerSeg) { item.CustomerQueListData = js.Deserialize <List <CustomerQuestionModel> >(item.QueationType); } } if (!string.IsNullOrEmpty(JSONJobRoleSegment)) { model.JobRoleSeg = js.Deserialize <List <JobRoleSegment> >(JSONJobRoleSegment); foreach (var item in model.JobRoleSeg) { item.JobRoleQueListData = js.Deserialize <List <JobRoleQuestionModel> >(item.QueationType); } } EmployeePerformanceCustomerSegmentJSONDetail custoJSON = new EmployeePerformanceCustomerSegmentJSONDetail(); if (model.CustomerSeg != null && model.CustomerSeg.Count > 0) { foreach (var item in model.CustomerSeg) { foreach (var data in item.CustomerQueListData) { custoJSON.CustomerSegId = item.CustoIds; custoJSON.PerCustomerdetailId = custDetails.Id; custoJSON.QueId = Convert.ToInt32(data.QueId); custoJSON.Score = data.Score; custoJSON.Comments = data.Comments; custoJSON.Archived = false; custoJSON.UserIdCreatedBy = SessionProxy.UserId; custoJSON.UserIdCreatedDate = DateTime.Now; custoJSON.LastModifiedBy = SessionProxy.UserId; custoJSON.LastModifiedDate = DateTime.Now; _db.EmployeePerformanceCustomerSegmentJSONDetails.Add(custoJSON); _db.SaveChanges(); } } } EmployeePerformanceJobRoleSegmentJSONDetail jobroleJSON = new EmployeePerformanceJobRoleSegmentJSONDetail(); if (model.JobRoleSeg != null && model.JobRoleSeg.Count > 0) { foreach (var item in model.JobRoleSeg) { foreach (var data in item.JobRoleQueListData) { jobroleJSON.PerCustomerdetailId = custDetails.Id; jobroleJSON.JobRoleSegId = item.JobRoleIds; jobroleJSON.QueId = Convert.ToInt32(data.QueId); jobroleJSON.Score = data.Score; jobroleJSON.Comment = data.Comments; jobroleJSON.Archived = false; jobroleJSON.UserIdCreatedBy = SessionProxy.UserId; jobroleJSON.UserIdCreatedDate = DateTime.Now; jobroleJSON.LastModifiedBy = SessionProxy.UserId; jobroleJSON.LastModifiedDate = DateTime.Now; _db.EmployeePerformanceJobRoleSegmentJSONDetails.Add(jobroleJSON); _db.SaveChanges(); } } } int EmpPerfDeId = Convert.ToInt32(EmpPerfDetailId); var CalculateCustomerScore = _db.EmployeePerformanceCustomerSegmentJSONDetails.Where(x => x.PerCustomerdetailId == EmpPerfDeId && x.Archived == false).ToList(); if (CalculateCustomerScore.Count > 0) { int TotalCoreScore = 0; double AvgQueCoreScore = 0; foreach (var item in CalculateCustomerScore) { TotalCoreScore = TotalCoreScore + Convert.ToInt32(item.Score); } AvgQueCoreScore = TotalCoreScore / CalculateCustomerScore.Count; var EmployeePerf = _db.PerformanceCustomerDetails.Where(x => x.Id == EmpPerfDeId).FirstOrDefault(); EmployeePerf.CustomerScore = Convert.ToString(AvgQueCoreScore); EmployeePerf.LastModifiedDate = DateTime.Now; EmployeePerf.LastModifiedBy = SessionProxy.UserId; _db.SaveChanges(); } return(custDetails.Id); }