Esempio n. 1
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,End,MembershipFeeFoeignKey,Start,Type")] PrivilegeModel privilegeModel)
        {
            if (id != privilegeModel.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(privilegeModel);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PrivilegeModelExists(privilegeModel.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("Index"));
            }
            ViewData["MembershipFeeFoeignKey"] = new SelectList(_context.MembershipFees, "Id", "Id", privilegeModel.MembershipFeeFoeignKey);
            return(View(privilegeModel));
        }
Esempio n. 2
0
        public ActionResult CreateOrEditPrivilege()
        {
            PrivilegeResponse _response = new PrivilegeResponse();

            if (Request.QueryString["id"] != null)
            {
                var request = new PrivilegeRequest
                {
                    Data = new PrivilegeModel
                    {
                        Id = long.Parse(Request.QueryString["id"].ToString())
                    }
                };

                PrivilegeResponse resp   = new PrivilegeHandler(_unitOfWork).GetDetail(request);
                PrivilegeModel    _model = resp.Entity;
                ViewBag.Response   = _response;
                ViewBag.Menu       = BindDropDownMenu();
                ViewBag.ActionType = ClinicEnums.Action.Edit;
                return(View(_model));
            }
            else
            {
                ViewBag.Response   = _response;
                ViewBag.Menu       = BindDropDownMenu();
                ViewBag.ActionType = ClinicEnums.Action.Add;
                return(View());
            }
        }
Esempio n. 3
0
 public void VisitPrivilege(PrivilegeModel item)
 {
     if (this._filter(item))
     {
         _items.Add(item);
     }
 }
Esempio n. 4
0
        public IActionResult Index(PrivilegeModel model, bool isAutoComplete = false)
        {
            if (IsRequestJson)
            {
                if (!isAutoComplete)
                {
                    FilterContainer <Privilege> filter = FilterContainerBuilder.Build <Privilege>();
                    filter.And(n => n.OrganizationId == CurrentUser.OrganizationId);
                    if (model.IsEnable.HasValue)
                    {
                        filter.And(n => n.AuthorizationEnabled == model.IsEnable.Value);
                    }
                    if (model.IsShowAsMenu.HasValue)
                    {
                        filter.And(n => n.IsVisibled == model.IsShowAsMenu.Value);
                    }
                    var result = _privilegeTreeBuilder.Build(x => x
                                                             .Where(filter)
                                                             .Sort(s => s.SortAscending(ss => ss.DisplayOrder))
                                                             );
                    return(JOk(result));
                }
                else
                {
                    FilterContainer <Privilege> filter = FilterContainerBuilder.Build <Privilege>();
                    filter.And(n => n.OrganizationId == CurrentUser.OrganizationId);
                    if (model.MethodName.IsNotEmpty())
                    {
                        filter.And(n => n.MethodName.Like(model.MethodName));
                    }
                    if (model.DisplayName.IsNotEmpty())
                    {
                        filter.And(n => n.DisplayName.Like(model.DisplayName));
                    }
                    if (model.GetAll)
                    {
                        var result = _privilegeService.Query(x => x
                                                             .Where(filter)
                                                             .Sort(n => n.OnFile(model.SortBy).ByDirection(model.SortDirection))
                                                             );
                        model.Items      = result;
                        model.TotalItems = result.Count;
                    }
                    else
                    {
                        PagedList <Privilege> result = _privilegeService.QueryPaged(x => x
                                                                                    .Page(model.Page, model.PageSize)
                                                                                    .Where(filter)
                                                                                    .Sort(n => n.OnFile(model.SortBy).ByDirection(model.SortDirection))
                                                                                    );

                        model.Items      = result.Items;
                        model.TotalItems = result.TotalItems;
                    }
                    return(JOk(model));
                }
            }
            return(View("~/Views/Security/Privileges.cshtml"));
        }
Esempio n. 5
0
        public IActionResult SelectActionsDialog(PrivilegeModel model, DialogModel dm)
        {
            ViewData["DialogModel"] = dm;
            var result = AssemblyService.GetAllActionByAssembly();

            if (model.ClassName.IsNotEmpty())
            {
                result = result.Where(n => n.ClassName.IndexOf(model.ClassName, StringComparison.OrdinalIgnoreCase) >= 0).ToList();
            }
            model.Items      = result.Skip((model.Page - 1) * model.PageSize).Take(model.PageSize).ToList();
            model.TotalItems = result.Count;
            return(View(model));
        }
Esempio n. 6
0
        public JsonResult index()
        {
            string mrId  = Request.Params["mrId"];
            string depth = Request.Params["depth"];

            switch (depth)
            {
            case "1":     //模块
                return(Json(new { success = true, data = PrivilegeModel.getListByModule(mrId) }, JsonRequestBehavior.AllowGet));

            case "2":     //功能
                return(Json(new { success = true, data = PrivilegeModel.getListByResource(mrId) }, JsonRequestBehavior.AllowGet));

            default:
                return(Json(new { success = true, data = PrivilegeModel.getList() }, JsonRequestBehavior.AllowGet));
            }
        }
        private GrantModel CreateGrant(IToken token, string key, string objectSchema, string objectName, HashSet <string> privileges, string role, string columnObjectName, bool withHierarchy, bool withGrant, bool withDelegate, bool withAdmin, bool withDirectory, bool withUser, bool withEdition, bool withMiningModel, bool withJavaSource, bool JavaResource, bool withSqlTranslationProfile)
        {
            GrantModel grant;

            grant = new GrantModel()
            {
                Key  = key,
                Role = role,

                ObjectSchema     = objectSchema,
                ObjectName       = objectName,
                ColumnObjectName = columnObjectName,

                Grantable = withGrant,
                Hierarchy = withHierarchy,
            };

            var fileElement = AppendFile(grant, token);

            Append(grant);

            foreach (var privilege in privileges)
            {
                PrivilegeModel _privilege;
                if (!grant.Privileges.TryGet(privilege, out _privilege))
                {
                    _privilege = new PrivilegeModel()
                    {
                        Name = privilege
                    };

                    AppendFile(_privilege, token);
                    grant.Privileges.Add(_privilege);
                }
                else
                {
                    var    o       = privilege + " " + grant.Key;
                    string message = $"Duplicated grant privilege '{privilege}' on object {objectSchema}.{objectName} TO {role}";
                    GetEventParser(message, o, KindModelEnum.UserObjectPrivilege, fileElement, _privilege.Files.FirstOrDefault());
                }
            }

            return(grant);
        }
Esempio n. 8
0
        public ActionResult CreateOrEditPrivilege(PrivilegeModel _model)
        {
            if (Session["UserLogon"] != null)
            {
                _model.Account = (AccountModel)Session["UserLogon"];
            }

            var request = new PrivilegeRequest
            {
                Data = _model
            };

            PrivilegeResponse _response = new PrivilegeResponse();

            new PrivilegeValidator(_unitOfWork).Validate(request, out _response);
            ViewBag.Response   = $"{_response.Status};{_response.Message}";
            ViewBag.Menu       = BindDropDownMenu();
            ViewBag.ActionType = request.Data.Id > 0 ? ClinicEnums.Action.Edit : ClinicEnums.Action.Add;

            return(View());
        }
Esempio n. 9
0
        public ResultObj <List <PrivilegeModel> > GetData(string privilegeName = "", string principleType = "", string clientName = "", int pageIndex = 1, int pageSize = 10)
        {
            // IProduct service = new ProductService();
            //List<ProductModel> products = service.GetAllProducts();

            PrivilegeModel privilegeInfo = new PrivilegeModel();

            privilegeInfo.PrivilegeName = privilegeName;
            privilegeInfo.PrincipleType = principleType;
            privilegeInfo.ClientName    = clientName;
            privilegeInfo.PageIndex     = pageIndex;
            privilegeInfo.PageSize      = pageSize;
            var users      = _IBase.GetAll(privilegeInfo);
            int totalcount = _IBase.GetCount(privilegeInfo);

            var pagination = new Pagination {
                PageSize = pageSize, PageIndex = pageIndex, StartIndex = 0, TotalRows = totalcount, TotalPage = 0
            };

            return(Content(users, pagination));
        }
Esempio n. 10
0
 public ResultObj <int> PutData([FromBody] PrivilegeModel privilegeInfo)
 {
     return(Content(_IBase.UpdateData(privilegeInfo)));
 }
Esempio n. 11
0
 public JsonResult moduleResourceTree2()
 {
     return(Json(new { text = "ALL", children = PrivilegeModel.getModuleResourceTreeData2() }, JsonRequestBehavior.AllowGet));
 }
Esempio n. 12
0
 public JsonResult rolePrivilege()
 {
     return(Json(PrivilegeModel.rolePrivilege(Request.Params["roleID"]), JsonRequestBehavior.AllowGet));
 }
Esempio n. 13
0
        public async Task <IActionResult> Create([Bind("Id,End,MembershipFeeFoeignKey,Start,Type")] PrivilegeModel privilegeModel)
        {
            if (ModelState.IsValid && privilegeModel.Start > DateTime.Now && privilegeModel.End > privilegeModel.Start)
            {
                var privilige     = _context.Privileges.AsNoTracking().FirstOrDefault(p => p.Type == privilegeModel.Type);
                var membershipFee =
                    await
                    _context.MembershipFees.AsNoTracking()
                    .SingleOrDefaultAsync(f => f.Id == privilegeModel.MembershipFeeFoeignKey);

                bool privExist =
                    _context.PrivilegeModels.AsNoTracking().FirstOrDefault(
                        p => p.MembershipFeeFoeignKey == membershipFee.Id && p.Type == privilegeModel.Type) != null;

                if (!privExist)
                {
                    var transfers =
                        await
                        _context.TransferPayments.AsNoTracking()
                        .Where(t => t.MembershipFeeId == privilegeModel.MembershipFeeFoeignKey)
                        .ToListAsync();

                    var cashs =
                        await
                        _context.CashModel.AsNoTracking()
                        .Where(c => c.MembershipFeeId == privilegeModel.MembershipFeeFoeignKey)
                        .ToListAsync();

                    var d        = DateTime.Now.AddMonths(1);
                    var newDate  = new DateTime(d.Year, d.Month, 15);
                    var payments =
                        await
                        _context.Payments.AsNoTracking().Where(
                            p => p.MembershipFeeForeignKey == membershipFee.Id && p.PaymentDeadline >= newDate)
                        .OrderBy(p => p.PaymentDeadline)
                        .ToListAsync();

                    var fullDays     = (int)(membershipFee.End - membershipFee.Start).TotalDays;
                    var daysLeft     = fullDays - (DateTime.Now - membershipFee.Start).TotalDays;
                    var discountDays = (int)(privilegeModel.End - privilegeModel.Start).TotalDays;

                    double fullPriceWithDiscount =
                        Math.Floor(membershipFee.AmountWithDiscount -
                                   (membershipFee.AmountWithDiscount * privilige.Discount / 100));

                    double priceWithDiscount =
                        Math.Floor(((fullDays - discountDays) * (membershipFee.RealAmount / fullDays)) +
                                   (discountDays * fullPriceWithDiscount / fullDays));

                    membershipFee.AmountWithDiscount =
                        Math.Floor((DateTime.Now - membershipFee.Start).TotalDays * membershipFee.RealAmount / fullDays) +
                        Math.Floor(((daysLeft - discountDays) * (membershipFee.RealAmount / fullDays)) +
                                   Math.Floor(discountDays * fullPriceWithDiscount / fullDays));

                    //membershipFee.MonthlyPay = Math.Floor(membershipFee.AmountWithDiscount / 12);
                    membershipFee.LeftOver = membershipFee.AmountWithDiscount;
                    double totalPayed = 0;
                    foreach (var t in transfers)
                    {
                        membershipFee.LeftOver -= t.Amount;
                        totalPayed             += t.Amount;
                    }

                    foreach (var c in cashs)
                    {
                        membershipFee.LeftOver -= c.Amount;
                        totalPayed             += c.Amount;
                    }

                    double leftToPay = membershipFee.LeftOver - totalPayed;
                    membershipFee.MonthlyPay = Math.Floor(leftToPay / payments.Count);
                    foreach (var pendingPaymentModel in payments)
                    {
                        pendingPaymentModel.Amount        = membershipFee.MonthlyPay;
                        pendingPaymentModel.DepositOrDebt = -membershipFee.MonthlyPay;
                        _context.Update(pendingPaymentModel);
                    }
                    _context.Update(membershipFee);

                    _context.Add(privilegeModel);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction("Index", "MembershipFees"));
                }
            }
            var privileges = _context.Privileges.AsNoTracking().ToList();

            ViewBag.PrivilegeType = new SelectList(privileges, "Type", "Type");
            return(View(privilegeModel));
        }
Esempio n. 14
0
        public override List <GrantQueryTable_11> Resolve(DbContextOracle context, Action <GrantQueryTable_11> action)
        {
            GrantModel grant;

            this.OracleContext = context;
            List <GrantQueryTable_11> List = new List <GrantQueryTable_11>();
            var             db             = context.Database;
            GrantCollection grants         = null;

            if (db != null)
            {
                grants = db.Grants;
            }

            HashSet <string> _grants = new HashSet <string>();

            if (action == null)
            {
                action =
                    t =>
                {
                    if (!t.Table_name.ExcludIfStartwith(t.Owner, ExcludeKindEnum.Table))
                    {
                        string key = t.Owner + "." + t.Table_name
                                     + (!string.IsNullOrEmpty(t.Column_name)
                                       ? ("." + t.Column_name)
                                       : string.Empty) +
                                     "_to_" + t.Role
                        ;

                        if (_grants.Add(key))
                        {
                            string FullObjectName = !string.IsNullOrEmpty(t.Column_name) ? @"""" + t.Column_name + @"""" : string.Empty;

                            if (!string.IsNullOrEmpty(t.Table_name))
                            {
                                if (!string.IsNullOrEmpty(FullObjectName))
                                {
                                    FullObjectName = "." + FullObjectName;
                                }
                                FullObjectName = @"""" + t.Table_name + @"""" + FullObjectName;
                            }

                            if (!string.IsNullOrEmpty(t.Owner))
                            {
                                if (!string.IsNullOrEmpty(FullObjectName))
                                {
                                    FullObjectName = "." + FullObjectName;
                                }
                                FullObjectName = @"""" + t.Owner + @"""" + FullObjectName;
                            }

                            grant = new GrantModel()
                            {
                                Key              = key,
                                Role             = t.Role,
                                ObjectSchema     = t.Owner,
                                ObjectName       = t.Table_name,
                                ColumnObjectName = t.Column_name ?? string.Empty,
                                Grantable        = t.Grantable,
                                Hierarchy        = t.Hierarchy
                            };

                            grants.Add(grant);
                        }
                        else
                        {
                            grant           = grants[key];
                            grant.Grantable = t.Grantable;
                            grant.Hierarchy = t.Hierarchy;
                        }

                        var p = new PrivilegeModel()
                        {
                            Name = t.Privilege
                        };
                        // AddIfNotExist -> can be duplicated because same privilege can given by many grantor
                        grant.Privileges.AddIfNotExist(p);
                    }
                }
            }
            ;

            GrantQueryDescriptor_11 Grant = new GrantQueryDescriptor_11(context.Manager.ConnectionString);

            sql = string.Format(sql, TableQueryWhereCondition("t"), TableQueryWhereCondition("r"));

            using (var reader = context.Manager.ExecuteReader(CommandType.Text, sql, QueryBase.DbParams.ToArray()))
            {
                List = Grant.ReadAll(reader, action).ToList();
            }

            return(List);
        }
    }
Esempio n. 15
0
 public void VisitPrivilege(PrivilegeModel item)
 {
 }
        public async Task <IActionResult> Create([Bind("AmountWithDiscount,FirstName,LastName,MiddleName,RealAmount,Start,Periodicity,ActivePrivilegeEnd,ActivePrivilegeStart,PrivilegeType,LicenseNumber")] MembershipFee membershipFee)
        {
            //var rand = new Random();
            //var privileges = await _context.Privileges.ToListAsync();
            //for (int i = 1; i < 500; i++)
            //{
            //    var start = DateTime.Now.AddDays(rand.Next(1, 29)).AddMonths(rand.Next(1, 12));
            //    var fee = new MembershipFee()
            //    {
            //        Id = Guid.NewGuid().ToString(),
            //        RealAmount = i * 10000,
            //        AmountWithDiscount = i * 5000,
            //        CurrentState = rand.Next(2) == 1 ? FeeState.Active : FeeState.Pause,
            //        FirstName = "Firstname" + i,
            //        LastName = "LastName" + i,
            //        MiddleName = "MiddleName" + i,
            //        Start = start,
            //        End = start.AddMonths(12),
            //        LeftOver = i * 10000,
            //        MonthlyPay = i * 10000 / 12,
            //        Periodicity = FeePeriodicity.Year,
            //        PrivilegeType = rand.Next(0, 2) == 1 ? privileges[1].Type : privileges[0].Type,
            //        ActivePrivilegeStart = start,
            //        ActivePrivilegeEnd = start.AddMonths(12),
            //        ActivePrivilegeNo = rand.Next(),
            //    };
            //    _context.Add(fee);
            //}

            //for (int i = 0; i < 50; i++)
            //{
            //    var start = DateTime.Now.AddDays(rand.Next(1, 29)).AddMonths(rand.Next(1, 12));
            //    var payments = new TransferPayment()
            //    {
            //        Id = Guid.NewGuid().ToString(),
            //        Amount = i * 5100,
            //        Date = DateTime.Now.AddDays(i * 3),
            //        FullName = "FirstName" + i * 10 + " LastName" + i * 10,
            //        Destination = "chem manum",
            //        PaymentNo = (i * 1000).ToString(),
            //    };
            //    _context.Add(payments);
            //}


            //for (int i = 0; i < 100; i++)
            //{
            //    var cashes = new CashModel()
            //    {
            //        Id = Guid.NewGuid().ToString(),
            //        FullName = "FirstName" + i * 10 + " LastName" + i * 10,
            //        AccountingPass = (i * 123).ToString(),
            //        Amount = i * 4320,
            //        Date = DateTime.Now.AddDays(i * 2),
            //        Destination = "chem manum asi",
            //        OrdersNumber = (i * 10000 + i * 378).ToString(),
            //        Type = rand.Next(0, 2) == 1 ? BargainType.CashIn : BargainType.CashOut,
            //        //?ccount ="asfasfasfasfas"
            //    };
            //    _context.Add(cashes);
            //}

            //await _context.SaveChangesAsync();

            if (ModelState.IsValid)
            {
                membershipFee.AmountWithDiscount = membershipFee.RealAmount;
                membershipFee.LeftOver           = membershipFee.AmountWithDiscount;

                membershipFee.End = membershipFee.Periodicity == FeePeriodicity.Year
                    ? membershipFee.Start.AddMonths(12)
                    : membershipFee.Start.AddMonths(1);

                if (membershipFee.Periodicity != FeePeriodicity.Month)
                {
                    membershipFee.MonthlyPay = Math.Floor(membershipFee.RealAmount / 12);
                }

                if (!string.IsNullOrEmpty(membershipFee.PrivilegeType) && membershipFee.ActivePrivilegeStart != null &&
                    membershipFee.ActivePrivilegeEnd > membershipFee.ActivePrivilegeStart)
                {
                    var privilige = _context.Privileges.AsNoTracking().FirstOrDefault(p => p.Type == membershipFee.PrivilegeType);

                    var priviligeModel = new PrivilegeModel()
                    {
                        Start = membershipFee.ActivePrivilegeStart.Value,
                        End   = membershipFee.ActivePrivilegeEnd.Value,
                        Type  = membershipFee.PrivilegeType + $"({privilige.Discount})",
                        MembershipFeeFoeignKey = membershipFee.Id
                    };
                    _context.Add(priviligeModel);

                    var fullDays     = (int)(membershipFee.End - membershipFee.Start).TotalDays;
                    var discountDays = (int)(priviligeModel.End - priviligeModel.Start).TotalDays;

                    double priceWithDiscount =
                        Math.Floor(membershipFee.RealAmount - (membershipFee.RealAmount * privilige.Discount / 100));

                    membershipFee.AmountWithDiscount =
                        Math.Floor(((fullDays - discountDays) * (membershipFee.RealAmount / fullDays)) +
                                   (discountDays * priceWithDiscount / fullDays));

                    membershipFee.MonthlyPay = Math.Floor(membershipFee.AmountWithDiscount / 12);
                    membershipFee.LeftOver   = membershipFee.AmountWithDiscount;
                }

                _context.Add(membershipFee);
                await _context.SaveChangesAsync();

                SiteHelpers.AddPaymentsForFee(membershipFee.Id, _context);
                return(RedirectToAction("Index"));
            }

            return(View(membershipFee));
        }
Esempio n. 17
0
 /// <summary>
 /// Assign access to the role
 /// </summary>
 /// <param name="objData"></param>
 /// <returns></returns>
 public int PrivilegeInsertUpdate(PrivilegeModel objData, string formCollection)
 {
     return(objDAL.PrivilegeInsertUpdate(objData, formCollection));
 }