示例#1
0
        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();
            }
        }
示例#2
0
        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);
            }
        }