private static Response UpdateObject(Approval app)
        {
            var approval = ApprovalDL.RetrieveById(app.Id);

            var response = new Response();

            if (approval.Type.Equals(StatusUtil.GetDescription(StatusUtil.ApprovalType.CreateFunction)))
            {
                var obj = JsonConvert.DeserializeObject<Function>(approval.Obj);
                response = FunctionPL.Save(obj, string.Empty, true);
            }
            else if (approval.Type.Equals(StatusUtil.GetDescription(StatusUtil.ApprovalType.UpdateFunction)))
            {
                var obj = JsonConvert.DeserializeObject<Function>(approval.Obj);
                response = FunctionPL.Update(obj, string.Empty, true);
            }
            else if (approval.Type.Equals(StatusUtil.GetDescription(StatusUtil.ApprovalType.CreateRole)))
            {
                var obj = JsonConvert.DeserializeObject<Role>(approval.Obj);
                response = RolePL.Save(obj, string.Empty, true);
            }
            else if (approval.Type.Equals(StatusUtil.GetDescription(StatusUtil.ApprovalType.UpdateRole)))
            {
                var obj = JsonConvert.DeserializeObject<Role>(approval.Obj);
                response = RolePL.Update(obj, string.Empty, true);
            }
            else if (approval.Type.Equals(StatusUtil.GetDescription(StatusUtil.ApprovalType.CreateUser)))
            {
                var obj = JsonConvert.DeserializeObject<User>(approval.Obj);
                response = UserPL.Save(obj, string.Empty, true);
            }
            else if (approval.Type.Equals(StatusUtil.GetDescription(StatusUtil.ApprovalType.UpdateUser)))
            {
                var obj = JsonConvert.DeserializeObject<User>(approval.Obj);
                response = UserPL.Update(obj, string.Empty, true);
            }
            else if (approval.Type.Equals(StatusUtil.GetDescription(StatusUtil.ApprovalType.ResetCardPrintStatus)))
            {
                var obj = JsonConvert.DeserializeObject<Card>(approval.Obj);
                response = CardPL.Update(obj, string.Empty, true);
            }

            AuditTrail audit = new AuditTrail();
            audit.Type = approval.Type;
            audit.Details = approval.Details;
            audit.RequestedBy = approval.RequestedBy;
            audit.RequestedOn = approval.RequestedOn;
            audit.ApprovedBy = approval.ApprovedBy;
            audit.ApprovedOn = System.DateTime.Now;
            AuditTrailDL.Save(audit);

            return response;
        }
        public static Response Update(Approval approval)
        {
            try
            {
                if (ApprovalDL.Update(approval))
                {
                    if (approval.Status == StatusUtil.ApprovalStatus.Approved.ToString())
                    {
                        var operation = new Response();

                        operation = UpdateObject(approval);

                        return operation;
                    }
                    else
                    {
                        return new Response
                        {
                            SuccessMsg = "Request declined successfully",
                            ErrorMsg = string.Empty
                        };
                    }
                }
                else
                {
                    return new Response
                    {
                        SuccessMsg = string.Empty,
                        ErrorMsg = "Operation failed"
                    };
                }
            }
            catch (Exception ex)
            {
                ErrorHandler.WriteError(ex);
                return new Response
                {
                    SuccessMsg = string.Empty,
                    ErrorMsg = ex.Message
                };
            }
        }