public DR_ResultDelete SendDeleteRequest(DR_DeleteRequest request) { EditRequestManager requestManager = new EditRequestManager(); return(requestManager.Process(request as DR_DeleteRequest)); }
public DR_ResultDelete Process(DR_DeleteRequest request) { DR_ResultDelete result = new DR_ResultDelete(); var itemsAndQueries = deleteQueryItemManager.GetDeleteQueryItems(request.Requester, request.DataItems); var editQueryResults = new List <EditQueryResultItem>(); foreach (var item in itemsAndQueries) { foreach (var childitem in item.Item2) { editQueryResults.Add(new EditQueryResultItem(childitem)); } } //کاملا مثل ادیت .یکی شوند var allQueryItems = editQueryResults.Select(x => x.QueryItem).ToList(); if (allQueryItems.Any(x => string.IsNullOrEmpty(x.Query))) { throw new Exception("sdfsdf"); } CheckPermissoinToEdit(request.Requester, result, allQueryItems); if (result.Result == Enum_DR_ResultType.ExceptionThrown) { return(result); } actionActivityManager.DoBeforeDeleteActionActivities(request.Requester, editQueryResults); if (editQueryResults.Any(x => x.BeforeSaveActionActivitiesResult == Enum_DR_SimpleResultType.ExceptionThrown)) { var exceptionItem = editQueryResults.First(x => x.BeforeSaveActionActivitiesResult == Enum_DR_SimpleResultType.ExceptionThrown); result.Result = Enum_DR_ResultType.ExceptionThrown; var logResult = bizLogManager.AddLog(GetBeforeDeleteExceptionLog(exceptionItem), request.Requester); if (!string.IsNullOrEmpty(logResult)) { result.Details.Add(ToResultDetail("خطا در ثبت لاگ", "", logResult)); } result.Details.Add(ToResultDetail(exceptionItem.QueryItem.DataItem.ViewInfo, "فعالیتهای قبل از ذخیره شدن داده با خطا همراه بود", exceptionItem.BeforeSaveActionActivitiesMessage)); } else { var transactionresult = ConnectionManager.ExecuteTransactionalQueryItems(allQueryItems); if (transactionresult.Successful) { actionActivityManager.DoAfterEditActionActivities(request.Requester, editQueryResults); var logResult = bizLogManager.AddLogs(GetUpdateDataSuccessfulLogs(editQueryResults), request.Requester); if (!string.IsNullOrEmpty(logResult)) { result.Details.Add(ToResultDetail("خطا در ثبت لاگ", "", logResult)); } if (editQueryResults.Any(x => x.AfterSaveActionActivitiesResult == Enum_DR_SimpleResultType.ExceptionThrown)) { result.Result = Enum_DR_ResultType.JustMajorFunctionDone; foreach (var item in editQueryResults.Where(x => x.AfterSaveActionActivitiesResult == Enum_DR_SimpleResultType.ExceptionThrown)) { result.Details.Add(ToResultDetail(item.QueryItem.DataItem.ViewInfo, "فعالیتهای بعد از ذخیره شدن داده با خطا همراه بود", item.AfterSaveActionActivitiesMessage)); } } else { result.Result = Enum_DR_ResultType.SeccessfullyDone; } } else { result.Result = Enum_DR_ResultType.ExceptionThrown; if (editQueryResults.Any(x => x.DataUpdateResult == Enum_DR_SimpleResultType.ExceptionThrown)) { foreach (var item in transactionresult.QueryItems.Where(x => x.Exception != null)) { editQueryResults.First(x => x.QueryItem == item.QueryItem).DataUpdateMessage = item.Exception.Message; editQueryResults.First(x => x.QueryItem == item.QueryItem).DataUpdateResult = Enum_DR_SimpleResultType.ExceptionThrown; } var exceptionItem = editQueryResults.First(x => x.DataUpdateResult == Enum_DR_SimpleResultType.ExceptionThrown); var logResult = bizLogManager.AddLog(GetUpdateDataExceptionLog(exceptionItem), request.Requester); if (!string.IsNullOrEmpty(logResult)) { result.Details.Add(ToResultDetail("خطا در ثبت لاگ", "", logResult)); } result.Details.Add(ToResultDetail(exceptionItem.QueryItem.DataItem.ViewInfo, "ذخیره شدن داده با خطا همراه بود", exceptionItem.DataUpdateMessage)); } else { result.Details.Add(ToResultDetail("خطای عمومی ثبت", "ذخیره شدن داده با خطا همراه بود", transactionresult.Message)); } } } return(result); }
private void View_ButtonClicked(object sender, ConfirmModeClickedArg e) { I_ViewDeleteInquiry view = sender as I_ViewDeleteInquiry; if (view != null) { if (e.Result == UserDialogResult.Ok || e.Result == UserDialogResult.No) { AgentUICoreMediator.GetAgentUICoreMediator.UIManager.CloseDialog(view); } else if (e.Result == UserDialogResult.Yes) { AgentUICoreMediator.GetAgentUICoreMediator.UIManager.CloseDialog(view); var requester = AgentUICoreMediator.GetAgentUICoreMediator.GetRequester(); DR_DeleteRequest request = new DR_DeleteRequest(requester); request.DataItems = dataList; var reuslt = AgentUICoreMediator.GetAgentUICoreMediator.requestRegistration.SendDeleteRequest(request); if (reuslt.Result == Enum_DR_ResultType.SeccessfullyDone) { AgentUICoreMediator.GetAgentUICoreMediator.UIManager.ShowInfo(EditArea.SimpleEntity.Alias + " : " + "عملیات حذف با موفقیت انجام شد", reuslt.Details, MyUILibrary.Temp.InfoColor.Green); } else if (reuslt.Result == Enum_DR_ResultType.JustMajorFunctionDone) { AgentUICoreMediator.GetAgentUICoreMediator.UIManager.ShowInfo(EditArea.SimpleEntity.Alias + " : " + "عملیات حذف با موفقیت انجام شد اما برخی عملیات جانبی کامل انجام نشد", reuslt.Details, MyUILibrary.Temp.InfoColor.Blue); } else if (reuslt.Result == Enum_DR_ResultType.ExceptionThrown) { AgentUICoreMediator.GetAgentUICoreMediator.UIManager.ShowInfo(EditArea.SimpleEntity.Alias + " : " + "عملیات حذف با خطا همراه بود", reuslt.Details, MyUILibrary.Temp.InfoColor.Red); } if (reuslt.Result == Enum_DR_ResultType.SeccessfullyDone) { if (EditArea.AreaInitializer.DataMode == DataMode.One) { (EditArea as I_EditEntityAreaOneData).ClearData(true); } else if (EditArea.AreaInitializer.DataMode == DataMode.Multiple) { (EditArea as I_EditEntityAreaMultipleData).ClearData(false); } } //if (reuslt.ResultItems.All(x => x.Result == Enum_DR_ResultType.SeccessfullyDone)) //{ // AgentUICoreMediator.GetAgentUICoreMediator.UIManager.ShowMessage("", "عملیات حذف داده/داده های منتخب با موفقیت انجام شد"); //} //else if (reuslt.ResultItems.Any(x => x.Result == Enum_DR_ResultType.SeccessfullyDone) // && reuslt.ResultItems.Any(x => x.Result == Enum_DR_ResultType.ExceptionThrown)) //{ // AgentUICoreMediator.GetAgentUICoreMediator.UIManager.ShowMessage("", "عملیات حذف برخی از داده ها با موفقیت و برخی با خطا همراه بود"); //} //else if (reuslt.ResultItems.All(x => x.Result == Enum_DR_ResultType.ExceptionThrown)) //{ // AgentUICoreMediator.GetAgentUICoreMediator.UIManager.ShowMessage("", "به علت وقوع خطا عملیات حذف داده/داده های منتخب انجام نشد"); //} //foreach (var item in reuslt.ResultItems) //{ // DP_DataRepository data = AgentHelper.GetEquivalentDataItem(EditArea, item.DataItem); // if (item.Result == Enum_DR_ResultType.ExceptionThrown) // { // AgentUICoreMediator.GetAgentUICoreMediator.UIManager.ShowInfo("خطا در حذف" + " " + data.ViewInfo, item.Message, MyUILibrary.Temp.InfoColor.Green); // } // else if (item.Result == Enum_DR_ResultType.SeccessfullyDone) // { // if (EditArea.AreaInitializer.DataMode == DataMode.One) // (EditArea as I_EditEntityAreaOneData).ClearData(true, true); // else if (EditArea.AreaInitializer.DataMode == DataMode.Multiple) // { // (EditArea as I_EditEntityAreaMultipleData).RemoveData(data, true); // } // } //} } } }