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)); }
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)); }