public List <RelationshipFilterDTO> GetRelationshipFilters(DR_Requester requester, int relationshipID) { return(bizRelationshipFilter.GetRelationshipFilters(requester, relationshipID)); }
public void SaveRequestFile(RequestFileDTO requestFile, DR_Requester requester) { BizRequest bizRequest = new BizRequest(); bizRequest.SaveRequestFile(requestFile, requester); }
public List <ProcessDTO> GetProcessesForExecution(DR_Requester requester) { return(bizRequest.GetProcessesForExecution(requester)); }
public List <GraphDTO> SearchGraphs(DR_Requester dR_Requester, string singleFilterValue) { return(bizGraph.SearchGraphs(dR_Requester, singleFilterValue)); }
private DataMenuSettingDTO ToDataMenuSettingDTO(DR_Requester requester, DataMenuSetting entity, bool withDetails) { var result = new DataMenuSettingDTO(); if (withDetails) { foreach (var item in entity.DataMenuSearchableReportRelationship) { //دسترسی به خود گزارش هم کنترل شود if (bizEntityRelationshipTail.DataIsAccessable(requester, item.EntityRelationshipTail)) { if (bizEntityReport.DataIsAccessable(requester, item.EntitySearchableReport.EntityReport)) { var tail = bizEntityRelationshipTail.ToEntityRelationshipTailDTO(item.EntityRelationshipTail); var entityReportDTO = new EntitySearchableReportDTO(); bizEntitySearchableReport.ToEntitySearchableReportDTO(item.EntitySearchableReport, entityReportDTO, withDetails); result.SearchableReportRelationships.Add(ToDataMenuSearchableReportRelationshipDTO(item, tail, entityReportDTO)); } } } foreach (var item in entity.DataMenuDataViewRelationship) { if (bizEntityRelationshipTail.DataIsAccessable(requester, item.EntityRelationshipTail)) { var tail = bizEntityRelationshipTail.ToEntityRelationshipTailDTO(item.EntityRelationshipTail); result.DataViewRelationships.Add(ToDataMenuDataViewRelationshipDTO(item, tail)); } } foreach (var item in entity.DataMenuGridViewRelationship) { if (bizEntityRelationshipTail.DataIsAccessable(requester, item.EntityRelationshipTail)) { var tail = bizEntityRelationshipTail.ToEntityRelationshipTailDTO(item.EntityRelationshipTail); result.GridViewRelationships.Add(ToDataMenuGridViewRelationshipDTO(item, tail)); } } foreach (var item in entity.DataMenuDataItemReportRelationship) { if (bizEntityReport.DataIsAccessable(requester, item.EntityDataItemReportID)) { var entityReportDTO = new EntityDataItemReportDTO(); bizEntityDataItemReport.ToEntityDataItemReportDTO(item.EntityDataItemReport, entityReportDTO, false); result.DataItemReports.Add(ToDataMenuDataItemReportRelationshipDTO(item, entityReportDTO)); } } } result.EntityID = entity.TableDrivedEntityID; result.EntityListViewID = entity.EntityListViewID; result.Name = entity.Name; if (entity.DataMenuForViewEntity.Any()) { result.RelationshipID = entity.DataMenuForViewEntity.First().RelationshipID; if (withDetails) { if (bizRelationship.DataIsAccessable(requester, entity.DataMenuForViewEntity.First().Relationship, false, true)) { result.Relationship = bizRelationship.ToRelationshipDTO(entity.DataMenuForViewEntity.First().Relationship); } } result.TargetDataMenuSettingID = entity.DataMenuForViewEntity.First().TargetDataMenuSettingID; if (withDetails) { result.DataMenuSetting = ToDataMenuSettingDTO(requester, entity.DataMenuForViewEntity.First().DataMenuSetting1, false); } } result.ID = entity.ID; if (withDetails) { result.IconContent = entity.IconContent; } return(result); }
private FunctionResult CalculateFormula(string expression, DP_DataRepository mainDataItem, DR_Requester requester, List <int> usedFormulaIDs = null) { FunctionResult result = new FunctionResult(); //result.FormulaUsageParemeters = FormulaUsageParemeters; //FormulaInstance formulaInstance = null; try { var target = FormulaInstanceInternalHelper.GetExpressionEvaluator(mainDataItem, requester, false, usedFormulaIDs); result.Result = target.Calculate(expression); //formulaInstance = new FormulaInstance(mainDataItem, requester, usedFormulaIDs); //formulaInstance.PropertyGetCalled += FormulaInstance_PropertyGetCalled; //var instanceResult = formulaInstance.CalculateExpression(expression); //if (formulaInstance.Exceptions.Any()) // throw new Exception("instance Error"); //else // result.Result = instanceResult; //formulaInstance.PropertyGetCalled -= FormulaInstance_PropertyGetCalled; } catch (Exception ex) { result.Exception = new Exception("خطا در محاسبه فرمول" + Environment.NewLine + ex.Message); } return(result); }
public GraphDTO GetGraph(DR_Requester dR_Requester, int ID) { return(bizGraph.GetGraph(dR_Requester, ID)); }
public CommandFunctionParam(I_EditEntityArea editEntityArea, DR_Requester requester) : base(requester) { EditEntityArea = editEntityArea; }
private MyCustomSingleData GetCustomSingleData(MyPropertyInfo property, DP_DataRepository dataItem, DR_Requester requester, bool definition, Dictionary <string, MyPropertyInfo> properties, List <int> usedFormulaIDs) { var item = new MyCustomSingleData(dataItem, Requester, Definition, properties, UsedFormulaIDs); item.ParentCustomData = this; item.ParentProperty = property; return(item); }
public List <Tuple <DP_DataRepository, List <QueryItem> > > GetDeleteQueryItems(DR_Requester requester, List <DP_DataRepository> items) { List <Tuple <DP_DataRepository, List <QueryItem> > > result = new List <Tuple <DP_DataRepository, List <QueryItem> > >(); List <DP_DataRepository> rootDataItems = new List <DP_DataRepository>(); foreach (var item in items) { DP_DataRepository rootDeleteITem = new DP_DataRepository(item.TargetEntityID, item.TargetEntityAlias); rootDeleteITem.SetProperties(item.GetProperties()); rootDeleteITem.DataView = item.DataView; rootDeleteITem.EntityListView = item.EntityListView; rootDeleteITem.IsFullData = item.IsFullData; var loop = GetTreeItems(requester, rootDeleteITem, rootDeleteITem); if (loop) { throw new Exception("امکان حذف بعلت وابستگی داده ها وجود ندارد"); } rootDataItems.Add(rootDeleteITem); } foreach (var item in rootDataItems) { var queryItems = GetDeleteQueryQueue(requester, item); foreach (var queryItem in queryItems) { if (queryItem.QueryType == Enum_QueryItemType.Delete) { queryItem.Query = GetDeleteQueryQueue(requester, queryItem); } else if (queryItem.QueryType == Enum_QueryItemType.Update) { EditQueryItemManager editQueryItemManage = new EditQueryItemManager(); queryItem.Query = editQueryItemManage.GetUpdateQuery(queryItem); } } result.Add(new Tuple <DP_DataRepository, List <QueryItem> >(item, queryItems)); } return(result); }
public bool GetTreeItems(DR_Requester requester, DP_DataRepository deleteDataItem, DP_DataRepository rootDeleteItem) { List <ChildRelationshipInfo> result = new List <ChildRelationshipInfo>(); bool loop = false; // DP_DataRepository resultItem = item; var entity = bizTableDrivedEntity.GetTableDrivedEntity(requester, deleteDataItem.TargetEntityID, EntityColumnInfoType.WithSimpleColumns, EntityRelationshipInfoType.WithRelationships); foreach (var relationship in entity.Relationships.Where(x => x.MastertTypeEnum == Enum_MasterRelationshipType.FromPrimartyToForeign)) { if (!loop) { var searchRepository = RelationshipDataManager.GetSecondSideSearchDataItemByRelationship(deleteDataItem, relationship.ID); var newrequester = new DR_Requester(); newrequester.SkipSecurity = true; DR_SearchViewRequest searchViewRequest = new DR_SearchViewRequest(newrequester, searchRepository); var searchViewResult = SearchRequestManager.Process(searchViewRequest); if (searchViewResult.ResultDataItems.Any()) { var childRelationshipInfo = new ChildRelationshipInfo(); childRelationshipInfo.SourceData = deleteDataItem; childRelationshipInfo.Relationship = relationship; result.Add(childRelationshipInfo); childRelationshipInfo.RelationshipDeleteOption = relationship.DeleteOption; deleteDataItem.ChildRelationshipInfos.Add(childRelationshipInfo); if (childRelationshipInfo.RelationshipDeleteOption == RelationshipDeleteOption.SetNull) { foreach (var childItem in searchViewResult.ResultDataItems) { DP_DataRepository dataItem = new DP_DataRepository(childItem.TargetEntityID, childItem.TargetEntityAlias); dataItem.DataView = childItem; dataItem.ParantChildRelationshipInfo = childRelationshipInfo; childRelationshipInfo.RelatedData.Add(dataItem); } } else { bool repeatedInParents = false; foreach (var childItem in searchViewResult.ResultDataItems) {//هردفعه پرنتها برای هر ایتم گرفته نشود List <DP_DataRepository> parents = GetParentDataItems(childRelationshipInfo); if (parents.Any(z => z.TargetEntityID == childItem.TargetEntityID && z.KeyProperties.All(x => childItem.Properties.Any(y => y.IsKey && x.ColumnID == y.ColumnID && x.Value == y.Value)))) { var parentRepeted = parents.First(z => z.TargetEntityID == childItem.TargetEntityID && z.KeyProperties.All(x => childItem.Properties.Any(y => y.IsKey && x.ColumnID == y.ColumnID && x.Value == y.Value))); loop = true; repeatedInParents = true; DP_DataRepository dataItem = new DP_DataRepository(childItem.TargetEntityID, childItem.TargetEntityAlias); dataItem.DataView = childItem; dataItem.ParantChildRelationshipInfo = childRelationshipInfo; dataItem.Error = "وابستگی تکراری با " + parentRepeted.ViewInfo; childRelationshipInfo.RelatedData.Add(dataItem); } } if (!repeatedInParents) { foreach (var childItem in searchViewResult.ResultDataItems) { if (ChildItemExistInTree(rootDeleteItem, childItem)) { } else { DP_DataRepository dataItem = new DP_DataRepository(childItem.TargetEntityID, childItem.TargetEntityAlias); dataItem.DataView = childItem; dataItem.ParantChildRelationshipInfo = childRelationshipInfo; childRelationshipInfo.RelatedData.Add(dataItem); var innerloop = GetTreeItems(requester, dataItem, rootDeleteItem); if (innerloop) { loop = true; return(loop); } } } } } } } } return(loop); }
public IQueryable <OrganizationPost> GetDBOrganizationPosts(MyProjectEntities context, DR_Requester requester) { if (requester.PostIds.Any()) { return(context.OrganizationPost.Where(x => requester.PostIds.Contains(x.ID))); } else { //BizOrganization bizOrganization = new BizOrganization(); return(context.OrganizationPost.Where(x => x.UserID == requester.Identity)); } }
//public void UpdateEntitySecurityInDirect(EntitySecurityInDirectDTO message) //{ // using (var projectContext = new DataAccess.MyProjectEntities()) // { // var dbItem = projectContext.EntitySecurityInDirect.FirstOrDefault(x => x.ID == message.ID); // if (dbItem == null) // { // dbItem = new DataAccess.EntitySecurityInDirect(); // projectContext.EntitySecurityInDirect.Add(dbItem); // } // dbItem.Mode = (short)message.Mode; // dbItem.TableDrivedEntityID = message.TableDrivedEntityID; // dbItem.EntityRelationshipTailID = message.RelationshipTailID; // projectContext.SaveChanges(); // } //} public EntityStateDTO GetAppliableConditionsBySecuritySubject(DR_Requester requester, int entityID, DataDirectSecurityMode mode) { //var cachedItem = CacheManager.GetCacheManager().GetCachedItem(CacheItemType.ConditionalPermission, securitySubjectID.ToString(), entityID.ToString()); //if (cachedItem != null) // return (cachedItem as List<ConditionalPermissionDTO>); //List<int> organizationTypeIDs = new List<int>(); //List<int> organizationIDs = new List<int>(); //List<int> roleTypeIDs = new List<int>(); //List<int> orgTypeRoleTypeIDs = new List<int>(); //Tuple<EntitySecurityInDirectDTO, List<EntitySecurityDirectDTO>> result;= new Tuple<EntitySecurityInDirectDTO, List<EntitySecurityDirectDTO>>(); BizRoleSecurity bizRoleSecurity = new BizRoleSecurity(); List <EntityStateConditionDTO> entityStateConditions = new List <EntityStateConditionDTO>(); // EntitySecurityInDirectDTO indisrectSecurityDTO = null; // EntityStateDTO entityState = null; using (var context = new MyProjectEntities()) { var directSecurityEntityID = entityID; var targetEntityDisrectSecurity = GetEntitySecurityDirectByEntityID(requester, entityID, mode, true); if (targetEntityDisrectSecurity == null) { //var indisrectSecurity = GetEntitySecurityInDirect(context.EntitySecurityInDirect.FirstOrDefault(x => x.TableDrivedEntityID == entityID); //if (indisrectSecurity == null) // return null; //else //{ // indisrectSecurityDTO = bizRoleSecurity.ToEntitySecurityInDirectDTO(indisrectSecurity, true); // var targetEntity = indisrectSecurity.EntityRelationshipTail.TableDrivedEntity; // directSecurityEntityID = targetEntity.ID; // targetEntityDisrectSecurity = context.EntitySecurityDirect.FirstOrDefault(x => x.TableDrivedEntityID == targetEntity.ID && x.Mode == (short)DataDirectSecurityMode.FetchData); //} return(null); } // entityState = bizEntityState.ToEntityStateDTO(requester, targetEntityDisrectSecurity.TableDrivedEntityState, true); foreach (var condition in targetEntityDisrectSecurity.EntityState.StateConditions.ToList()) { if (ConditionSecuritySubjectIsValid(requester, condition)) { GetConditionDTOWithValues(requester, condition); } else { targetEntityDisrectSecurity.EntityState.StateConditions.Remove(condition); } } return(targetEntityDisrectSecurity.EntityState); //var organizationPosts = GetDBOrganizationPosts(context, requester); //BizOrganization bizOrganization = new BizOrganization(); //foreach (var post in organizationPosts) //{ // // List<EntitySecurityDirectDTO> listDirectSecuritiesForPost = new List<EntitySecurityDirectDTO>(); // var postDto = requester.Posts.FirstOrDefault(x => x.ID == post.ID); // if (postDto == null) // postDto = bizOrganization.GetOrganizationPost(post.ID); // var postDisrectSecurities = GetDirectSecurities(requester, postDto, targetEntityDisrectSecurities, directSecurityEntityID); //postDisrectSecurities.AddRange(GetDirectSecurities(requester, disrectSecurities, directSecurityEntityID, post.Organization.SecuritySubject.ID)); //postDisrectSecurities.AddRange(GetDirectSecurities(requester, disrectSecurities, directSecurityEntityID, post.OrganizationType_RoleType.SecuritySubject.ID)); //postDisrectSecurities.AddRange(GetDirectSecurities(requester, disrectSecurities, directSecurityEntityID, post.OrganizationType_RoleType.OrganizationType.SecuritySubject.ID)); //postDisrectSecurities.AddRange(GetDirectSecurities(requester, disrectSecurities, directSecurityEntityID, post.OrganizationType_RoleType.RoleType.SecuritySubject.ID)); //منطق اینجا رو نفهمیدم غیر فعال شد. بجاش بالا همه دسترسی ها تجمیع می شوند //////if (postDisrectSecurities.Any()) ////// listDirectSecuritiesForPost.AddRange(postDisrectSecurities); //////else //////{ ////// var orgTypeRoleTypeDisrectSecurities = GetDirectSecurities(requester, disrectSecurities, directSecurityEntityID, post.OrganizationType_RoleType.SecuritySubject.ID); ////// var organizationDisrectSecurities = GetDirectSecurities(requester, disrectSecurities, directSecurityEntityID, post.Organization.SecuritySubject.ID); ////// if (orgTypeRoleTypeDisrectSecurities.Any()) ////// { ////// //اینجا دسترسی های موازی با هم جمع میشوند زیرا معلوم نیست بروی کدام آبجکت دارند اعمال میشوند و تصمیم گیری در مورد تداخل دسترسی بروی یک آبجکت به کلاینت واگذار میشود ////// listDirectSecuritiesForPost.AddRange(orgTypeRoleTypeDisrectSecurities); ////// listDirectSecuritiesForPost.AddRange(organizationDisrectSecurities); ////// } ////// else ////// { ////// var roleTypeDisrectSecurities = GetDirectSecurities(requester, disrectSecurities, directSecurityEntityID, post.OrganizationType_RoleType.RoleType.SecuritySubject.ID); ////// if (organizationDisrectSecurities.Any()) ////// { ////// listDirectSecuritiesForPost.AddRange(organizationDisrectSecurities); ////// listDirectSecuritiesForPost.AddRange(roleTypeDisrectSecurities); ////// } ////// else ////// { ////// var organizationTypeDisrectSecurities = GetDirectSecurities(requester, disrectSecurities, directSecurityEntityID, post.OrganizationType_RoleType.OrganizationType.SecuritySubject.ID); ////// listDirectSecuritiesForPost.AddRange(organizationTypeDisrectSecurities); ////// listDirectSecuritiesForPost.AddRange(roleTypeDisrectSecurities); ////// } ////// } //////} //if (listDirectSecuritiesForPost.Any()) //{ //اونهای که سابجکت نال دارند و عمومی هستند //var generalSecurityItems = GetGeneralEntitySecurityItems(requester, directSecurityEntityID); //if (generalSecurityItems.Any()) // postDisrectSecurities.AddRange(generalSecurityItems); //foreach (var generalSecurityItem in generalSecurityItems) //{ // foreach (var directSecurityItem in listDirectSecuritiesForPost) // { // directSecurityItem.Conditions.AddRange(generalSecurityItem.Conditions); // } //} //} //listDirectSecuritiesForPost.AddRange(generalSecurityItems); // allPostsDirectSecurities.Add(new PostEntityDataSecurityItems(postDto, postDisrectSecurities)); //} } //CacheManager.GetCacheManager().AddCacheItem(result, CacheItemType.ConditionalPermission, securitySubjectID.ToString(), entityID.ToString()); // return new EntityDataSecurityItems(entityState, indisrectSecurityDTO, entityStateConditions); }
public EntitySecurityDirectDTO ToEntitySecurityDirectDTO(DR_Requester requester, EntitySecurityDirect item, bool withDetails) { EntitySecurityDirectDTO result = new EntitySecurityDirectDTO(); result.ID = item.ID; //if (item.SecuritySubjectID != null) // result.SecuritySubjectID = item.SecuritySubjectID.Value; //else // result.SecuritySubjectID = 0; if (item.Mode != null) { result.Mode = (DataDirectSecurityMode)item.Mode; } //result.IgnoreSecurity = item.IgnoreSecurity; result.Description = item.Description; result.TableDrivedEntityID = item.TableDrivedEntityID; //if (item.SecuritySubjectOperator != null) // result.SecuritySubjectInORNotIn = (InORNotIn)item.SecuritySubjectOperator; //foreach (var valItem in item.EntitySecurityDirectSecuritySubject) //{ // result.SecuritySubjects.Add(new ChildSecuritySubjectDTO { SecuritySubjectID = valItem.SecuritySubjectID });//, SecuritySubjectOperator = (Enum_SecuritySubjectOperator)valItem.SecuritySubjectOperator }); //} // EntitySecurityDirectStatesDTO securityState = new EntitySecurityDirectStatesDTO(); result.EntityStateID = item.TableDrivedEntityStateID; if (withDetails && result.EntityStateID != 0) { BizEntityState bizEntityState = new BizEntityState(); result.EntityState = bizEntityState.ToEntityStateDTO(requester, item.TableDrivedEntityState, withDetails); } //foreach (var valItem in item.EntitySecurityDirectValues) //{ // result.Values.Add(new ModelEntites.EntityStateValueDTO() { Value = valItem.Value, SecurityReservedValue = valItem.ReservedValue == null ? SecurityReservedValue.None : (SecurityReservedValue)valItem.ReservedValue }); //} //result.FormulaID = item.FormulaID ?? 0; //if (result.FormulaID != 0 && withDetails) //{ //??با جزئیات؟؟........................................................................ // var bizFormula = new BizFormula(); // result.Formula = bizFormula.GetFormula(requester, item.FormulaID.Value, withDetails); //} //result.ColumnID = item.ColumnID ?? 0; //if (item.Column != null) //{ // BizColumn bizColumn = new BizColumn(); // result.Column = bizColumn.ToColumnDTO(item.Column, true); //} //result.RelationshipTailID = item.EntityRelationshipTailID ?? 0; //if (item.EntityRelationshipTail != null) //{ // BizEntityRelationshipTail bizEntityRelationshipTail = new BizEntityRelationshipTail(); // result.RelationshipTail = bizEntityRelationshipTail.ToEntityRelationshipTailDTO(item.EntityRelationshipTail); //} //if (item.ValueOperator != null) // result.ValueOperator = (Enum_EntityStateOperator)item.ValueOperator; //result.EntityStates.Add(securityState); return(result); }
public object GetValueSomeHow(DR_Requester requester, DP_DataRepository sentdata, EntityRelationshipTailDTO valueRelationshipTail, int valueColumnID, bool firstIfMultiple = false) { if (valueRelationshipTail == null) { var proprty = sentdata.GetProperty(valueColumnID); return(proprty?.Value); } else { DP_DataRepository relatedData = null; if (sentdata.ParantChildRelationshipInfo != null && sentdata.ParantChildRelationshipInfo.Relationship.PairRelationshipID == valueRelationshipTail.Relationship.ID) { if (sentdata.ParantChildRelationshipInfo.Relationship.PairRelationshipID == valueRelationshipTail.Relationship.ID) { relatedData = sentdata.ParantChildRelationshipInfo.SourceData; } } else if (sentdata.ChildRelationshipInfos.Any(x => x.Relationship.ID == valueRelationshipTail.Relationship.ID)) { var childInfo = sentdata.ChildRelationshipInfos.First(x => x.Relationship.ID == valueRelationshipTail.Relationship.ID); if (childInfo.RelatedData.Count > 1) { if (firstIfMultiple) { relatedData = childInfo.RelatedData.First(); } else { throw new Exception("asav"); } } else if (childInfo.RelatedData.Count == 1) { relatedData = childInfo.RelatedData.First(); } else if (childInfo.RelatedData.Count == 0) { //یعنی یا داده مرتبطی وجود نداشته یا حذف شده return(""); } } if (relatedData != null) { return(GetValueSomeHow(requester, relatedData, valueRelationshipTail.ChildTail, valueColumnID, firstIfMultiple)); } else { //var columnValues = sentdata.KeyProperties; //if (columnValues == null || columnValues.Count == 0) // throw new Exception("asasd"); //سکوریتی داده اعمال میشود // var requester = AgentUICoreMediator.GetAgentUICoreMediator.GetRequester(); //این شرط منطقیه؟؟ if (!sentdata.IsNewItem) { var relationshipTailDataManager = new RelationshipTailDataManager(); var searchDataTuple = relationshipTailDataManager.GetTargetSearchItemFromRelationshipTail(sentdata, valueRelationshipTail); DR_SearchFullDataRequest request = new DR_SearchFullDataRequest(requester, searchDataTuple); var searchResult = new SearchRequestManager().Process(request); if (searchResult.ResultDataItems.Count > 1) { throw new Exception("asdasd"); } else if (searchResult.ResultDataItems.Count == 1) { var foundDataItem = searchResult.ResultDataItems.First(); var prop = foundDataItem.GetProperty(valueColumnID); if (prop != null) { return(prop.Value); } else { return(""); } } else { return(""); } } else { return(""); } } } //return ""; }
public LetterResult UpdateLetter(LetterDTO message, DR_Requester requester) { BizTableDrivedEntity bizTableDrivedEntity = new BizTableDrivedEntity(); if (!bizTableDrivedEntity.DataIsAccessable(requester, message.DataItem.TargetEntityID, new List <SecurityAction>() { SecurityAction.LetterEdit })) { throw new Exception("عدم دسترسی ثبت نامه"); } LetterResult result = new LetterResult(); bool isNew = message.ID == 0; var letterSetting = GetLetterSetting(); if (letterSetting != null) { if (letterSetting.BeforeLetterSaveCodeID != 0) { var resultFunction = codeFunctionHandler.GetCodeFunctionResult(requester, letterSetting.BeforeLetterSaveCodeID, message); if (resultFunction.Exception != null) { var logResult = bizLogManager.AddLog(GetBeforeUpdateExceptionLog(message, resultFunction.Exception, isNew ? DataLogType.LetterInsert : DataLogType.LetterUpdate), requester); if (!string.IsNullOrEmpty(logResult)) { ResultDetail logException = new ResultDetail(); logException.Title = "خطای ثبت لاگ"; logException.Description = "خطای لاگ برای اقدام قبل از ثبت نامه"; logException.TechnicalDescription = logResult; result.Details.Add(logException); } result.Message = "اقدامات مرتبط قبل از ثبت نامه با خطا همراه بود"; return(result); } } } using (var letterModel = new MyIdeaDataDBEntities()) { try { var dbLetter = letterModel.Letter.FirstOrDefault(x => x.ID == message.ID); if (dbLetter == null) { dbLetter = new Letter(); dbLetter.CreationDate = DateTime.Now; dbLetter.UserID = requester.Identity; //var dataItemID = bizDataItem.GetOrCreateDataItem(message.DataItem); if (message.DataItem.DataItemID == 0) { dbLetter.MyDataItemID = bizDataItem.GetOrCreateDataItem(message.DataItem); message.DataItem.DataItemID = dbLetter.MyDataItemID; } else { dbLetter.MyDataItemID = message.DataItem.DataItemID; } } dbLetter.ID = message.ID; dbLetter.Desc = message.Desc; dbLetter.LetterNumber = message.LetterNumber; dbLetter.IsGeneratedOrSelected = message.IsGeneratedOrSelected; dbLetter.FromExternalSource = message.IsExternalOrInternal; dbLetter.ExternalSourceKey = message.ExternalCode; dbLetter.LetterNumber = message.LetterNumber; dbLetter.LetterDate = message.LetterDate; dbLetter.LetterTemplateID = message.LetterTemplateID == 0 ? (int?)null : message.LetterTemplateID; dbLetter.LetterTypeID = message.LetterTypeID; dbLetter.RelatedLetterID = message.RelatedLetterID == 0 ? (int?)null : message.RelatedLetterID; dbLetter.Title = message.Title; if (dbLetter.FileRepository == null) { if (message.AttechedFile != null && message.AttechedFile.Content != null) { dbLetter.FileRepository = bizFileRepository.ToFileRepository(letterModel, message.AttechedFile); } } if (dbLetter.ID == 0) { letterModel.Letter.Add(dbLetter); } letterModel.SaveChanges(); message.ID = dbLetter.ID; result.SavedID = dbLetter.ID; result.Result = true; } catch (Exception ex) { result.Result = false; result.Message = ex.Message; } finally { var logResult = bizLogManager.AddLog(GetUpdateLetterDataLog(message, result.Message, isNew ? DataLogType.LetterInsert : DataLogType.LetterUpdate), requester); if (!string.IsNullOrEmpty(logResult)) { ResultDetail logException = new ResultDetail(); logException.Title = "خطای ثبت لاگ"; logException.Description = "خطای لاگ برای ثبت نامه"; logException.TechnicalDescription = logResult; result.Details.Add(logException); } } } if (result.Result == false) { result.Message = "عملیات ثبت با خطا همراه بود"; return(result); } else { bool afterSaveException = false; if (letterSetting != null) { if (letterSetting.AfterLetterSaveCodeID != 0) { var resultFunction = codeFunctionHandler.GetCodeFunctionResult(requester, letterSetting.AfterLetterSaveCodeID, message); if (resultFunction.Exception != null) { afterSaveException = true; var logResult = bizLogManager.AddLog(GetAfterUpdateExceptionLog(message, resultFunction.Exception, isNew ? DataLogType.LetterInsert : DataLogType.LetterUpdate), requester); if (!string.IsNullOrEmpty(logResult)) { ResultDetail logException = new ResultDetail(); logException.Title = "خطای ثبت لاگ"; logException.Description = "خطای لاگ برای اقدام بعد از ثبت نامه"; logException.TechnicalDescription = logResult; result.Details.Add(logException); } return(result); } } } if (afterSaveException) { result.Message = "عملیات ثبت با موفقیت انجام شد اما اقدامات بعد از ثبت با خطا همراه بود"; } else { result.Message = "عملیات ثبت با موفقیت انجام شد"; } return(result); } }
public FunctionResult CalculateFormulaTest(string expression, DP_DataRepository dataItem, DR_Requester requester, List <int> usedFormulaIDs = null) { var mainDataItem = GetMainDateItem(requester, dataItem); return(CalculateFormula(expression, mainDataItem, requester, usedFormulaIDs)); }
public LetterDeleteResult DeleteLetter(DR_Requester requester, int letterID) { LetterDeleteResult result = new LetterDeleteResult(); string exception = ""; using (var context = new MyIdeaDataDBEntities()) { //سکوریتی ثبت میتونه اینجا هم چک بشه //itemResult.ID = item.ID; var dbItem = context.Letter.First(x => x.ID == letterID); BizTableDrivedEntity bizTableDrivedEntity = new BizTableDrivedEntity(); if (!bizTableDrivedEntity.DataIsAccessable(requester, dbItem.MyDataItem.TableDrivedEntityID, new List <SecurityAction>() { SecurityAction.LetterEdit })) { throw new Exception("عدم دسترسی ثبت نامه"); } try { if (dbItem.Letter1.Any()) { foreach (var item in dbItem.Letter1) { ResultDetail relatedItemException = new ResultDetail(); relatedItemException.Title = "دارای نامه مرتبط"; relatedItemException.Description = "نامه به شماره" + " " + item.LetterNumber + " " + "به تاریخ" + " " + item.LetterDate; result.Details.Add(relatedItemException); } result.Message = "به علت وجود نامه های مرتبط عملیات حذف امکان پذیر نمی باشد"; return(result); } context.Letter.Remove(dbItem); context.SaveChanges(); result.Result = true; result.Message = "عملیات حذف با موفقیت انجام شد"; } catch (Exception ex) { exception = ex.Message; ResultDetail itemResult = new ResultDetail(); itemResult.Title = "خطا"; itemResult.Description = "حذف نامه با شناسه" + " " + letterID + " " + "با خطا همراه بود"; itemResult.TechnicalDescription = ex.Message; result.Details.Add(itemResult); result.Message = "عملیات حذف با خطا همراه بود"; } finally { var logResult = bizLogManager.AddLog(GetDeleteItemDataLog(dbItem, exception), requester); if (!string.IsNullOrEmpty(logResult)) { ResultDetail logException = new ResultDetail(); logException.Title = "خطای ثبت لاگ"; logException.Description = "ثبت لاگ برای حذف فایل با شناسه" + " " + dbItem.ID + " " + "با خطا همراه بود"; logException.TechnicalDescription = logResult; result.Details.Add(logException); } } } return(result); }
//FormulaDTO Formula { set; get; } public I_ExpressionEvaluator GetExpressionEvaluator(DP_DataRepository dataItem, DR_Requester requester, bool definition, List <int> usedFormulaIDs = null) { return(FormulaInstanceInternalHelper.GetExpressionEvaluator(dataItem, requester, definition, usedFormulaIDs)); }
public FunctionResult GetCodeFunctionResult(DR_Requester resuester, int codeFunctionID, List <object> parameters) { var codeFunction = bizCodeFunction.GetCodeFunction(resuester, codeFunctionID); return(GetCodeFunctionResult(codeFunction, parameters)); }
public List <GraphDTO> GetGraphs(DR_Requester dR_Requester, int entityID) { return(bizGraph.GetGraphByEntitiyID(dR_Requester, entityID)); }
public List <DataLogDTO> SearchDataLogs(DR_Requester requester, int entityID, DateTime?fromDate, DateTime?toDate, DP_BaseData dataItem, DataLogType?logType, int columnID, int userID, bool?withMajorException, bool?withMinorException) { return(bizLogManager.SearchDataLogs(requester, entityID, fromDate, toDate, dataItem, logType, columnID, userID, withMajorException, withMinorException)); }
public DataMenuResult GetDataMenu(DR_Requester requester, DP_DataView dataItem, int dataMenuSettingID) { DataMenuResult result = new DataMenuResult(); List <DataMenu> resultMenus = new List <DataMenu>(); result.DataMenus = resultMenus; var entityID = dataItem.TargetEntityID; var simpleEntity = bizTableDrivedEntity.GetSimpleEntity(requester, entityID); if (simpleEntity == null) { return(null); } DataMenuSettingDTO dataMenuSetting = null; if (dataMenuSettingID != 0) { dataMenuSetting = GetDataMenuSetting(requester, dataMenuSettingID, true); } else { dataMenuSetting = GetDefaultDataMenuSetting(requester, entityID, true); } if (dataMenuSetting != null) { result.DataMenuSettingName = dataMenuSetting.Name; } if (simpleEntity.IsView) { if (dataMenuSetting != null) { if (dataMenuSetting.RelationshipID != 0 && dataMenuSetting.TargetDataMenuSettingID != 0) { var relationship = bizRelationship.GetRelationship(dataMenuSetting.RelationshipID); var dataView = CreateDataView(requester, dataItem, relationship); return(GetDataMenu(requester, dataView, dataMenuSetting.TargetDataMenuSettingID)); } } //var fullEntity = bizTableDrivedEntity.GetTableDrivedEntity(requester, entityID, EntityColumnInfoType.WithSimpleColumns, EntityRelationshipInfoType.WithRelationships); //if (fullEntity.Relationships.Any()) //{ // foreach (var relationsip in fullEntity.Relationships) // { // var dataView = CreateDataView(dataItem, relationsip); // var menu = AddMenu(result, relationsip.Alias, "", DataMenuType.ViewRel); // menu.ViewRelTargetDataItem = dataView; // } //} } else { var dataEntryRootMenu = AddMenu(resultMenus, "نمایش/اصلاح داده", "", DataMenuType.Form, dataItem); //آرشیو داده // BizArchive bizArchive = new BizArchive(); if (bizTableDrivedEntity.DataIsAccessable(requester, entityID, new List <SecurityAction>() { SecurityAction.ArchiveView, SecurityAction.ArchiveEdit })) { var archiveRootMenu = AddMenu(resultMenus, "آرشیو", "", DataMenuType.Archive, dataItem); } //نامه های داده // BizLetterTemplate bizLetterTemplate = new BizLetterTemplate(); if (bizTableDrivedEntity.DataIsAccessable(requester, entityID, new List <SecurityAction>() { SecurityAction.LetterView, SecurityAction.LetterEdit })) { var letterRootMenu = AddMenu(resultMenus, "نامه ها", "", DataMenuType.Letter, dataItem); } //جریان کارهای مرتبط if (bizProcess.EntityHasAnyProcess(entityID)) { var workflowRootMenu = AddMenu(resultMenus, "جریان کار", "", DataMenuType.Workflow, dataItem); } ////لینک های داده //BizDataLink bizDataLink = new MyModelManager.BizDataLink(); //var datalinks = bizDataLink.GetDataLinkByEntitiyID(requester, entityID); //if (datalinks.Any()) //{ // var dataViewRootMenu = AddMenu(resultMenus, "لینک داده", "", DataMenuType.Folder,null); // foreach (var datalink in datalinks) // { // var datalinkMenu = AddMenu(dataViewRootMenu.SubMenus, datalink.ReportTitle, "", DataMenuType.DataLink, dataItem); // datalinkMenu.Datalink = datalink; // } //} //گزارشهای داده های مرتبط if (dataMenuSetting != null) { if (dataMenuSetting.SearchableReportRelationships.Any()) { var relationshipReportRootMenu = AddMenu(resultMenus, "گزارش داده های مرتبط", "", DataMenuType.Folder, null); foreach (var group in dataMenuSetting.SearchableReportRelationships.GroupBy(x => x.Group1 ?? "")) { DataMenu parentGroupMenu = GetGroupMenu(relationshipReportRootMenu, group.Key); foreach (var rel in group) { var menu = AddMenu(parentGroupMenu.SubMenus, rel.SearchableReportReport.ReportTitle, "", DataMenuType.RelationshipTailSearchableReport, dataItem); menu.SearchableReportRelationshipTail = rel; } } } //نمای داده های مرتبط if (dataMenuSetting.DataViewRelationships.Any()) { var dataViewRootMenu = AddMenu(resultMenus, "نمایش داده های مرتبط", "", DataMenuType.Folder, null); foreach (var group in dataMenuSetting.DataViewRelationships.GroupBy(x => x.Group1 ?? "")) { DataMenu parentGroupMenu = GetGroupMenu(dataViewRootMenu, group.Key); foreach (var rel in group) { var dataViewRelMenu = AddMenu(parentGroupMenu.SubMenus, rel.RelationshipTail.TargetEntityAlias, rel.RelationshipTail.EntityPath, DataMenuType.RelationshipTailDataView, dataItem); dataViewRelMenu.DataviewRelationshipTail = rel.RelationshipTail; dataViewRelMenu.TargetDataMenuSettingID = rel.TargetDataMenuSettingID; } } } if (dataMenuSetting.GridViewRelationships.Any()) { var gridViewRootMenu = AddMenu(resultMenus, "گرید داده های مرتبط", "", DataMenuType.Folder, null); foreach (var group in dataMenuSetting.GridViewRelationships.GroupBy(x => x.Group1 ?? "")) { DataMenu parentGroupMenu = GetGroupMenu(gridViewRootMenu, group.Key); foreach (var rel in group) { var gridViewRelMenu = AddMenu(parentGroupMenu.SubMenus, rel.RelationshipTail.TargetEntityAlias, rel.RelationshipTail.EntityPath, DataMenuType.RelationshipTailDataGrid, dataItem); gridViewRelMenu.GridviewRelationshipTail = rel.RelationshipTail; gridViewRelMenu.TargetDataMenuSettingID = rel.TargetDataMenuSettingID; } } } if (dataMenuSetting.DataItemReports.Any()) { var gridViewRootMenu = AddMenu(resultMenus, "گزارشات مورد داده", "", DataMenuType.Folder, null); foreach (var group in dataMenuSetting.DataItemReports.GroupBy(x => x.Group1 ?? "")) { DataMenu parentGroupMenu = GetGroupMenu(gridViewRootMenu, group.Key); foreach (var rel in group) { var gridViewRelMenu = AddMenu(parentGroupMenu.SubMenus, rel.EntityDataItemReport.ReportTitle, "", DataMenuType.DataItemReport, dataItem); gridViewRelMenu.DataItemReport = rel.EntityDataItemReport; } } } } } return(result); }
public List <DataLogDTO> SearchDataLogs(DR_Requester requester, int relatedITemID, DataLogType?logType) { return(bizLogManager.SearchDataLogs(requester, relatedITemID, logType)); }
private DP_SearchRepository GetSecondSideSearchItemByRelationship(DP_BaseData firstSideDataItem, RelationshipDTO relationship) { var relationshipFirstSideColumnExist = true; foreach (var col in relationship.RelationshipColumns) { if (!firstSideDataItem.Properties.Any(x => x.Value != null && !string.IsNullOrEmpty(x.Value.ToString()) && x.ColumnID == col.FirstSideColumnID)) { relationshipFirstSideColumnExist = false; } } if (relationshipFirstSideColumnExist) { List <EntityInstanceProperty> properties = new List <EntityInstanceProperty>(); DP_SearchRepository resultDataItem = new DP_SearchRepository(relationship.EntityID2); foreach (var col in relationship.RelationshipColumns) { var value = firstSideDataItem.GetProperty(col.FirstSideColumnID).Value; if (value == null) { return(null); } resultDataItem.Phrases.Add(new SearchProperty() { ColumnID = col.SecondSideColumnID, Value = value }); } return(resultDataItem); } else if (relationship.MastertTypeEnum == Enum_MasterRelationshipType.FromPrimartyToForeign || relationship.MastertTypeEnum == Enum_MasterRelationshipType.FromForeignToPrimary) { DP_SearchRepository resultDataItem = new DP_SearchRepository(relationship.EntityID2); if (firstSideDataItem.KeyProperties.Any() && firstSideDataItem.KeyProperties.All(x => x.Value != null && !string.IsNullOrEmpty(x.Value.ToString()))) { DP_SearchRepository searchItem = new DP_SearchRepository(relationship.EntityID1); foreach (var col in firstSideDataItem.KeyProperties) { searchItem.Phrases.Add(new SearchProperty() { ColumnID = col.ColumnID, Value = col.Value }); } var requester = new DR_Requester(); requester.SkipSecurity = true; DR_SearchFullDataRequest request = new DR_SearchFullDataRequest(requester, searchItem); SearchRequestManager searchProcessor = new SearchRequestManager(); var searchResult = searchProcessor.Process(request); if (searchResult.Result == Enum_DR_ResultType.SeccessfullyDone) { firstSideDataItem = searchResult.ResultDataItems.First(); } else if (searchResult.Result == Enum_DR_ResultType.ExceptionThrown) { throw (new Exception(searchResult.Message)); } List <EntityInstanceProperty> properties = new List <EntityInstanceProperty>(); foreach (var col in relationship.RelationshipColumns) { var value = firstSideDataItem.GetProperty(col.FirstSideColumnID).Value; if (value == null) { return(null); } resultDataItem.Phrases.Add(new SearchProperty() { ColumnID = col.SecondSideColumnID, Value = value }); } return(resultDataItem); } else { return(null); } } else { return(null); } }
public DataLogDTO GetDataLog(DR_Requester requester, int iD) { BizLogManager bizLogManager = new BizLogManager(); return(bizLogManager.GetDataLog(requester, iD)); }
public RequestDiagramDTO GetRequestDiagram(int requestID, DR_Requester requester) { BizRequest bizRequest = new BizRequest(); return(bizRequest.GetRequestDiagram(requestID, requester)); }
public List <DataLogDTO> GetDataLogsByPackageID(DR_Requester requester, Guid guid) { BizLogManager bizLogManager = new BizLogManager(); return(bizLogManager.GetDataLogsByPackageID(requester, guid)); }
public int CreateWorkflowRequest(CreateRequestDTO requestMessage, DR_Requester requester) { return(bizRequest.CreateWorkflowRequest(requestMessage, requester)); }
public ArchiveResult CreateArchiveItems(ArchiveItemDTO message, DR_Requester requester) { ArchiveResult result = new ArchiveResult(); try { // افزوده شدن نامه ها به آرشیو بعدا بررسی شود if (message.ID != 0) { throw new Exception(); } BizTableDrivedEntity bizTableDrivedEntity = new BizTableDrivedEntity(); if (!bizTableDrivedEntity.DataIsAccessable(requester, message.DatItem.TargetEntityID, new List <SecurityAction>() { SecurityAction.ArchiveEdit })) { throw new Exception("عدم دسترسی ثبت آرشیو"); } using (var context = new MyIdeaDataDBEntities()) { var dbArchiveItem = new ArchiveItem(); if (message.DatItem.DataItemID == 0) { dbArchiveItem.MyDataItemID = bizDataItem.GetOrCreateDataItem(message.DatItem); message.DatItem.DataItemID = dbArchiveItem.MyDataItemID; } else { dbArchiveItem.MyDataItemID = message.DatItem.DataItemID; } //var dataItem = bizDataItem.GetOrCreateDataItem(message.DatItem); //var archiveItemDataItem = new MyDataItem_ArchiveItem(); dbArchiveItem.FolderID = message.FolderID; dbArchiveItem.CreationDate = DateTime.Now; dbArchiveItem.UserID = requester.Identity; dbArchiveItem.Name = message.Name; var type = GetArchiveItemType(message); message.FileType = type.Item2; message.MainType = type.Item1; dbArchiveItem.FileType = (short)message.FileType; dbArchiveItem.MainType = (short)message.MainType; if (message.AttechedFile != null && message.AttechedFile.Content != null) { dbArchiveItem.FileSize = message.AttechedFile.Content.Count(); dbArchiveItem.FileRepository1 = bizFileRepository.ToFileRepository(context, message.AttechedFile); } SetPossibleThumbnail(context, dbArchiveItem, message.MainType, message.FileType, message.AttechedFile.Content, message.AttechedFile.FileName); //if (!hasThumbnail) //{ // dbArchiveItem.ThumbnailFileRepositoryID = null; // // dbArchiveItem.FileRepository1 = null; //} foreach (var tagid in message.TagIDs) { dbArchiveItem.ArchiveItem_Tag.Add(new ArchiveItem_Tag() { TagID = tagid }); } context.ArchiveItem.Add(dbArchiveItem); context.SaveChanges(); message.ID = dbArchiveItem.ID; result.Result = true; //انتیتی فرمورک قاطی داره رابطه فایل را برای تامبنیل هم میزاره //context.SaveChanges(); } } catch (Exception ex) { result.Result = false; result.Message = ex.Message; } finally { var logResult = bizLogManager.AddLog(GetCreateItemDataLog(message, result.Message), requester); if (!string.IsNullOrEmpty(logResult)) { result.Message += (!string.IsNullOrEmpty(result.Message) ? Environment.NewLine : "") + "خطا در ثبت لاگ" + " , " + logResult; } } return(result); }