//public bool EntityHasState(DP_DataRepository dataItem, int stateID) //{ // if (dataItem != null) // using (var projectContext = new DataAccess.MyProjectEntities()) // { // var foundDataItem = GetDataItem(projectContext, dataItem); // if (foundDataItem != null) // { // return foundDataItem.DataItem_EntityState.Any(x => x.TableDrivedEntityStateID == stateID); // } // } // return false; //} //public bool EntityHasState(DP_DataRepository dataItem, string state) //{ // using (var projectContext = new DataAccess.MyProjectEntities()) // { // var foundDataItem = GetDataItem(projectContext, dataItem); // if (foundDataItem != null) // { // return foundDataItem.DataItem_EntityState.Any(x => x.TableDrivedEntityState.Title == state); // } // } // return false; //} //private DataItem GetDataItem(DataAccess.MyProjectEntities projectContext, DP_DataRepository dataItem) //{ // if (dataItem != null) // { // var keyColumns = dataItem.KeyProperties; // if (keyColumns.Any()) // { // var dataItems = projectContext.DataItem.Where(x => x.TableDrivedEntityID == dataItem.TargetEntityID); // foreach (var keyColumn in keyColumns) // dataItems = dataItems.Where(x => x.DataItemKeyColumns.Any(y => y.ColumnID == keyColumn.ColumnID && y.Value == keyColumn.Value)); // return dataItems.FirstOrDefault(); // } // } // return null; //} public EntityStateDTO ToEntityStateDTO(DR_Requester requester, TableDrivedEntityState item, bool withDetails) { EntityStateDTO result = new EntityStateDTO(); result.TableDrivedEntityID = item.TableDrivedEntityID; //result.Preserve = item.Preserve; //result.ActionActivityID = item.ActionActivityID ?? 0; //if (result.ActionActivityID != 0 && withDetails) //{ // var bizActionActivity = new BizActionActivity(); // result.ActionActivity = bizActionActivity.GetActionActivity(item.ActionActivityID.Value); //} if (item.ConditionOperator != null) { result.ConditionOperator = (AndOREqualType)item.ConditionOperator; } var bizActionActivity = new BizUIActionActivity(); foreach (var actionActivity in item.EntityState_UIActionActivity) { result.ActionActivities.Add(bizActionActivity.ToActionActivityDTO(actionActivity.UIActionActivity, withDetails)); } result.ID = item.ID; result.Title = item.Title; foreach (var dbCondition in item.TableDrivedEntityStateCondition) { result.StateConditions.Add(ToEntityStateConditionDTO(requester, dbCondition, withDetails)); } return(result); }
public void HandleDelete(int id, int processId, string entityTypeName) { var entityState = new EntityStateDTO { ID = id, EntityStateID = id, ProcessID = processId, EntityTypeName = entityTypeName }; TransportMock.HandleMessageFromTp(Profile, new EntityStateDeletedMessage { Dto = entityState }); }
//internal void CalculateFormula(EditEntityArea editEntityArea, ColumnControl columnControl, DP_DataRepository data) //{ // var result = CalculateFormula(editEntityArea, columnControl.Column.CustomFormula, data); // editEntityArea.ShowTypePropertyControlValue(data, columnControl, result.ToString()); //} internal object CalculateState(I_EditEntityArea editEntityArea, EntityStateDTO state, DP_DataRepository data) { // List<DP_DataRepository> mainItems = new List<DP_DataRepository>(); // mainItems.Add(data); // List<DP_DataRepository> dataItems = new List<DP_DataRepository>(); // dataItems.Add(data); //if (state.FormulaID != 0) //{ // GetDataItems(dataItems, editEntityArea, data, state.Formula.FormulaItems); //} return(AgentUICoreMediator.GetAgentUICoreMediator.StateFunctionManager.CalculateFormula(state.ID, data, AgentUICoreMediator.GetAgentUICoreMediator.GetRequester())); }
public static EntityStateEN Convert(EntityStateDTO dto) { EntityStateEN newinstance = null; try { if (dto != null) { newinstance = new EntityStateEN(); newinstance.Id = dto.Id; if (dto.VirtualEntity_oid != -1) { MoSIoTGenNHibernate.CAD.MosIoT.IEntityCAD entityCAD = new MoSIoTGenNHibernate.CAD.MosIoT.EntityCAD(); newinstance.VirtualEntity = entityCAD.ReadOIDDefault(dto.VirtualEntity_oid); } if (dto.OriginOperations_oid != null) { MoSIoTGenNHibernate.CAD.MosIoT.IEntityOperationCAD entityOperationCAD = new MoSIoTGenNHibernate.CAD.MosIoT.EntityOperationCAD(); newinstance.OriginOperations = new System.Collections.Generic.List <MoSIoTGenNHibernate.EN.MosIoT.EntityOperationEN>(); foreach (int entry in dto.OriginOperations_oid) { newinstance.OriginOperations.Add(entityOperationCAD.ReadOIDDefault(entry)); } } if (dto.TargetOperations_oid != null) { MoSIoTGenNHibernate.CAD.MosIoT.IEntityOperationCAD entityOperationCAD = new MoSIoTGenNHibernate.CAD.MosIoT.EntityOperationCAD(); newinstance.TargetOperations = new System.Collections.Generic.List <MoSIoTGenNHibernate.EN.MosIoT.EntityOperationEN>(); foreach (int entry in dto.TargetOperations_oid) { newinstance.TargetOperations.Add(entityOperationCAD.ReadOIDDefault(entry)); } } newinstance.Type = dto.Type; newinstance.Name = dto.Name; newinstance.Description = dto.Description; } } catch (Exception ex) { throw ex; } return(newinstance); }
public static EntityState ConvertState(EntityStateDTO state) { switch (state) { case EntityStateDTO.Added: return EntityState.Added; case EntityStateDTO.Modified: return EntityState.Modified; case EntityStateDTO.Deleted: return EntityState.Deleted; default: return EntityState.Unchanged; } }
public static EntityState ConvertState(EntityStateDTO state) { switch (state) { case EntityStateDTO.Added: return(EntityState.Added); case EntityStateDTO.Modified: return(EntityState.Modified); case EntityStateDTO.Deleted: return(EntityState.Deleted); default: return(EntityState.Unchanged); } }
public frmEntityStates(int entityID, int entityStateID) { InitializeComponent(); EntityID = entityID; EntityStateID = entityStateID; SetActionActivities(); cmbConditionOperator.ItemsSource = Enum.GetValues(typeof(AndOREqualType)).Cast <AndOREqualType>(); if (EntityStateID == 0) { StateDTO = new EntityStateDTO(); ShowStateDTO(); } else { GetEntityState(EntityStateID); } }
public StateResult GetStateResult(EntityStateDTO state, DP_DataRepository mainDataItem, DR_Requester requester) { StateResult result = new StateResult(); bool hasAnyOfConditions = false; bool hasAllOfConditions = true; foreach (var condition in state.StateConditions) { var conditionResult = GetConditionResult(condition, mainDataItem, requester); if (conditionResult) { hasAnyOfConditions = true; } else { hasAllOfConditions = false; } } if (state.ConditionOperator == AndOREqualType.And) { result.Result = hasAllOfConditions; } else if (state.ConditionOperator == AndOREqualType.Or) { result.Result = hasAnyOfConditions; } else if (state.ConditionOperator == AndOREqualType.NotAnd) { result.Result = !hasAllOfConditions; } else if (state.ConditionOperator == AndOREqualType.NotOr) { result.Result = !hasAnyOfConditions; } return(result); }
private void btnNew_Click(object sender, RoutedEventArgs e) { StateDTO = new EntityStateDTO(); ShowStateDTO(); }
//public void ClearAndSaveStates(DataItemState item) //{ // using (var projectContext = new DataAccess.MyProjectEntities()) // { // var foundDataItem = GetDataItem(projectContext, item.DataItem); // if (foundDataItem != null) // { // foundDataItem = new DataItem() { TableDrivedEntityID = item.DataItem.TargetEntityID }; // var keyColumns = item.DataItem.KeyProperties; // foreach (var keyColumn in keyColumns) // foundDataItem.DataItemKeyColumns.Add(new DataItemKeyColumns() { ColumnID = keyColumn.ColumnID, Value = keyColumn.Value }); // projectContext.DataItem.Add(foundDataItem); // } // while (foundDataItem.DataItem_EntityState.Any()) // projectContext.DataItem_EntityState.Remove(foundDataItem.DataItem_EntityState.First()); // foreach (var state in item.States.Where(x => x.Preserve)) // foundDataItem.DataItem_EntityState.Add(new DataItem_EntityState() { TableDrivedEntityStateID = state.ID }); // projectContext.SaveChanges(); // } //} public int UpdateEntityStates(EntityStateDTO EntityState) { using (var projectContext = new DataAccess.MyProjectEntities()) { //if (EntityState.RelationshipTailID != 0) //{ // var stateTail = projectContext.EntityRelationshipTail.First(x => x.ID == EntityState.RelationshipTailID); // foreach (var actionActivity in EntityState.ActionActivities) // { // var actionActivityEntity = projectContext.UIActionActivity.First(x => x.ID == actionActivity.ID); // if (actionActivityEntity.UIEnablityDetails.Any(x => stateTail.RelationshipPath == x.RelationshipID.ToString() || // stateTail.RelationshipPath.StartsWith(x.RelationshipID.ToString()))) // { // var actionItem = actionActivityEntity.UIEnablityDetails.First(x => stateTail.RelationshipPath == x.RelationshipID.ToString() || // stateTail.RelationshipPath.StartsWith(x.RelationshipID.ToString())); // var relationshipAlias = actionItem.Relationship.Alias; // throw new Exception("امکان استفاده از رابطه" + " " + relationshipAlias + " " + "در اقدام" + " " // + actionItem.UIActionActivity.Title + " " + "به علت وجود اشتراک با رشته رابطه وضعیت وجود ندارد"); // //زیرا تناقض است. از طرفی رشته رابطه جزو خصوصیات موجودیت برای تعیین وضعیت هست و از طرفی میخواهیم فقط خواندنی و یا مخفی کنیم // //اگر در لود شدن فرمهای ورود اطلاعات فرض کنیم رشته رابطه پرنت و خود موجودیت فرم چایلد باشد منطقی است اما اگر // // فرض کنیم که رشته رابطه چایلد باشد و موجودیت اصلی خود این موجودیات باشد آنوقت برای تغییر رابطه باید به صورت مصنوعی رشته رابطه را تغییر دهیم تا رابطه قابل اصلاح شود // // آنوقت با تغییر رابطه دیگر تغییراتی که در رشته رابطه یا وضعیت داده ایم هیچوقت ثبت نخواهد شد چون ریموو شده اند // // پس بهتر است اشتراکی وجود نداشته باشد و وضعیت آزادانه تغییر کند // } // } //} foreach (var condition in EntityState.StateConditions) { if (condition.RelationshipTailID == 0 && condition.ColumnID != 0) { foreach (var actionActivity in EntityState.ActionActivities) { var actionActivityEntity = projectContext.UIActionActivity.First(x => x.ID == actionActivity.ID); if (actionActivityEntity.UIEnablityDetails.Any(x => x.ColumnID == condition.ColumnID)) { var actionItem = actionActivityEntity.UIEnablityDetails.First(x => x.ColumnID == condition.ColumnID); var columnAlias = actionItem.Column.Alias; throw new Exception("امکان استفاده از ستون" + " " + columnAlias + " " + "در اقدام" + " " + actionItem.UIActionActivity.Title + " " + "به علت همسان بودن با ستون تعیین وضعیت وجود ندارد"); //ستون تعیین وضعیت نمیتواند خود مخفی یا فقط خواندنی باشد زیرا دیگر نمی تواند مقدار بگیرد // باید دسترسی مخصوص در صورت نیاز برای این ستون تعریف شود } } } } var dbEntityState = projectContext.TableDrivedEntityState.FirstOrDefault(x => x.ID == EntityState.ID); if (dbEntityState == null) { dbEntityState = new DataAccess.TableDrivedEntityState(); } //if (EntityState.ActionActivityID != 0) // dbEntityState.ActionActivityID = EntityState.ActionActivityID; //else // dbEntityState.ActionActivityID = null; dbEntityState.TableDrivedEntityID = EntityState.TableDrivedEntityID; dbEntityState.ID = EntityState.ID; // dbEntityState.Preserve = EntityState.Preserve; dbEntityState.Title = EntityState.Title; dbEntityState.ConditionOperator = (short)EntityState.ConditionOperator; while (dbEntityState.EntityState_UIActionActivity.Any()) { //dbEntityState.EntityState_ActionActivity.Remove(dbEntityState.EntityState_ActionActivity.First()); projectContext.EntityState_UIActionActivity.Remove(dbEntityState.EntityState_UIActionActivity.First()); } foreach (var actionActivity in EntityState.ActionActivities) { dbEntityState.EntityState_UIActionActivity.Add(new EntityState_UIActionActivity() { UIActionActivityID = actionActivity.ID }); } List <TableDrivedEntityStateCondition> removeList = new List <TableDrivedEntityStateCondition>(); foreach (var item in dbEntityState.TableDrivedEntityStateCondition) { if (!EntityState.StateConditions.Any(x => x.ID == item.ID)) { removeList.Add(item); } } foreach (var item in removeList) { while (item.TableDrivedEntityStateConditionValues.Any()) { item.TableDrivedEntityStateConditionValues.Remove(item.TableDrivedEntityStateConditionValues.First()); } while (item.TableDrivedEntityStateConditionSecuritySubject.Any()) { item.TableDrivedEntityStateConditionSecuritySubject.Remove(item.TableDrivedEntityStateConditionSecuritySubject.First()); } projectContext.TableDrivedEntityStateCondition.Remove(item); } foreach (var condition in EntityState.StateConditions) { TableDrivedEntityStateCondition dbCondition = null; if (condition.ID == 0) { dbCondition = new TableDrivedEntityStateCondition(); dbEntityState.TableDrivedEntityStateCondition.Add(dbCondition); } else { dbCondition = projectContext.TableDrivedEntityStateCondition.First(x => x.ID == condition.ID); } if (condition.FormulaID != 0) { dbCondition.FormulaID = condition.FormulaID; } else { dbCondition.FormulaID = null; } if (condition.ColumnID != 0) { dbCondition.ColumnID = condition.ColumnID; if (condition.RelationshipTailID == 0) { dbCondition.EntityRelationshipTailID = null; } else { dbCondition.EntityRelationshipTailID = condition.RelationshipTailID; } } else { dbCondition.ColumnID = null; dbCondition.EntityRelationshipTailID = null; } dbCondition.Title = condition.Title; dbCondition.ValueOpoerator = (short)condition.EntityStateOperator; dbCondition.SecuritySubjectInOrNotIn = (short)condition.SecuritySubjectInORNotIn; while (dbCondition.TableDrivedEntityStateConditionValues.Any()) { projectContext.TableDrivedEntityStateConditionValues.Remove(dbCondition.TableDrivedEntityStateConditionValues.First()); } foreach (var nItem in condition.Values) { dbCondition.TableDrivedEntityStateConditionValues.Add(new TableDrivedEntityStateConditionValues() { Value = nItem.Value, ReservedValue = (short)nItem.SecurityReservedValue }); } while (dbCondition.TableDrivedEntityStateConditionSecuritySubject.Any()) { projectContext.TableDrivedEntityStateConditionSecuritySubject.Remove(dbCondition.TableDrivedEntityStateConditionSecuritySubject.First()); } foreach (var nItem in condition.SecuritySubjects) { dbCondition.TableDrivedEntityStateConditionSecuritySubject.Add(new TableDrivedEntityStateConditionSecuritySubject() { SecuritySubjectID = nItem.SecuritySubjectID }); //, SecuritySubjectOperator = (short)nItem.SecuritySubjectOperator }); } } if (dbEntityState.ID == 0) { projectContext.TableDrivedEntityState.Add(dbEntityState); } projectContext.SaveChanges(); return(dbEntityState.ID); } }
//public StateResult CalculateState(int stateID, DP_DataRepository mainDataItem, DR_Requester requester) //{ // StateHandler handler = new StateHandler(); // return handler.GetStateResult(stateID, mainDataItem,requester); //} public StateResult CalculateState(EntityStateDTO state, DP_DataRepository mainDataItem, DR_Requester requester) { StateHandler handler = new StateHandler(); return(handler.GetStateResult(state, mainDataItem, requester)); }
public void ChangeState(AssignableSimpleDTO assignable, EntityStateDTO entityState) { if (!_connected) { throw new InvalidOperationException("Not connected"); } try { _webServices.ChangeState(assignable, entityState); } catch (Exception ex) { _env.Trace.WriteLine(ex); _env.ShowMessageBox(ex.Message, "Could not change state", MessageBoxButtons.OK, MessageBoxIcon.Error); Disconnect(); return; } _env.Trace.WriteLine(string.Format("State changed to {0}", entityState.Name)); Refresh(); }
public void ChangeState(AssignableSimpleDTO assignable, EntityStateDTO entityState) { // }
public ToDoListItemTag(AssignableSimpleDTO assignable, EntityStateDTO entityState) { _assignable = assignable; _entityState = entityState; }