コード例 #1
0
ファイル: FamilyGraph.cs プロジェクト: ra0van/Geektrust
        private void AddSpouseRelationship(RelationshipDTO edge)
        {
            Relationships sourcePersonRelationships, targetPeopleRelationships;

            if (!Families.TryGetValue(edge.SourcePerson, out sourcePersonRelationships))
            {
                sourcePersonRelationships = new Relationships();
                Families.Add(edge.SourcePerson, sourcePersonRelationships);
            }
            if (!Families.TryGetValue(edge.TargetPerson, out targetPeopleRelationships))
            {
                targetPeopleRelationships = new Relationships();
                Families.Add(edge.TargetPerson, targetPeopleRelationships);
            }

            if (targetPeopleRelationships.Spouse == null && sourcePersonRelationships.Spouse == null)
            {
                targetPeopleRelationships.AddSpouse(edge.SourcePerson);
                sourcePersonRelationships.AddSpouse(edge.TargetPerson);
            }
            else
            {
                throw new InvalidOperationException($"Cannot add spouse");
            }
        }
コード例 #2
0
        private static Relationship MapRelationshipDtoToRelationship(RelationshipDTO relationshipDTO)
        {
            var relationship = new Relationship()
            {
                Id                  = relationshipDTO.Id,
                DateTimeFrom        = relationshipDTO.DateTimeFrom,
                DateTimeTo          = relationshipDTO.DateTimeTo,
                PersonOneId         = relationshipDTO.PersonOneId,
                PersonTwoId         = relationshipDTO.PersonTwoId,
                RelationshipName    = relationshipDTO.RelationshipName,
                RelationShipDetails = relationshipDTO.RelationShipDetails,
                RelationshipTypeId  = relationshipDTO.RelationshipTypeId,
                RoleOneId           = relationshipDTO.RoleOneId,
                RoleTwoId           = relationshipDTO.RoleTwoId
            };

            if (relationshipDTO.Id.ToString().Length == 36)
            {
                relationship.Id = relationship.Id;
            }

            MetaData.AddMetaData(relationship);

            return(relationship);
        }
コード例 #3
0
        private void ISARelationshipCreateOrSelect(List <ISARelationshipDTO> list, RelationshipDTO relationship, Enum_RelationshipType targetRaltionshipType)
        {
            frmISARelationshipCreateSelect frm = new frmISARelationshipCreateSelect(list);

            frm.ISARelationshipSelected += (sender, e) => frm_ISARelationshipSelected(e.ISARelationship, relationship, targetRaltionshipType);
            MyProjectManager.GetMyProjectManager.ShowDialog(frm, "frmISARelationshipCreateSelect");
        }
コード例 #4
0
        public async Task <IActionResult> UpdateStatus([FromBody] RelationshipDTO updateStatus)
        {
            if (updateStatus.Email != null && (updateStatus.Status == 1 || updateStatus.Status == 2))
            {
                string       userId       = User.FindFirst(ClaimTypes.NameIdentifier).Value;
                Relationship relationship = new Relationship
                {
                    User_OneId    = userId,
                    User_TwoId    = _userRepo.GetUserIdFromEmail(updateStatus.Email),
                    Action_UserId = userId,
                    Status        = updateStatus.Status
                };
                if (_relationshipRepo.UpdateStatus(relationship))
                {
                    return(Ok(updateStatus.Status));
                }

                else
                {
                    return(BadRequest());
                }
            }
            else
            {
                return(BadRequest());
            }
        }
コード例 #5
0
        public List <RelationshipDTO> getAllRelation()
        {
            List <RelationshipDTO> result = new List <RelationshipDTO>();

            string queryString = "SELECT * FROM LOAIQUANHE";

            this.command.CommandText = queryString;

            using (DbDataReader reader = command.ExecuteReader())
            {
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        RelationshipDTO temp = new RelationshipDTO(
                            reader.GetInt32(0),
                            reader.GetString(1),
                            reader.GetBoolean(2));
                        result.Add(temp);
                    }
                }
                else
                {
                    return(result);
                }
            }

            return(result);
        }
コード例 #6
0
        public static RelationshipDTO ToRelationshipDTO(Relationship item)
        {
            RelationshipDTO rItem = new RelationshipDTO();

            rItem.ID   = item.ID;
            rItem.Name = item.Name;
            rItem.PairRelationshipID = item.RelationshipID;
            if (item.Relationship2 != null)
            {
                rItem.PairRelationship = item.Relationship2.Name;
            }
            rItem.Alias               = item.Alias;
            rItem.Entity1             = item.TableDrivedEntity.Name;
            rItem.Entity2             = item.TableDrivedEntity1.Name;
            rItem.RelationshipColumns = "";
            foreach (var relColumn in item.RelationshipColumns)
            {
                rItem.RelationshipColumns += (rItem.RelationshipColumns == "" ? "" : ",") + "(PK)" + item.TableDrivedEntity.Name + "." + relColumn.Column.Name + ">(FK)" + item.TableDrivedEntity1.Name + "." + relColumn.Column1.Name;
            }

            rItem.TypeEnum         = GetRelationshipType(item);
            rItem.TypeStr          = rItem.TypeEnum.ToString();
            rItem.DataEntryEnabled = item.DataEntryEnabled;
            rItem.SearchEnabled    = item.SearchEnabled;
            rItem.ViewEnabled      = item.ViewEnabled;
            rItem.Enabled          = item.Enabled;
            return(rItem);
        }
コード例 #7
0
        public async Task <IActionResult> Add([FromBody] RelationshipDTO invitation)
        {
            if (invitation.Email != null && (invitation.Status == 0 || invitation.Status == 3))
            {
                string userId = User.FindFirst(ClaimTypes.NameIdentifier).Value;

                Relationship relationship = new Relationship
                {
                    User_OneId    = userId,
                    User_TwoId    = _userRepo.GetUserIdFromEmail(invitation.Email),
                    Action_UserId = userId,
                    Status        = invitation.Status
                };
                if (_relationshipRepo.Add(relationship))
                {
                    return(Ok());
                }
                else
                {
                    return(BadRequest());
                }
            }
            else
            {
                return(BadRequest());
            }
        }
        public frmCreateManyToManyRelationship(int tableID)
        {
            InitializeComponent();
            TableID = tableID;


            dtgList.EnableFiltering = true;
            dtgList.Columns.Add(ControlHelper.GenerateGridviewColumn("ID", "ID", true, 100, GridViewColumnType.Text));
            dtgList.Columns.Add(ControlHelper.GenerateGridviewColumn("Name", "Name", false, 100, GridViewColumnType.Text));
            dtgList.Columns.Add(ControlHelper.GenerateGridviewColumn("PairRelationshipID", "Pair Relationship ID", true, 100, GridViewColumnType.Text));
            dtgList.Columns.Add(ControlHelper.GenerateGridviewColumn("PairRelationship", "Pair Relationship", true, 100, GridViewColumnType.Text));
            dtgList.Columns.Add(ControlHelper.GenerateGridviewColumn("Alias", "Alias", false, 100, GridViewColumnType.Text));
            dtgList.Columns.Add(ControlHelper.GenerateGridviewColumn("Entity1", "Entity1", true, 100, GridViewColumnType.Text));
            dtgList.Columns.Add(ControlHelper.GenerateGridviewColumn("Entity2", "Entity2", true, 100, GridViewColumnType.Text));

            using (var projectContext = new DataAccess.MyProjectEntities())
            {
                txtName.Text = projectContext.Table.First(x => x.ID == tableID).Name;

                var manyToOneList = projectContext.ManyToOneRelationshipType.Where(x => x.RelationshipType.Relationship.TableDrivedEntity.TableID == tableID);

                List <ManyToOne> ManyToOneList = new List <ManyToOne>();
                foreach (var item in manyToOneList)
                {
                    RelationshipDTO rItem = GeneralHelper.ToRelationshipDTO(item.RelationshipType.Relationship);
                    ManyToOneList.Add(GeneralHelper.ToManyToOne(rItem, item.RelationshipType.ManyToOneRelationshipType));
                }

                dtgList.DataSource = ManyToOneList;
            }
        }
コード例 #9
0
 public FKToPK(RelationshipDTO relationship, QueryItem pkQueryItem, int pkIdentityColumnID, bool isSelfTable)
 {
     Relationship       = relationship;
     PKQueryItem        = pkQueryItem;
     PKIdentityColumnID = pkIdentityColumnID;
     IsSelfTable        = isSelfTable;
 }
コード例 #10
0
ファイル: FamilyGraph.cs プロジェクト: ra0van/Geektrust
        private void AddParentRelationship(RelationshipDTO edge)
        {
            Relationships sourcePersonRelationships, targetPeopleRelationships;

            if (!Families.TryGetValue(edge.SourcePerson, out sourcePersonRelationships))
            {
                sourcePersonRelationships = new Relationships();
                Families.Add(edge.SourcePerson, sourcePersonRelationships);
            }
            if (!Families.TryGetValue(edge.TargetPerson, out targetPeopleRelationships))
            {
                targetPeopleRelationships = new Relationships();
                Families.Add(edge.TargetPerson, targetPeopleRelationships);
            }

            if (targetPeopleRelationships.CanAddParent(edge.SourcePerson))
            {
                targetPeopleRelationships.AddParent(edge.SourcePerson);
                sourcePersonRelationships.AddEdge(edge);
            }
            else
            {
                throw new InvalidOperationException($"Cannot add parents to {edge.TargetPerson.Name}");
            }
        }
コード例 #11
0
        private string OrginalRelationshipEntitiesExists(RelationshipDTO relationship, List <TableDrivedEntityDTO> originalEntities)
        {
            string result = "";

            if (!originalEntities.Any(x => x.Name == relationship.Entity1))
            {
                result += (result == "" ? "" : Environment.NewLine) + "موجودیت کلید اصلی به نام" + " " + relationship.Entity1 + " " + "وجود ندارد";
            }
            if (!originalEntities.Any(x => x.Name == relationship.Entity2))
            {
                result += (result == "" ? "" : Environment.NewLine) + "موجودیت کلید فرعی به نام" + " " + relationship.Entity2 + " " + "وجود ندارد";
            }

            if (result == "")
            {
                foreach (var col in relationship.RelationshipColumns)
                {
                    if (!originalEntities.Any(x => x.Name == relationship.Entity1 && x.Columns.Any(y => y.Name == col.FirstSideColumn.Name)))
                    {
                        result += (result == "" ? "" : Environment.NewLine) + "ستون" + " " + col.FirstSideColumn.Name + "در موجودیت" + " " + relationship.Entity1 + " " + "وجود ندارد";
                    }
                    if (!originalEntities.Any(x => x.Name == relationship.Entity2 && x.Columns.Any(y => y.Name == col.SecondSideColumn.Name)))
                    {
                        result += (result == "" ? "" : Environment.NewLine) + "ستون" + " " + col.FirstSideColumn.Name + "در موجودیت" + " " + relationship.Entity1 + " " + "وجود ندارد";
                    }
                }
            }

            return(result);
        }
コード例 #12
0
        public async Task <IActionResult> PutRelationship(Guid id, RelationshipDTO relationshipDTO)
        {
            if (id != relationshipDTO.Id)
            {
                return(BadRequest());
            }

            var relationship = MapRelationshipDtoToRelationship(relationshipDTO);

            _context.Entry(relationship).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!RelationshipExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(Ok(relationshipDTO));
        }
コード例 #13
0
ファイル: RelationshipBUS.cs プロジェクト: zannaghazi/NM-CNPM
 public bool AddRel(RelationshipDTO rel)
 {
     if (this.relationshipDAO.AddRelationship(rel))
     {
         return(true);
     }
     return(false);
 }
コード例 #14
0
        public async Task <IHttpActionResult> Update(Guid relationshipId, [FromBody] RelationshipDTO relationshipDTO)
        {
            if (relationshipDTO.RelationshipId != relationshipId)
            {
                return(BadRequest("Id mismatch"));
            }

            return(await Save(relationshipDTO));
        }
コード例 #15
0
        public async Task <IHttpActionResult> Insert([FromBody] RelationshipDTO relationshipDTO)
        {
            if (relationshipDTO.RelationshipId != Guid.Empty)
            {
                return(BadRequest("Invalid RelationshipId"));
            }

            return(await Save(relationshipDTO));
        }
コード例 #16
0
        /// <summary>
        /// /////////////////////////مشترک
        /// </summary>
        /// <param name="relationshipID"></param>
        /// <param name="editEntityArea"></param>
        /// <param name="parentRelationData"></param>
        /// <returns></returns>
        public ChildRelationshipInfo SerachDataFromParentRelationForChildDataView(RelationshipDTO relationship, I_EditEntityAreaOneData sourceEditEntityArea, I_EditEntityArea targetEditEntityArea, DP_DataRepository parentRelationData)
        {
            var requester = AgentUICoreMediator.GetAgentUICoreMediator.GetRequester();

            ChildRelationshipInfo childRelationshipInfo = null;

            childRelationshipInfo = parentRelationData.ChildRelationshipInfos.FirstOrDefault(x => x.Relationship.ID == relationship.ID);
            if (childRelationshipInfo == null)
            {
                childRelationshipInfo = parentRelationData.AddChildRelationshipInfo(relationship);
            }
            else
            {
                throw new Exception("Asd");
            }

            //سکوریتی داده اعمال میشود

            var searchDataItem = relationshipManager.GetSecondSideSearchDataItemByRelationship(parentRelationData, relationship.ID);

            if (searchDataItem != null)
            {
                // DR_SearchEditRequest request = new DR_SearchEditRequest(requester, searchDataItem, targetEditEntityArea.AreaInitializer.SecurityReadOnly, true);
                DR_SearchEditRequest request = new DR_SearchEditRequest(requester, searchDataItem);
                var childFullData            = AgentUICoreMediator.GetAgentUICoreMediator.requestRegistration.SendSearchEditRequest(request).ResultDataItems;
                var countRequest             = new DR_SearchCountRequest(requester);
                countRequest.SearchDataItems        = searchDataItem;
                countRequest.Requester.SkipSecurity = true;
                var  count            = AgentUICoreMediator.GetAgentUICoreMediator.requestRegistration.SendSearchCountRequest(countRequest);
                bool secutrityImposed = false;
                if (count.ResultCount != childFullData.Count)
                {
                    secutrityImposed = true;
                }


                if (!secutrityImposed)
                {
                    foreach (var data in childFullData)
                    {
                        data.IsDBRelationship = true;
                        data.DataView         = GetDataView(data);
                        childRelationshipInfo.AddDataToChildRelationshipInfo(data, true);
                    }
                }
                else
                {
                    childRelationshipInfo.SecurityIssue = true;
                }
            }
            return(childRelationshipInfo);
            //foreach (var item in childFullData)
            //    searchedData.Add(new Tuple<DP_DataRepository, DP_DataView>(item, null));

            //return AddEditSearchData(searchedData, editEntityArea);
        }
コード例 #17
0
 public RelationshipMenu(RelationshipDTO relationship, int entityID, string entityName, string tooltip, string group1, string group2)
 {
     RelType      = DataReportRelationshipType.Relationship;
     Relationship = relationship;
     EntityID     = entityID;
     EntityName   = entityName;
     Tooltip      = tooltip;
     Group1       = group1;
     Group2       = group2;
 }
コード例 #18
0
        public async Task <ActionResult <RelationshipDTO> > PostRelationship(RelationshipDTO relationshipDTO)
        {
            var relationship = MapRelationshipDtoToRelationship(relationshipDTO);

            _context.Relationships.Add(relationship);

            var id = await _context.SaveChangesAsync();

            return(CreatedAtAction("GetRelationship", new { id }, relationshipDTO));
        }
        private RadTreeViewItem AddRelationshipNode(ItemCollection collection, RelationshipDTO relationship)
        {
            var node = new RadTreeViewItem();

            node.DataContext = relationship;
            node.Header      = GetNodeHeader(relationship.Entity2, "Relationship");
            node.ToolTip     = relationship.ID + (string.IsNullOrEmpty(relationship.Alias) ? "" : Environment.NewLine + relationship.Alias) + (string.IsNullOrEmpty(relationship.Name) ? "" : Environment.NewLine + relationship.Name);
            collection.Add(node);
            return(node);
        }
コード例 #20
0
        private RadTreeViewItem AddRelationshipNode(ItemCollection collection, RelationshipDTO relationship)
        {
            var node = GetNode();

            node.DataContext = relationship;
            node.Header      = GetNodeHeader(relationship.Entity2, DatabaseObjectCategory.Relationship);
            node.ToolTip     = relationship.ID + "_" + (string.IsNullOrEmpty(relationship.Alias) ? relationship.Name : relationship.Alias);
            collection.Add(node);
            _AllItems.Add(node);
            return(node);
        }
コード例 #21
0
        //public bool ShouldWriteUpdateQuery { get; set; }

        //public void OnUpdated()
        //{
        //    if (Updated != null)
        //        Updated(this, null);
        //}

        public ChildRelationshipInfo AddChildRelationshipInfo(RelationshipDTO relationship)
        {
            var childRelationshipInfo = new ChildRelationshipInfo()
            {
                Relationship = relationship, SourceData = this
            };

            ChildRelationshipInfos.Add(childRelationshipInfo);
            CheckChildRelationshipInfoChangeMonitor();
            return(childRelationshipInfo);
        }
コード例 #22
0
 void customMenuItem_Click(object sender, RelationshipDTO relationship)
 {
     //try
     //{
     bizRelationshipConverter.ConvertRelationship(relationship, (Enum_RelationshipType)(sender as RadMenuItem).Tag);
     //}
     //catch (Exception ex)
     //{
     //    MessageBox.Show(ex.Message);
     //}
 }
コード例 #23
0
        public static ManyToOne ToManyToOne(RelationshipDTO rItem, ManyToOneRelationshipType manyToOneRelationshipType)
        {
            Mapper.Initialize(cfg => cfg.CreateMap <RelationshipDTO, ManyToOne>());
            var result = AutoMapper.Mapper.Map <RelationshipDTO, ManyToOne>(rItem);

            result.IsOneSideTransferable      = manyToOneRelationshipType.RelationshipType.IsOtherSideTransferable;
            result.IsOneSideCreatable         = manyToOneRelationshipType.RelationshipType.IsOtherSideCreatable;
            result.IsOneSideMadatory          = manyToOneRelationshipType.RelationshipType.IsOtherSideMandatory;
            result.IsOneSideDirectlyCreatable = manyToOneRelationshipType.RelationshipType.IsOtherSideDirectlyCreatable;

            return(result);
        }
コード例 #24
0
        private void AddTabPageRelationship(EntityUICompositionDTO tabConrol, RelationshipDTO relationship, List <EntityUICompositionDTO> result)
        {
            var tabPage = new EntityUICompositionDTO();

            tabPage.ObjectCategory   = DatabaseObjectCategory.TabPage;
            tabPage.ParentItem       = tabConrol;
            tabPage.Title            = relationship.Alias;
            tabPage.TabPageUISetting = new TabPageUISettingDTO()
            {
                InternalColumnsCount = 4
            };
            result.Add(tabPage);
            AddRelationshipUICompositionItem(tabPage, result, relationship, 0);
        }
        private void GetRelationship(int relatoinshipID)
        {
            var relationship = bizRelationship.GetRelationship(relatoinshipID);

            if (relationship.MastertTypeEnum == Enum_MasterRelationshipType.FromForeignToPrimary)
            {
                Message = bizRelationship.GetRelationship(relationship.PairRelationshipID);
            }
            else
            {
                Message = relationship;
            }
            ShowMessage();
        }
コード例 #26
0
        private RelationshipDTO OrginalRelationshipExists(RelationshipDTO relationship, List <RelationshipDTO> originalRelationships)
        {
            List <string> firstSideSecondSideColumnNames = relationship.RelationshipColumns.Select(x => x.FirstSideColumn.Name + ">" + x.SecondSideColumn.Name).ToList();

            if (originalRelationships.Any(x => x.Entity1 == relationship.Entity1 && x.Entity2 == relationship.Entity2 &&
                                          x.RelationshipColumns.All(z => firstSideSecondSideColumnNames.Contains(z.FirstSideColumn.Name + ">" + z.SecondSideColumn.Name)) &&
                                          firstSideSecondSideColumnNames.All(z => x.RelationshipColumns.Any(y => z == y.FirstSideColumn.Name + ">" + y.SecondSideColumn.Name))))
            {
                return(originalRelationships.First(x => x.Entity1 == relationship.Entity1 && x.Entity2 == relationship.Entity2 &&
                                                   x.RelationshipColumns.All(z => firstSideSecondSideColumnNames.Contains(z.FirstSideColumn.Name + ">" + z.SecondSideColumn.Name)) &&
                                                   firstSideSecondSideColumnNames.All(z => x.RelationshipColumns.Any(y => z == y.FirstSideColumn.Name + ">" + y.SecondSideColumn.Name))));
            }
            return(null);
        }
コード例 #27
0
        public IActionResult Details(int id)
        {
            var foundRelationship = _db.RelationshipTypes.Find(id);

            if (foundRelationship == null)
            {
                return(NoContent());
            }

            //map and return DTO
            RelationshipDTO relationshipDTO = new RelationshipDTO();

            relationshipDTO.Description = foundRelationship.Description;

            return(Ok(relationshipDTO));
        }
コード例 #28
0
        private void GenereateDefaultSearchColumnsFromRelationship(RelationshipDTO relationship, List <TableDrivedEntityDTO> allEntities, List <EntitySearchColumnsDTO> list, string relationshipPath, List <RelationshipDTO> relationships)
        {
            TableDrivedEntityDTO entity = allEntities.First(x => x.ID == relationship.EntityID2);
            var skipRelColumnIDs        = relationship.RelationshipColumns.Select(x => x.SecondSideColumn.ID).ToList();

            foreach (var column in entity.Columns.Where(x => x.PrimaryKey && !skipRelColumnIDs.Contains(x.ID)))
            {
                AddSearchColumn(list, column);
            }
            List <ColumnDTO> simplecollumns = GetSimpleSearchColumns(entity);

            foreach (var column in simplecollumns)
            {
                AddSearchColumn(list, column, relationshipPath, relationships);
            }
            AddRelationshipDefaultColumns(entity, allEntities, list, relationshipPath, relationships);
        }
コード例 #29
0
        public void SelectFromParent(bool isCalledFromDataView, RelationshipDTO relationship, DP_DataRepository parentDataItem, Dictionary <int, string> colAndValues)
        {
            IsCalledFromDataView = isCalledFromDataView;
            DP_SearchRepository searchItems = new DP_SearchRepository(AreaInitializer.EntityID);

            foreach (var item in relationship.RelationshipColumns)
            {
                if (colAndValues.ContainsKey(item.FirstSideColumnID))
                {
                    searchItems.Phrases.Add(new SearchProperty()
                    {
                        ColumnID = item.SecondSideColumnID, Value = colAndValues[item.FirstSideColumnID]
                    });
                }
            }
            SearchConfirmed(searchItems, true);
        }
コード例 #30
0
        public void SelectFromParent(bool isCalledFromDataView, RelationshipDTO relationship, DP_DataRepository parentDataItem, List <Tuple <int, string> > colAndValues)
        {
            IsCalledFromDataView = isCalledFromDataView;
            DP_SearchRepository searchItems = new DP_SearchRepository(AreaInitializer.EntityID);

            foreach (var item in relationship.RelationshipColumns)
            {
                var sentCol = colAndValues.FirstOrDefault(x => x.Item1 == item.FirstSideColumnID);
                if (sentCol != null)
                {
                    searchItems.Phrases.Add(new SearchProperty()
                    {
                        ColumnID = item.SecondSideColumnID, Value = sentCol.Item2
                    });
                }
            }
            SearchConfirmed(searchItems, false, true);
        }