示例#1
0
        public async Task <ApiResponse> PostUser([FromBody] ApiRequest model)
        {
            var obj    = JsonConvert.DeserializeObject <DeUser>(model.Payload.ToString());
            var result = BlUser.Save(obj);

            return(result);
        }
示例#2
0
        public GridResults LoadPaging(long userId, string search, int pageIndex, out long totalRecords, string sortColumnName = "", string sortOrderBy = "")
        {
            //Get current user
            var user = BlUser.LoadSingle(userId);

            //Query paged data
            var results = LoadPaging(userId, CreateFilter(search), user.PageSize, pageIndex - 1, out totalRecords);

            //Convert results into display model
            var res = (from r in results
                       select new
            {
                r.Id,
                Gender = r.Entity.Gender == null ? "" : BlCode.GetCodeByLanguage(user, BlCode.LoadSingle(userId, "Gender", r.Entity.Gender)),
                Name = BlEntity.FormatFullName(r.Entity),
                Number = r.Entity.IdType == "M" ? r.Entity.IdNum : "",
                r.Entity.FullEnLongName,
                Level = r.Level == null ? "" : BlCode.GetCodeByLanguage(user, BlCode.LoadSingle(userId, "EmployeeLevel", r.Level)),
                Status = r.Status == "A" ? "check colorGreen" : "close colorRed"
            }).ToList();


            //Convert display model into json data
            return(GridVm.FormatResult(res, user.PageSize, pageIndex, totalRecords));
        }
示例#3
0
        public ApiResponse RecoverPassword([FromBody] ApiRequest model)
        {
            var user   = JsonConvert.DeserializeObject <DeUser>(model.Payload.ToString());
            var result = BlUser.RecoverPassword(user.UserCode, user.Password);

            return(result);
        }
示例#4
0
        public EmployeeVm Init(long userId, long?id)
        {
            var user = BlUser.LoadSingle(userId);

            var toRet = new EmployeeVm
            {
                Branches   = BlBranch.GetLov(userId, true).ToDictionary(i => i.value, i => i.label),
                Titles     = BlCode.LoadTable(userId, "Title"),
                Genders    = BlCode.LoadTable(userId, "Gender"),
                IdTypes    = BlCode.LoadTable(userId, "IdType"),
                Maritals   = BlCode.LoadTable(userId, "Marital"),
                Statuses   = BlCode.LoadTable(userId, "Status"),
                Levels     = BlCode.LoadTable(userId, "EmployeeLevel"),
                ActionMode = Enumerations.ActionMode.Add,
                Employee   = new Employee {
                    Status = "A", Entity = new Entity {
                        BranchId = user.BranchId, Nationality = 422, Status = "A"
                    }, Level = "0"
                }
            };

            if (id != null)
            {
                var obj = LoadSingle(userId, Convert.ToInt64(id));
                toRet.Employee   = obj;
                toRet.ActionMode = Enumerations.ActionMode.Edit;
                toRet.Signature  = BlCommon.GetSignature(toRet.Employee.UserId, toRet.Employee.EntryDate);
            }

            return(toRet);
        }
示例#5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            //////to del########################@@@@@@@@########%%%%%%%%%>>>>>>>>>>>>
            /*Session["user"] = new BlShopManager("12345678");*/   // BLShopMenager
            /*  Session["user"] = new Deliver("shlakot1"); */      //deliver eden
            /* Session["user"] = new Deliver("gigi1234"); */       //deliver 2 yakov

            Session["user"] = new BlOrderUser("hoohoo12");         //customer amit
            /*   Session["user"] = new BlOrderUser("lucky123"); */ //system Manager sagi
            if (Page.IsPostBack)
            {
                return;                 //if page already do page loud the headers is already changed
            }
            //set all headers Visible to false
            shopManager.Visible   = false;
            systemManager.Visible = false;
            delivery.Visible      = false;
            customer.Visible      = false;
            unconnected.Visible   = false;
            BlUser user = (BlUser)Session["user"];

            //to check if user verify email!!!!!!!!!!!!!!!!!!!!!!!!!!
            try
            {
                if (GlobalVariable.UnVerifyEmail != null && user != null)
                {
                    string verifyCode = GlobalVariable.UnVerifyEmail[user.UserId];
                    Response.Redirect("VerifyEmail.aspx");
                }
            }
            catch
            {
            }
            if (user != null)
            {
                int type = user.Type;
                switch (type)//choose the right header
                {
                case 1:
                    shopManager.Visible = true;
                    break;

                case 2:
                    systemManager.Visible = true;
                    break;

                case 3:
                    delivery.Visible = true;
                    break;

                default:
                    customer.Visible = true;
                    break;
                }
            }
            else//hide unconnected headers if there is a connected user
            {
                unconnected.Visible = true;
            }
        }
示例#6
0
        public GridResults LoadPaging(long userId, string search, int pageIndex, out long totalRecords, string sortColumnName = "", string sortOrderBy = "")
        {
            //Get current user
            var user = BlUser.LoadSingle(userId);

            //Query paged data
            var results = LoadPaging(userId, CreateFilter(search), user.PageSize, pageIndex - 1, out totalRecords);

            //Convert results into display model
            var i   = 0;
            var res = (from r in results
                       select new
            {
                Id = i++,
                r.TableName,
                r.CodeName,
                r.Value1,
                Value2 = r.Value2 ?? "",
                Value3 = r.Value3 ?? "",
                Order = r.DisplayOrder ?? "",
                Status = r.Status ? "check colorGreen" : "close colorRed",
                Protected = r.IsProtected ? "lock colorRed" : "unlock-alt colorGreen"
            }).ToList();


            //Convert display model into json data
            return(GridVm.FormatResult(res, user.PageSize, pageIndex, totalRecords));
        }
        public ActionResult UpdateUser(BlUser ObjBlUser)
        {
            ObjBlUser.UserCode   = Convert.ToInt64(Session["ID_Agent"]);
            ObjBlUser.FK_Company = Convert.ToInt64(Session["ID_Company"]);

            BlFunction blfunctions   = new BlFunction();
            string     AgentPassword = "";

            AgentPassword        = blfunctions.EncryptAgent(Convert.ToString(ObjBlUser.UsPassword.Trim()));
            ObjBlUser.UsPassword = AgentPassword;
            blfunctions          = null;

            long statusCode = 0;

            if (ObjBlUser.MasterID == 0)
            {
                statusCode = ObjBlUser.InsertData();
            }
            else
            {
                statusCode = ObjBlUser.UpdateData();
            }

            ObjBlUser = null;
            return(Json(new { statusCode = "" + statusCode + "" }, JsonRequestBehavior.AllowGet));
        }
示例#8
0
        public GridResults LoadPaging(long userId, string search, int pageIndex, out long totalRecords, string sortColumnName = "", string sortOrderBy = "")
        {
            //Get current user
            var user = BlUser.LoadSingle(userId);

            //Query paged data
            var results = LoadPaging(userId, CreateFilter(search), user.PageSize, pageIndex - 1, out totalRecords);

            //Convert results into display model
            var res = (from r in results
                       select new
            {
                r.Id,
                ModuleId = r.Module.Id,
                r.Action,
                Text = r.Text ?? "",
                User = r.UserId == 0 ? "" : BlUser.LoadSingle(r.UserId).UserName,
                branch = BlBranch.GetBranchName(user.Id, r.BranchId),
                LogDate = r.EntryDate.ToString(true)
            }).ToList();


            //Convert display model into json data
            return(GridVm.FormatResult(res, user.PageSize, pageIndex, totalRecords));
        }
        public JsonResult SelectUserAll(string PageIndex = "1", string SearchItem = "")
        {
            try
            {
                int       statusCode = 1;
                DataTable dtbl       = new DataTable();
                BlUser    blUser     = new BlUser();
                blUser.UserCode   = Convert.ToInt64(Session["ID_Agent"]);
                blUser.FK_Company = Convert.ToInt64(Session["ID_Company"]);

                blUser.UsCode  = SearchItem;
                blUser.UsName  = SearchItem;
                blUser.Usemail = SearchItem;

                blUser.PageIndex = Convert.ToInt32(PageIndex);
                dtbl             = blUser.SelectAllData();

                return(Json(Converttojson(dtbl), JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                ///
                return(Json(ex));
            }
        }
示例#10
0
        public async Task <ApiResponse> ForgotPassword([FromBody] ApiRequest model)
        {
            var email = model.Payload.ToString();

            var result = BlUser.ForgotPassword(email);

            return(result);
        }
示例#11
0
        protected void Page_Load(object sender, EventArgs e)
        {
            BlUser      user      = (BlUser)Session["user"];
            BlOrderUser orderUser = null;

            try
            {
                orderUser = (BlOrderUser)Session["user"];
            }
            catch
            {
                Response.Redirect("HomePage.aspx");
                return;
            }

            //take care of all the options of user BlOrderUser/BlShopManager/null
            if (user is BlOrderUser User)
            {
                orderUser = User;
            }
            if (user is BlShopManager shopManager)
            {
                orderUser = shopManager;
            }

            if (user.Type == 2)//system manager
            {
                DataTable shopsTable = BLshopDB.ShopAndManagerTable();
                if (shopsTable != null && shopsTable.Rows.Count > 0)
                {
                    ShopTable.Visible    = true;
                    ShopTable.DataSource = shopsTable;
                    ShopTable.DataBind();
                }
                else
                {
                    ErShopTable.Text = "There is no shops"; //msg
                }
            }
            if (orderUser == null)
            {
                Response.Redirect("HomePage.aspx");
                return;
            }
            if (Page.IsPostBack)
            {
                return;
            }
            //get data
            DataTable customers  = orderUser.CustomersTable();
            DataTable deliveries = orderUser.DeliveriesTable();

            ErDelivery.Text = !BindTable(deliveries, DeliveriesTable) ? "fail show deliveries table" : ""; //error massage
            ErCustomer.Text = !BindTable(customers, CustomersTable) ? "fail show customers table" : "";    //error massage
            //set the labels information
            NumOfOrders.Text    = "Number of orders- " + orderUser.GetNumOfOrders();
            NumOfCustomers.Text = "Number of customers- " + customers.Rows.Count;
        }
示例#12
0
        public static DdlVm.DdlOption LoadQs(long userId, long id, string parameters)
        {
            var user       = BlUser.LoadSingle(userId);
            var serializer = new JavaScriptSerializer();
            var dict       = serializer.Deserialize <Dictionary <string, object> >(parameters);
            var returnPin  = CheckEmpty.Boolean(ref dict, "returnPin");
            var item       = returnPin ? LoadByPin(userId, id) : LoadSingle(userId, id);

            return(FormatForQs(user.LanguageId, item, returnPin));
        }
        public JsonResult PostreplayCount()
        {
            DataTable dtbl   = new DataTable();
            BlUser    blUser = new BlUser();

            blUser.UserCode   = Convert.ToInt64(Session["ID_Users"]);
            blUser.FK_Company = Convert.ToInt64(Session["ID_Company"]);
            blUser.MasterID   = Convert.ToInt64(Session["ID_Users"]);
            dtbl = blUser.SelectReplayCount();
            return(Json(Converttojson(dtbl), JsonRequestBehavior.AllowGet));
        }
示例#14
0
        protected void deliverSearchB_OnClick(object sender, EventArgs e)
        {
            BlUser user = (BlUser)Session["user"];
            //get input values
            string searchBys = DeliverSearchBy.Items[DeliverSearchBy.SelectedIndex].Value;
            string value     = DeliverSearchVal.Text;
            //get data
            DataTable customers = user.DeliversSearch($"(Users.{searchBys}='{value}')");
            bool      isExist   = BindTable(customers, DeliveriesTable);

            DeliverMSG.Text = !isExist ? "Not valid search value" : "";//error massage
        }
示例#15
0
        private static DdlVm.DdlOption FormatForQs(long userId, Code item)
        {
            var user = BlUser.LoadSingle(userId);

            var toRet = new DdlVm.DdlOption
            {
                value = item.CodeName,
                label = user.LanguageId == 1 ? item.Value1 : item.Value2
            };

            return(toRet);
        }
示例#16
0
        protected void SearchCustomerB_Click(object sender, EventArgs e)
        {
            BlUser user = (BlUser)Session["user"];
            //get input values
            string searchBys = SearchBy.Items[SearchBy.SelectedIndex].Value;
            string value     = serchedValue.Text;
            //get data
            DataTable customers = user.CustomersSearch($"(Users.{searchBys}='{value}')");
            bool      isExist   = BindTable(customers, CustomersTable);

            ErCustomer.Text = !isExist ? "Not valid search value" : "";//error massage
        }
示例#17
0
        private static IEnumerable <TreeItemVm> ConstructTreeNode(long userId, IEnumerable <Help> helps, bool allowView, bool allowAdd, bool allowEdit, bool allowDelete)
        {
            var user  = BlUser.LoadSingle(userId);
            var toRet = new List <TreeItemVm>();

            foreach (var help in helps)
            {
                TreeItemVm treeNode;
                var        actions = "</span>";
                actions += "<span id='actions_" + help.Id + "' style='display:none'>&nbsp;";
                actions += "<a class='treeAction' onclick='javascript:ViewAction(" + help.Id + ");'><span>" + BlDescription.GetDescription(Enumerations.DescriptionResources.Language, "lblView", user.LanguageId) + "</span></a>&nbsp;";

                if (allowAdd)
                {
                    actions += "<a class='treeAction' onclick='javascript:AddAction(" + help.Id + ");'><span>" + BlDescription.GetDescription(Enumerations.DescriptionResources.Language, "lblAdd", user.LanguageId) + "</span></a>&nbsp;";
                }
                if (allowEdit)
                {
                    actions += "<a class='treeAction' onclick='javascript:EditAction(" + help.Id + ");'><span>" + BlDescription.GetDescription(Enumerations.DescriptionResources.Language, "lblEdit", user.LanguageId) + "</span></a>&nbsp;";
                }
                if (allowDelete)
                {
                    actions += "<a class='treeAction' onclick='javascript:DeleteAction(" + help.Id + ");'><span>" + BlDescription.GetDescription(Enumerations.DescriptionResources.Language, "lblDelete", user.LanguageId) + "</span></a>&nbsp;";
                }
                actions += "<span>";

                if (help.Id == 0)
                {
                    treeNode = new TreeItemVm
                    {
                        id      = "0",
                        parent  = "#",
                        text    = "<span onclick='ShowDetails(0);'>Root" + actions + "</span>",
                        icon    = "fa fa-briefcase fa-lg colorMain",
                        state   = "{\"opened\": \"true\"}",
                        li_attr = "{\"class\" : \"form-control-label\"}"
                    };
                }
                else
                {
                    treeNode = new TreeItemVm
                    {
                        id      = help.Id.ToUiString(),
                        parent  = help.ParentId == null ? "0" : help.ParentId.ToString(),
                        text    = "<span onclick='ShowDetails(" + help.Id + ");'>" + (help.Title == "" ? Path.GetFileNameWithoutExtension(help.Page) : help.Title) + actions + "</span>",
                        icon    = "fa fa-info fa-lg colorMain",
                        li_attr = "{\"class\" : \"form-control-label\"}"
                    };
                }
                toRet.Add(treeNode);
            }
            return(toRet);
        }
示例#18
0
        protected void Page_Load(object sender, EventArgs e)
        {
            this.UnobtrusiveValidationMode = System.Web.UI.UnobtrusiveValidationMode.None;
            if (!Page.IsPostBack)
            {
                //Session["user"]=new BLUser("12345678");
                BlUser user = (BlUser)Session["user"];
                if (user != null)
                {
                    int type = user.Type;
                    if (type == 1)//massage to shop manager
                    {
                        instractor.InnerHtml = "Type shop address or click on the map to add address";
                    }

                    int RegType = 0;
                    try
                    {
                        RegType = int.Parse(Request.QueryString.Get("Type"));
                    }
                    catch
                    {
                        Response.Redirect("HomePage.aspx");
                    }

                    switch (RegType)//change header text
                    {
                    case 3:
                        PageHeader.InnerHtml = "Add delivery";
                        break;

                    case 1:
                        PageHeader.InnerHtml = "Add shop manager";
                        break;

                    case 4:
                        PageHeader.InnerHtml = "Register";
                        break;

                    default:
                        Response.Redirect("HomePage.aspx");
                        break;
                    }
                }
                //else
                //{
                //    //security
                //}
            }
            //pass.Text = "00000000";
            Validate();
        }
示例#19
0
        public Log Create(long userId, Log toAdd)
        {
            using (var tran = new TransactionScope())
            {
                toAdd.UserId    = userId;
                toAdd.BranchId  = BlUser.LoadSingle(toAdd.UserId).BranchId;
                toAdd.EntryDate = BlCommon.GetServerDateTime();
                var toRet = _repository.Create(toAdd);

                tran.Complete();
                return(toRet);
            }
        }
示例#20
0
        private static void PreSave(long userId, ref Xtra toSave, Enumerations.ActionMode action)
        {
            var user = BlUser.LoadSingle(userId);

            if (action == Enumerations.ActionMode.Add)
            {
                //Check if previously exists
                if (LoadSingle(userId, toSave.Object, toSave.Id, toSave.Property) != null)
                {
                    throw new BusinessException("AlreadyExists1", BlDescription.GetDescription(Enumerations.DescriptionResources.Language, "lblProperty", user.LanguageId));
                }
            }
        }
示例#21
0
        public bool Register(string userId, int type, string email, string phoneNum, string firstName, string lastName, string password, double lat, double lng)
        {
            BlUser user = null;

            try
            {
                user = new BlUser(userId, type, email, phoneNum, firstName, lastName, password, lat, lng);//add new user to DB
                return(user.UserId != "-1");
            }
            catch
            {
                return(false);
            }
        }
示例#22
0
        public static string GetBranchName(long userId, long branchId)
        {
            var user   = BlUser.LoadSingle(userId);
            var branch = BlBranch.LoadSingle(user.Id, branchId);

            if (user.LanguageId == 1)
            {
                return(branch.Entity.FullEnShortName);
            }
            else
            {
                return(branch.Entity.FullArShortName);
            }
        }
示例#23
0
        public bool AddLocation(long userId, long employeeId, long locationId)
        {
            var user = BlUser.LoadSingle(userId);

            using (var tran = new TransactionScope())
            {
                var employee = LoadSingle(userId, employeeId);

                //Adjust the employee
                Edit(userId, employee);

                tran.Complete();
                return(true);
            }
        }
示例#24
0
        public HttpResponseMessage addUsers([FromBody] Users newUser)
        {
            try
            {
                return(Request.CreateResponse(HttpStatusCode.OK, BlUser.addUsers(newUser)));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex));
            }



            //}
        }
示例#25
0
        //public static List<BLProduct> shoppingCart {  set {  } }
        protected void Page_Load(object sender, EventArgs e)
        {
            BlUser user = (BlUser)Session["user"];

            if (user?.UserId == null)
            {
                return;
            }
            var type = user.Type;
            var des  = $"Ahoy! {user.ToString()}!";

            //const  int ShopManager = GlobalVariable.ShopManager;
            //if (type==GlobalVariable.ShopManager)
            //{

            //}
            switch (type)//display the right nave bar
            {
            case 1:
                //sh
                ShopMenager.Visible = true;
                UserString2.Text    = des;
                break;

            case 2:
                //system
                SystemMenager.Visible = true;
                UserString4.Text      = des;
                break;

            case 3:
                //delivery
                Delivery.Visible = true;
                UserString3.Text = des;
                break;

            case 4:
                //customer
                Customer.Visible = true;
                UserString.Text  = des;
                List <BLOrderDetailsDB> orderDetails = (List <BLOrderDetailsDB>)Session["orderDetails"];
                Update(orderDetails);
                OrderNow.Visible = orderDetails?.Count > 0;
                break;
            }
            UnConected.Visible = false;
        }
示例#26
0
        public static List <DdlVm.DdlOption> GetLov(long userId, string operation, bool required, string relCode = "")
        {
            if (operation.ToUpper() == "CODETABLES")
            {
                return(GetLovTables(userId, required).ToList());
            }

            if (operation.ToUpper() == "BRANCHES")
            {
                return(BlBranch.GetLov(userId, required).ToList());
            }

            var user      = BlUser.LoadSingle(userId);
            var fieldName = user.LanguageId == 1 ? "Value1" : "Value2";

            var blCode    = new BlCode();
            var predicate = PredicateBuilder.True <Code>();

            predicate = predicate.And(p => p.TableName == operation);

            if (relCode != "")
            {
                predicate = predicate.And(p => p.RelCode == relCode);
            }

            var result = blCode.LoadSearch(userId, predicate).ToList();

            if (!result.Any())
            {
                return(null);
            }

            var results = (from a in result.Where(m => m.Status)
                           orderby a.DisplayOrder ascending
                           select new DdlVm.DdlOption
            {
                value = a.CodeName,
                label = a.GetType().GetProperty(fieldName).GetValue(a, null).ToString()
            }).ToList();

            if (!required)
            {
                results.Insert(0, new DdlVm.DdlOption("...", ""));
            }

            return(results.ToList());
        }
示例#27
0
        public bool Delete(long userId, Comment toDelete)
        {
            using (var tran = new TransactionScope())
            {
                //Only note owner and full administrator can delete
                if (userId != toDelete.UserId && !BlUser.LoadSingle(userId).IsFullPermission)
                {
                    throw new BusinessException("NoteCannotBeDeletedUnlessByOwner");
                }

                var toRet = _repository.Delete(toDelete);

                BlLog.Log(userId, Module, "Delete comment", "CommentDleted", new object[] { toDelete.Text.ManageTextLength(100), toDelete.Reference });
                tran.Complete();
                return(toRet);
            }
        }
 public JsonResult DeleteUser(Int64 ID_User)
 {
     try
     {
         long   statusCode = 0;
         BlUser blUser     = new BlUser();
         blUser.UserCode   = Convert.ToInt64(Session["ID_Agent"]);
         blUser.FK_Company = Convert.ToInt64(Session["ID_Company"]);
         blUser.MasterID   = ID_User;
         statusCode        = blUser.DeleteData();
         return(Json(new { statusCode = "" + statusCode + "" }, JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         return(Json(ex));
     }
 }
示例#29
0
        public static List <DdlVm.DdlOption> LoadQs(long userId, string parameters, string searchTerm, int pageSize, int pageNum, out long count)
        {
            var user     = BlUser.LoadSingle(userId);
            var blObject = new BlEmployee();

            var serializer = new JavaScriptSerializer();
            var dict       = serializer.Deserialize <Dictionary <string, object> >(parameters);
            var isActive   = CheckEmpty.Boolean(ref dict, "isActive");
            var gender     = CheckEmpty.String(ref dict, "Gender");
            var returnPin  = CheckEmpty.Boolean(ref dict, "returnPin");
            var locationId = CheckEmpty.Numeric(ref dict, "locationId");

            var predicate = PredicateBuilder.True <Employee>();

            predicate = predicate.And(p => p.Id != 1); //Exclude employee presidential palace

            if (isActive)
            {
                predicate = predicate.And(c => c.Status == "A");
            }

            if (gender != "")
            {
                predicate = predicate.And(c => gender.Split(',').Contains(c.Entity.Gender));
            }

            if (CheckEmpty.String(searchTerm) != "")
            {
                var tokens = searchTerm.Tokens();
                foreach (var token in tokens)
                {
                    var predicate2 = PredicateBuilder.False <Employee>();
                    predicate2 = predicate2.Or(m => m.Entity.FirstName.Contains(token));
                    predicate2 = predicate2.Or(m => m.Entity.FatherName.Contains(token));
                    predicate2 = predicate2.Or(m => m.Entity.FamilyName.Contains(token));
                    predicate2 = predicate2.Or(m => m.Entity.ArFirstName.Contains(token));
                    predicate2 = predicate2.Or(m => m.Entity.ArFatherName.Contains(token));
                    predicate2 = predicate2.Or(m => m.Entity.ArFamilyName.Contains(token));
                    predicate  = predicate.And(predicate2);
                }
            }

            var items = blObject.LoadPaging(userId, predicate, pageSize, (pageNum - 1), out count);

            return(items.Select(i => FormatForQs(user.LanguageId, i, returnPin)).ToList());
        }
示例#30
0
        public bool Delete(long userId, Employee toDelete)
        {
            using (var tran = new TransactionScope())
            {
                //Check if employee has related user account
                if (BlUser.LoadByPin(userId, toDelete.Entity.Pin) != null)
                {
                    throw new BusinessException("CannotDeleteRelatedUser");
                }

                var toRet = _repository.Delete(toDelete);

                BlLog.Log(userId, Module, "Delete employee", "EmployeeDeleted", new object[] { toDelete.Entity.Pin, BlEntity.FormatFullName(toDelete.Entity) });
                tran.Complete();
                return(toRet);
            }
        }