Example #1
0
        public IActionResult Create()
        {
            var currentRoleId = partnerManager.GetCurrentUserRole(this.HttpContext);
            var permission    = partnerActivity.GetPartAct("BgService.Create", currentRoleId);

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

            var model = new CreateBackgroundServiceDto();

            model.StartDate = DateTime.Now.AddDays(-30);
            model.EndDate   = DateTime.Now;
            var sources = new CommonCodeRepo(db).GetCodesByType("bg_service_source");

            model.Sources = sources;
            return(View(model));
        }
Example #2
0
        public IActionResult Create(CreateBackgroundServiceDto model)
        {
            if (model.Id > 0)
            {
                toastNotification.AddErrorToastMessage("لم يتم حفظ الطلب ، لقد تم حفظه مسبقا", new ToastrOptions
                {
                    Title = ""
                });
            }
            else if (ModelState.IsValid)
            {
                var currentRoleId = partnerManager.GetCurrentUserRole(this.HttpContext);
                var currentId     = partnerManager.GetCurrentUserId(this.HttpContext);
                var permission    = partnerActivity.GetPartAct("BgService.Create", currentRoleId);
                if (permission == null)
                {
                    toastNotification.AddErrorToastMessage("ليس لديك الصلاحية الكافية", new ToastrOptions {
                        Title = ""
                    });
                    //return Redirect(Request.Headers["Referer"].ToString());
                }
                else if (permission.Details == null || permission.Details.Count == 0)
                {
                    toastNotification.AddErrorToastMessage("ليس لديك الصلاحية الكافية", new ToastrOptions {
                        Title = ""
                    });
                    //return Redirect(Request.Headers["Referer"].ToString());
                }
                else if (model.StartDate != null && model.EndDate != null && model.StartDate > model.EndDate)
                {
                    ModelState.AddModelError("EndDate", "تاريخ النهاية اقل من تاريخ البداية");
                }
                else if (string.IsNullOrEmpty(model.PartnerId) || model.PartnerAccount <= 0)
                {
                    toastNotification.AddErrorToastMessage("يجب تحديد الجهة المطلوب بياناتها", new ToastrOptions {
                        Title = ""
                    });
                    //return Redirect(Request.Headers["Referer"].ToString());
                }
                else
                {
                    var targetPartner = partnerManager.GetPartnerByAccount(model.PartnerAccount);
                    if (targetPartner == null)
                    {
                        toastNotification.AddErrorToastMessage("الجهة المراد بياناتها غير موجودة", new ToastrOptions {
                            Title = ""
                        });
                        return(Redirect(Request.Headers["Referer"].ToString()));
                    }
                    if (!permission.Details.Exists(m => m.ToRole.Id == targetPartner.Role.Id))
                    {
                        toastNotification.AddErrorToastMessage("ليس لديك الصلاحية الكافية لطلب بيانات لهذه الجهة", new ToastrOptions {
                            Title = ""
                        });
                        return(Redirect(Request.Headers["Referer"].ToString()));
                    }

                    if (permission.Scope.Id == "CurOpOnly" && targetPartner.Id != currentId)
                    {
                        toastNotification.AddErrorToastMessage("صلاحيتك محدودة لطلب بيانات لرقمك فقط", new ToastrOptions {
                            Title = ""
                        });
                        return(Redirect(Request.Headers["Referer"].ToString()));
                    }

                    if (permission.Scope.Id == "Exclusive" && targetPartner.RefPartner.Id != currentId)
                    {
                        toastNotification.AddErrorToastMessage("صلاحيتك محدودة لطلب بيانات للجهات التابعة لك فقط", new ToastrOptions {
                            Title = ""
                        });
                        return(Redirect(Request.Headers["Referer"].ToString()));
                    }

                    var createdObj = new AppBackgroundService();
                    createdObj.CreatedBy.Id      = partnerManager.GetCurrentUserId(this.HttpContext);
                    createdObj.CreatedBy.Account = partnerManager.GetCurrentUserAccount(this.HttpContext);
                    createdObj.Source.Id         = model.Source;
                    createdObj.Name                  = model.Name;
                    createdObj.Partner.Id            = model.PartnerId;
                    createdObj.Partner.Account       = model.PartnerAccount;
                    createdObj.StartDate             = model.StartDate ?? DateTime.MinValue;
                    createdObj.EndDate               = model.EndDate ?? DateTime.MinValue;
                    createdObj.Note                  = model.Note;
                    createdObj.ActionPartner.Id      = model.ActionPartnerId;
                    createdObj.ActionPartner.Account = model.ActionPartnerAccount;
                    createdObj.ActiveTime            = model.ActiveTime ?? DateTime.MinValue;
                    var result = new AppBackgroundServiceRepo(db).Create(createdObj);
                    if (result.Success)
                    {
                        ModelState.Clear();
                        model.Id = result.AffectedCount;
                        toastNotification.AddSuccessToastMessage("تم حفظ العملية بنجاح، لمعرفة حالتها يرجى الاستعلام من شاشة استعلام الطلبات", new ToastrOptions
                        {
                            Title = ""
                        });
                    }
                    else
                    {
                        toastNotification.AddErrorToastMessage("لم يتم حفظ الطلب " + result.AffectedCount, new ToastrOptions
                        {
                            Title = ""
                        });
                    }
                }
            }
            var sources = new CommonCodeRepo(db).GetCodesByType("bg_service_source");

            model.Sources = sources;
            return(View(model));
        }