public WorkFlow_Dtls GetWorkFlowDtlsById(string WorkFlow_ID) { StackFrame stackFrame = new StackFrame(); MethodBase methodBase = stackFrame.GetMethod(); try { OpenEntityConnection(); WorkFlow_Dtls WorkFlowForGetEntity = (from objLinq in objPharmaEntities.WorkFlow_Dtls where objLinq.WorkFlow_Id == WorkFlow_ID select objLinq).FirstOrDefault(); return(WorkFlowForGetEntity); } catch (Exception ex) { catchEntityvalidation((System.Data.Entity.Validation.DbEntityValidationException)ex, System.Runtime.InteropServices.Marshal.GetExceptionCode().ToString(), this.UserNameProperty.ToString(), this.GetType().Name.ToString(), methodBase.Name.ToString()); ex.InnerException.Message.ToString(); return(null); } finally { CloseEntityConnection(); } }
public bool UpdateWorkFlow(WorkFlow_Hdr ObjWorkFlow_HdrDL, List <WorkFlow_Dtls> ListWorkFlow_Dtls) { StackFrame stackFrame = new StackFrame(); MethodBase methodBase = stackFrame.GetMethod(); var strErrorMessage = string.Empty; // ObjWorkFlow_HdrDL.InsUser = "******"; // ObjCommTransHeaderDL.InsDate = DateTime.Now.ToString("dd/MM/yyyy"); bool result = true; using (System.Data.Entity.DbContextTransaction dbTran = objPharmaEntities.Database.BeginTransaction()) { try { if (objPharmaEntities.Database.Connection.State == System.Data.ConnectionState.Closed) { objPharmaEntities.Database.Connection.Open(); } WorkFlow_Hdr loclDtlsUpdate = (from objLinq in objPharmaEntities.WorkFlow_Hdr where objLinq.WorkFlow_Id == ObjWorkFlow_HdrDL.WorkFlow_Id select objLinq).FirstOrDefault(); if (loclDtlsUpdate != null) { loclDtlsUpdate.WorkFlow_Name = ObjWorkFlow_HdrDL.WorkFlow_Name; loclDtlsUpdate.WorkFlow_NameEn = ObjWorkFlow_HdrDL.WorkFlow_NameEn; loclDtlsUpdate.UpdateUser = ObjWorkFlow_HdrDL.UpdateUser; loclDtlsUpdate.UpdateDate = DateTime.Now; objPharmaEntities.SaveChanges(); } result = DeleteWorkFlow_Dtls(ObjWorkFlow_HdrDL.WorkFlow_Id); if (result) { foreach (WorkFlow_Dtls ObjWorkFlow_Dtls in ListWorkFlow_Dtls) { if (ObjWorkFlow_Dtls != null) { WorkFlow_Dtls loclWorkFlow_Dtls = new WorkFlow_Dtls { WorkFlow_Id = ObjWorkFlow_HdrDL.WorkFlow_Id, Job_Id = ObjWorkFlow_Dtls.Job_Id, WorkFlowOrder = ObjWorkFlow_Dtls.WorkFlowOrder }; objPharmaEntities.WorkFlow_Dtls.Add(loclWorkFlow_Dtls); //saves all above operations within one transaction objPharmaEntities.SaveChanges(); } } dbTran.Commit(); } //commit transaction } catch (DbEntityValidationException ex) { // Retrieve the error messages as a list of strings. var errorMessages = ex.EntityValidationErrors .SelectMany(x => x.ValidationErrors) .Select(x => x.ErrorMessage); // Join the list to a single string. var fullErrorMessage = string.Join("; ", errorMessages); // Combine the original exception message with the new one. var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage); strErrorMessage = fullErrorMessage; // Throw a new DbEntityValidationException with the improved exception message. throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors); //((System.Data.Entity.Validation.DbEntityValidationException)$exception).EntityValidationErrors.First().ValidationErrors.First().ErrorMessage dbTran.Rollback(); result = false; } catch (Exception ex) { //Rollback transaction if exception occurs dbTran.Rollback(); result = false; } finally { objPharmaEntities.Database.Connection.Close(); dbTran.Dispose(); if (!string.IsNullOrEmpty(strErrorMessage)) { SaveErrorLog(System.Runtime.InteropServices.Marshal.GetExceptionCode().ToString(), strErrorMessage, this.UserNameProperty.ToString(), this.GetType().Name.ToString(), methodBase.Name.ToString()); } } return(result); } }