public IActionResult Edit(CreatePartnerActivity2Dto model)
        {
            if (ModelState.IsValid)
            {
                var currentRoleId = _PartnerManager.GetCurrentUserRole(this.HttpContext);
                var permission    = _partActRepo.GetPartAct("PartnerActivity.Edit", currentRoleId);
                if (permission == null)
                {
                    toastNotification.AddErrorToastMessage("ليس لديك الصلاحية الكافية", new ToastrOptions
                    {
                        Title = ""
                    });
                    return(Redirect(Request.Headers["Referer"].ToString()));
                }

                var old = _partActRepo.GetPartAct(model.Id);
                if (old == null)
                {
                    return(View(model));
                }

                var pAct = new PartnerActivity();
                pAct.Id                  = model.Id;
                pAct.Activity.Id         = model.ActivityId;
                pAct.FromRole.Id         = model.FromRoleId ?? 0;
                pAct.MaxQueryRows        = model.MaxQueryRowsNo;
                pAct.MaxQueryDuration.Id = model.MaxQueryDurationId;
                pAct.Scope.Id            = model.ScopeId;
                pAct.OnlyPartnerChildren = model.OnlyPartnerChildren;
                pAct.LastEditOn          = DateTime.Now;
                var result = _partActRepo.Edit(pAct);
                if (result.Success)
                {
                    var audit = new DataAudit();
                    audit.Activity.Id    = "PartnerActivity.Edit";
                    audit.PartnerId      = _PartnerManager.GetCurrentUserId(this.HttpContext);
                    audit.PartnerAccount = _PartnerManager.GetCurrentUserAccount(this.HttpContext);
                    audit.Action.Id      = "Update";
                    audit.Success        = true;
                    audit.OldValue       = old.ToString();
                    audit.NewValue       = pAct.ToString();
                    _auditing.Create(audit);
                    return(RedirectToAction("Index"));
                }
                else
                {
                    model.Error = result.Error;
                }
            }
            var fromRoles        = new RoleRepo(db, _partActRepo).GetRoles();
            var activities       = new ActivityRepo(db, _PartnerManager).GetActivities();
            var maxQueryDuration = new CommonCodeRepo(db).GetCodesByType("queryduration");
            var scopes           = new CommonCodeRepo(db).GetCodesByType("activity.scope");

            model.FromRoles        = fromRoles;
            model.Activities       = activities;
            model.MaxQueryDuration = maxQueryDuration;
            model.Scopes           = scopes;
            return(View(model));
        }
        public IActionResult CreateRule()
        {
            var currentRoleId = _PartnerManager.GetCurrentUserRole(this.HttpContext);
            var permission    = _partActRepo.GetPartAct("PartnerActivity.Create", currentRoleId);

            if (permission == null)
            {
                toastNotification.AddErrorToastMessage("ليس لديك الصلاحية الكافية", new ToastrOptions
                {
                    Title = ""
                });
                return(Redirect(Request.Headers["Referer"].ToString()));
            }

            var model            = new CreatePartnerActivity2Dto();
            var detailModel      = new List <CreatePartnerActivityDetailDto>();
            var fromRoles        = new RoleRepo(db, _partActRepo).GetRoles();
            var toRoles          = new RoleRepo(db, _partActRepo).GetRoles();
            var activities       = new ActivityRepo(db, _PartnerManager).GetActivities();
            var maxQueryDuration = new CommonCodeRepo(db).GetCodesByType("queryduration");
            var scopes           = new CommonCodeRepo(db).GetCodesByType("activity.scope");

            model.FromRoles = fromRoles;
            //detailModel.ToRoles = toRoles;
            model.Activities       = activities;
            model.MaxQueryDuration = maxQueryDuration;
            model.Scopes           = scopes;
            model.Details          = detailModel;

            ViewBag.Details = new CreatePartnerActivityDetailDto
            {
                ToRoles = new RoleRepo(db, _partActRepo).GetRoles()
            };
            return(View(model));
        }
        public IActionResult Edit(int id)
        {
            var currentRoleId = _PartnerManager.GetCurrentUserRole(this.HttpContext);
            var permission    = _partActRepo.GetPartAct("PartnerActivity.Edit", currentRoleId);

            if (permission == null)
            {
                toastNotification.AddErrorToastMessage("ليس لديك الصلاحية الكافية", new ToastrOptions
                {
                    Title = ""
                });
                return(Redirect(Request.Headers["Referer"].ToString()));
            }
            var model  = new CreatePartnerActivity2Dto();
            var result = _partActRepo.GetPartAct(id);

            if (result != null)
            {
                model.Activity            = result.Activity;
                model.ActivityId          = result.Activity.Id;
                model.FromRole            = result.FromRole;
                model.FromRoleId          = result.FromRole.Id;
                model.MaxQueryDurationId  = result.MaxQueryDuration.Id;
                model.MaxQueryRowsNo      = result.MaxQueryRows;
                model.ScopeId             = result.Scope.Id;
                model.OnlyPartnerChildren = result.OnlyPartnerChildren;
            }
            var fromRoles        = new RoleRepo(db, _partActRepo).GetRoles();
            var activities       = new ActivityRepo(db, _PartnerManager).GetActivities();
            var maxQueryDuration = new CommonCodeRepo(db).GetCodesByType("queryduration");
            var scopes           = new CommonCodeRepo(db).GetCodesByType("activity.scope");

            model.FromRoles        = fromRoles;
            model.Activities       = activities;
            model.MaxQueryDuration = maxQueryDuration;
            model.Scopes           = scopes;
            return(View(model));
        }
        public IActionResult CreateRule(CreatePartnerActivity2Dto model)
        {
            if (ModelState.IsValid)
            {
                var currentRoleId = _PartnerManager.GetCurrentUserRole(this.HttpContext);
                var permission    = _partActRepo.GetPartAct("PartnerActivity.Create", currentRoleId);
                if (permission == null)
                {
                    toastNotification.AddErrorToastMessage("ليس لديك الصلاحية الكافية", new ToastrOptions
                    {
                        Title = ""
                    });
                    return(Redirect(Request.Headers["Referer"].ToString()));
                }

                var pAct = new PartnerActivity();
                pAct.Activity.Id         = model.ActivityId;
                pAct.FromRole.Id         = model.FromRoleId ?? 0;
                pAct.MaxQueryRows        = model.MaxQueryRowsNo;
                pAct.MaxQueryDuration.Id = model.MaxQueryDurationId;
                pAct.Scope.Id            = model.ScopeId;
                pAct.OnlyPartnerChildren = model.OnlyPartnerChildren;
                pAct.CreatedBy.Id        = _PartnerManager.GetCurrentUserId(this.HttpContext);
                pAct.CreatedBy.Account   = _PartnerManager.GetCurrentUserAccount(this.HttpContext);

                var result = _partActRepo.Create(pAct);
                if (result.Success)
                {
                    var listModel = new ListPartnerActivityDto();
                    listModel.Activities = new SelectList(new ActivityRepo(db, _PartnerManager).GetActivities(), "Id", "Name");
                    listModel.FromRoles  = new SelectList(new RoleRepo(db, _partActRepo).GetRoles(), "Id", "Name");
                    //return View("Index", listModel);
                    return(RedirectToAction("Detail", "PartActivity", new { id = result.AffectedCount }));
                }
                else if (result.AffectedCount == -504)
                {
                    var permission2 = _partActRepo.GetPartAct("PartnerActivity.Query", currentRoleId);
                    if (permission2 == null)
                    {
                        toastNotification.AddErrorToastMessage("تم انشاء هذه الصلاحية مسبقا ", new ToastrOptions {
                            Title = ""
                        });
                    }
                    else
                    {
                        return(RedirectToAction("Detail", "PartActivity", new { id = permission2.Id }));
                    }
                }
                else
                {
                    toastNotification.AddErrorToastMessage("لم يتم انشاء الصلاحية ، يرجى المحاولة لاحقا ", new ToastrOptions {
                        Title = ""
                    });
                }
            }

            var fromRoles        = new RoleRepo(db, _partActRepo).GetRoles();
            var activities       = new ActivityRepo(db, _PartnerManager).GetActivities();
            var maxQueryDuration = new CommonCodeRepo(db).GetCodesByType("queryduration");
            var scopes           = new CommonCodeRepo(db).GetCodesByType("activity.scope");

            model.FromRoles        = fromRoles;
            model.Activities       = activities;
            model.MaxQueryDuration = maxQueryDuration;
            model.Scopes           = scopes;
            return(View(model));
        }