public bool deleteInviteEmployee(int EmployeID) { var EmployeeList = _db.EmployeePerformances.Where(x => x.EmployeeId == EmployeID).ToList(); var EmployeePerformnceData = _db.PerformanceEmployeeDetails.Where(x => x.EmployeeId == EmployeID && x.IsArchived == false).FirstOrDefault(); foreach (var item in EmployeeList) { EmployeePerformance delete = EmployeeList.Where(x => x.Id == item.Id).FirstOrDefault(); _db.EmployeePerformances.Remove(delete); _db.SaveChanges(); var deleteJSON = _db.EmployeePerformanceCoreJSONDetails.Where(x => x.PerEmployeedetailId == EmployeePerformnceData.Id).ToList(); var delateJobRole = _db.EmployeePerformanceJobRoleSegmentJSONDetails.Where(x => x.PerEmployeedetailId == EmployeID && x.Archived == false).ToList(); foreach (var JSONitem in deleteJSON) { EmployeePerformanceCoreJSONDetail coreJSON = deleteJSON.Where(x => x.Id == JSONitem.Id).FirstOrDefault(); _db.EmployeePerformanceCoreJSONDetails.Remove(coreJSON); } foreach (var JSONitem in delateJobRole) { EmployeePerformanceJobRoleSegmentJSONDetail jobroleJSON = delateJobRole.Where(x => x.PerEmployeedetailId == EmployeID && x.Archived == false).FirstOrDefault(); } } 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); }