// RequestManager requestManager = new RequestManager(); //public DR_ResultRequest RecieveRequest(DR_Request request) //{ // var requestManager = new RequestProcessManager(); // return requestManager.ProcessRequest(request); //} public DR_ResultEdit SendEditRequest(DR_EditRequest request) { EditRequestManager requestManager = new MyDataEditManagerBusiness.EditRequestManager(); return(requestManager.Process(request)); }
public DR_ResultEdit Process(DR_EditRequest request) { DR_ResultEdit result = new DR_ResultEdit(); var preEditQueryResults = new List <EditQueryPreItem>(); foreach (var item in request.EditPackages) { preEditQueryResults.Add(new EditQueryPreItem(item)); } actionActivityManager.DoBeforeEditActionActivities(request.Requester, preEditQueryResults); if (preEditQueryResults.Any(x => x.BeforeSaveActionActivitiesResult == Enum_DR_SimpleResultType.ExceptionThrown)) { var exceptionItem = preEditQueryResults.First(x => x.BeforeSaveActionActivitiesResult == Enum_DR_SimpleResultType.ExceptionThrown); result.Result = Enum_DR_ResultType.ExceptionThrown; var logResult = bizLogManager.AddLog(GetBeforeSaveExceptionLog(exceptionItem), request.Requester); if (!string.IsNullOrEmpty(logResult)) { result.Details.Add(ToResultDetail("خطا در ثبت لاگ", "", logResult)); } result.Details.Add(ToResultDetail(exceptionItem.DataItem.ViewInfo, "فعالیتهای قبل از ذخیره شدن داده با خطا همراه بود", exceptionItem.BeforeSaveActionActivitiesMessage)); } else { //var internalResult = GetInternalResult(request as DR_EditRequest); var allQueryItems = editQueryItemManager.GetQueryItems(request.Requester, request.EditPackages); 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); } var editQueryResults = new List <EditQueryResultItem>(); foreach (var item in allQueryItems) { editQueryResults.Add(new EditQueryResultItem(item)); } 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)); } foreach (var item in request.EditPackages) { var baseData = new DP_BaseData(item.TargetEntityID, item.TargetEntityAlias); var listKeyProperties = new List <EntityInstanceProperty>(); if (item.IsNewItem && item.KeyProperties.Any(x => x.IsIdentity)) { var dataItem = editQueryResults.First(x => x.QueryItem.DataItem == item).QueryItem.DataItem; foreach (var key in dataItem.KeyProperties) { baseData.Properties.Add(key); } } else { foreach (var key in item.KeyProperties) { baseData.Properties.Add(key); } } result.UpdatedItems.Add(baseData); } 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 ConfirmUpdateForm_Decided(object sender, ConfirmUpdateDecision e) { if (e.Confirm) { var requester = AgentUICoreMediator.GetAgentUICoreMediator.GetRequester(); DR_EditRequest request = new DR_EditRequest(requester); request.EditPackages = Datas; var reuslt = AgentUICoreMediator.GetAgentUICoreMediator.requestRegistration.SendEditRequest(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 || reuslt.Result == Enum_DR_ResultType.JustMajorFunctionDone) { DP_SearchRepository searchDataItem = new DP_SearchRepository(EditArea.AreaInitializer.EntityID); foreach (var item in reuslt.UpdatedItems) { var listProperties = new List <EntityInstanceProperty>(); LogicPhraseDTO logicPhrase = new LogicPhraseDTO(); foreach (var keyProperty in item.KeyProperties) { logicPhrase.Phrases.Add(new SearchProperty() { ColumnID = keyProperty.ColumnID, Value = keyProperty.Value }); } searchDataItem.AndOrType = AndOREqualType.Or; searchDataItem.Phrases.Add(logicPhrase); } /// var requestSearchEdit = new DR_SearchEditRequest(requester, searchDataItem, EditArea.AreaInitializer.SecurityReadOnly, true); var requestSearchEdit = new DR_SearchEditRequest(requester, searchDataItem); var results = AgentUICoreMediator.GetAgentUICoreMediator.requestRegistration.SendSearchEditRequest(requestSearchEdit); if (results.ResultDataItems.Count > 0) { if (EditArea is I_EditEntityAreaOneData) { (EditArea as I_EditEntityAreaOneData).ClearData(false); var data = results.ResultDataItems[0]; data.DataView = EditArea.AreaInitializer.EditAreaDataManager.GetDataView(data); var addResult = (EditArea as I_EditEntityAreaOneData).AddData(data, true); if (!addResult) { AgentUICoreMediator.GetAgentUICoreMediator.UIManager.ShowInfo("عدم دسترسی به داده و یا داده های وابسته", results.ResultDataItems[0].ViewInfo, Temp.InfoColor.Red); } } else if (EditArea is I_EditEntityAreaMultipleData) { (EditArea as I_EditEntityAreaMultipleData).ClearData(false); foreach (var data in results.ResultDataItems) { data.DataView = EditArea.AreaInitializer.EditAreaDataManager.GetDataView(data); var addResult = (EditArea as I_EditEntityAreaMultipleData).AddData(data, true); if (!addResult) { AgentUICoreMediator.GetAgentUICoreMediator.UIManager.ShowInfo("عدم دسترسی به داده و یا داده های وابسته", results.ResultDataItems[0].ViewInfo, Temp.InfoColor.Red); } } } } else { AgentUICoreMediator.GetAgentUICoreMediator.UIManager.ShowInfo("عدم دسترسی به داده", "", Temp.InfoColor.Red); (EditArea as BaseEditEntityArea).ClearData(true); } } } AgentUICoreMediator.GetAgentUICoreMediator.UIManager.CloseDialog(sender); }