/// <summary>
        /// 添加关系
        /// </summary>
        /// <param name="consumerDirectoryName"></param>
        /// <param name="providerDirectoryName"></param>
        public void AddRelation(string consumerDirectoryName, string[] providerDirectoryName)
        {
            var consumerDirectory = RepositoryRegistry.Directory.FindBy(consumerDirectoryName);
            if (string.IsNullOrEmpty(consumerDirectoryName) || providerDirectoryName == null || providerDirectoryName.Length == 0)
            {
                return;
            }

            string newMd5;
            bool isSame = new RelationShipCheckService().IsSame(providerDirectoryName,consumerDirectory.UsedServiceMd5, out newMd5);
            if (isSame)
            {
                return;
            }

            var providerDirectorys = RepositoryRegistry.Directory.FindBy(providerDirectoryName);
            if(providerDirectorys.Count() != providerDirectoryName.Length)
            {
                return;
            }

            var list = new List<Model.Relationship>();
            foreach (var item in providerDirectorys)
            {
                var consumerInfo = new ConsumerInfo(consumerDirectory.Name, consumerDirectory.Id);
                var providerInfo = new ProviderInfo(item.Name, item.Id);
                var relationship = new Model.Relationship(consumerInfo, providerInfo);
                list.Add(relationship);
            }
            RepositoryRegistry.Relationship.Add(list);

            this.PublishEvent("AddRelation", new UpdateMD5DomainEvent(consumerDirectory.Id, newMd5));
        }
Exemplo n.º 2
0
 private void OnRelationshipsCreated(Model.Relationship Relationship)
 {
     if (this.RelationshipsCreated != null)
     {
         RelationshipsCreated(this, new RelationshipsCreatedEventArgs(Relationship));
     }
 }
Exemplo n.º 3
0
        internal void Remove(Model.Item Item)
        {
            if (Item is Relationship)
            {
                Model.Relationship relationship = (Model.Relationship)Item;

                if (this.ActionsCache.ContainsKey(relationship.Source.ID))
                {
                    Action sourceaction = this.ActionsCache[relationship.Source.ID];
                    sourceaction.RemoveRelationship(relationship.ID);

                    if (this.ActionsCache.ContainsKey(relationship.ID))
                    {
                        this.ActionsCache.Remove(relationship.ID);
                    }
                }
            }
            else
            {
                if (this.ActionsCache.ContainsKey(Item.ID))
                {
                    this.ActionsCache.Remove(Item.ID);
                }
            }
        }
Exemplo n.º 4
0
 private void RelationshipAssert(Model.Relationship expected, Model.Relationship actual)
 {
     Assert.AreEqual(expected.ConsumerInfo.ConsumerDirectoryId, actual.ConsumerInfo.ConsumerDirectoryId);
     Assert.AreEqual(expected.ConsumerInfo.ConsumerName, actual.ConsumerInfo.ConsumerName);
     Assert.AreEqual(expected.Provider.ProviderDirectoryId, actual.Provider.ProviderDirectoryId);
     Assert.AreEqual(expected.Provider.ProviderName, actual.Provider.ProviderName);
 }
Exemplo n.º 5
0
        private void CreateRelationship()
        {
            if (this.Binding != null)
            {
                if (this.Parent.Transaction != null)
                {
                    if (this.RelationshipType.Related != null)
                    {
                        if (this.Dialog == null)
                        {
                            // Create Search Dialog
                            this.Dialog = new Dialogs.Search(this, this.Query.Relationship(this.RelationshipType).Property("related_id").Store);

                            // Watch for Selection
                            this.Dialog.Grid.ItemsSelected += Grid_ItemsSelected;
                        }

                        // Open Search Dialog
                        this.Dialog.Open = true;
                    }
                    else
                    {
                        // Create null Relationship
                        Model.Relationship relationship = (Model.Relationship)((Model.Item) this.Binding).Relationships(this.RelationshipType).Create(this.Parent.Transaction);
                    }
                }
            }
        }
Exemplo n.º 6
0
        protected void LoadRows()
        {
            // Clear current Grid Selection
            this.Grid.SelectedRows.Clear();

            if (this.Binding != null)
            {
                this.SetColumnEditing();

                Model.Item        item         = (Model.Item) this.Binding;
                List <Model.Item> currentitems = item.Relationships(this.RelationshipType).CurrentItems();

                // Set Number of Rows in Grid
                this.Grid.NoRows = currentitems.Count();

                // Load Current Items into Grid
                for (int i = 0; i < this.Grid.NoRows; i++)
                {
                    Model.Relationship relationship = (Model.Relationship)currentitems[i];

                    int j = 0;

                    foreach (Model.PropertyType proptype in this.PropertyTypes)
                    {
                        Model.Property property = null;

                        if (relationship.ItemType.Equals(proptype.Type))
                        {
                            property = relationship.Property(proptype);
                        }
                        else
                        {
                            if (relationship.Related != null)
                            {
                                property = relationship.Related.Property(proptype);
                            }
                        }

                        if (property != null)
                        {
                            this.Grid.Rows[i].Cells[j].Binding = property;
                        }
                        else
                        {
                            this.Grid.Rows[i].Cells[j].SetValue(null);
                        }

                        j++;
                    }
                }
            }
            else
            {
                // Clear all Rows
                this.Grid.NoRows = 0;
            }

            this.UpdateCommandsCanExecute();
        }
 public void Add(Model.Relationship relationship)
 {
     using (var conn = Database.Open())
     {
         var tuple = RelationshipSql.Add(relationship);
         conn.ExecuteScalar <int>(tuple.Item1, (object)tuple.Item2);
     }
 }
        public static Tuple <string, dynamic> Update(Model.Relationship item)
        {
            string sql = "update register_relation set consumer_id=@consumer_id,consumer_name=@consumer_name,provider_id=@provider_id,provider_name=@provider_name where id=@id";

            return(new Tuple <string, dynamic>(sql, new
            {
                consumer_id = item.ConsumerInfo.ConsumerDirectoryId,
                consumer_name = item.ConsumerInfo.ConsumerName,
                provider_id = item.Provider.ProviderDirectoryId,
                provider_name = item.Provider.ProviderName
            }));
        }
        public static Tuple <string, dynamic> Add(Model.Relationship item)
        {
            const string sql = @"insert into register_relation(consumer_id,consumer_name,provider_id,provider_name,create_date) 
                                values (@consumer_id,@consumer_name,@provider_id,@provider_name,@CreateDate)";

            return(new Tuple <string, dynamic>(sql, new
            {
                consumer_id = item.ConsumerInfo.ConsumerDirectoryId,
                consumer_name = item.ConsumerInfo.ConsumerName,
                provider_id = item.Provider.ProviderDirectoryId,
                provider_name = item.Provider.ProviderName,
                CreateDate = item.CreateDate
            }));
        }
Exemplo n.º 10
0
        internal void Add(String Name, Model.Item Item)
        {
            if (Item is Relationship)
            {
                Model.Relationship relationship = (Model.Relationship)Item;

                if (this.ActionsCache.ContainsKey(relationship.Source.ID))
                {
                    Action sourceaction = this.ActionsCache[relationship.Source.ID];

                    if (this.ActionsCache.ContainsKey(relationship.ID))
                    {
                        this.ActionsCache[relationship.ID].Name = Name;
                    }
                    else
                    {
                        Actions.Relationship relationshipaction = new Actions.Relationship(this, Name, relationship);
                        this.ActionsCache[relationship.Source.ID].AddRelationship(relationshipaction);
                        this.ActionsCache[relationship.ID] = relationshipaction;
                    }
                }
                else
                {
                    throw new Exceptions.ArgumentException("Source Item not present in Transaction");
                }
            }
            else if (Item is File)
            {
                if (this.ActionsCache.ContainsKey(Item.ID))
                {
                    this.ActionsCache[Item.ID].Name = Name;
                }
                else
                {
                    this.ActionsCache[Item.ID] = new Actions.File(this, Name, Item);
                }
            }
            else
            {
                if (this.ActionsCache.ContainsKey(Item.ID))
                {
                    this.ActionsCache[Item.ID].Name = Name;
                }
                else
                {
                    this.ActionsCache[Item.ID] = new Actions.Item(this, Name, Item);
                }
            }
        }
Exemplo n.º 11
0
        public void Select(Model.Relationship Relationship)
        {
            if (Relationship != null)
            {
                List <Model.Relationship> displayed = this.Displayed.ToList();
                int index = displayed.IndexOf(Relationship);

                if (index >= 0)
                {
                    this.Grid.SelectedRows.Clear();
                    this.Grid.SelectedRows.Add(this.Grid.Rows[index]);
                }
            }

            this.UpdateCommandsCanExecute();
        }
Exemplo n.º 12
0
        private void Grid_ItemsSelected(object sender, Search.ItemsSelectedEventArgs e)
        {
            if (this.Binding != null)
            {
                if (this.Dialog != null)
                {
                    if (this.Parent.Transaction != null)
                    {
                        foreach (Model.Item relateditem in this.Dialog.Grid.Selected)
                        {
                            Model.Relationship relationship = (Model.Relationship)((Model.Item) this.Binding).Relationships(this.RelationshipType).Create(this.Parent.Transaction);
                            relationship.Related = relateditem;
                            this.OnRelationshipsCreated(relationship);
                        }

                        this.LoadRows();
                    }

                    // Close Dialog
                    this.Dialog.Open = false;
                }
            }
        }
        /// <summary>
        /// 添加关系
        /// </summary>
        /// <param name="consumerDirectoryName"></param>
        /// <param name="providerDirectoryName"></param>
        public void AddRelation(string consumerDirectoryName, string[] providerDirectoryName)
        {
            var consumerDirectory = RepositoryRegistry.Directory.FindBy(consumerDirectoryName);

            if (string.IsNullOrEmpty(consumerDirectoryName) || providerDirectoryName == null || providerDirectoryName.Length == 0)
            {
                return;
            }

            string newMd5;
            bool   isSame = new RelationShipCheckService().IsSame(providerDirectoryName, consumerDirectory.UsedServiceMd5, out newMd5);

            if (isSame)
            {
                return;
            }

            var providerDirectorys = RepositoryRegistry.Directory.FindBy(providerDirectoryName);

            if (providerDirectorys.Count() != providerDirectoryName.Length)
            {
                return;
            }

            var list = new List <Model.Relationship>();

            foreach (var item in providerDirectorys)
            {
                var consumerInfo = new ConsumerInfo(consumerDirectory.Name, consumerDirectory.Id);
                var providerInfo = new ProviderInfo(item.Name, item.Id);
                var relationship = new Model.Relationship(consumerInfo, providerInfo);
                list.Add(relationship);
            }
            RepositoryRegistry.Relationship.Add(list);

            this.PublishEvent("AddRelation", new UpdateMD5DomainEvent(consumerDirectory.Id, newMd5));
        }
Exemplo n.º 14
0
 internal Relationship(Transaction Transaction, String Name, Model.Relationship Relationship)
     : base(Transaction, Name, Relationship)
 {
     this.DBItem = null;
 }
Exemplo n.º 15
0
        public static Model.Relationship Create()
        {
            var relationship = new Model.Relationship(new ConsumerInfo("订单", 1), new ProviderInfo("菜单", 1));

            return(relationship);
        }
 private Model.Relationship SelectConvert(Model.Relationship r, Model.ConsumerInfo consumerInfo, Model.ProviderInfo providerIdInfo)
 {
     propertyHelper.SetValue(m => m.ConsumerInfo, r, consumerInfo);
     propertyHelper.SetValue(m => m.Provider, r, providerIdInfo);
     return(r);
 }
Exemplo n.º 17
0
        public void Save()
        {
            using (var db = new AspNetDatingDataContext())
            {
                var relationship = new Model.Relationship()
                                        {
                                            r_id = id,
                                            u_username = fromUsername,
                                            r_username = toUsername,
                                            r_type = (int) type,
                                            r_pendingtype = pendingType.HasValue ? (int?) pendingType : null,
                                            r_accepted = accepted,
                                            r_timestamp = timestamp

                                        };
                if (id == 0)
                {
                    db.Relationships.InsertOnSubmit(relationship);
                }
                else
                {
                    db.Relationships.Attach(relationship, true);
                }

                db.SubmitChanges();

                if (id == 0) id = relationship.r_id;
            }
        }
 public static Model.Relationship Create()
 {
     var relationship = new Model.Relationship(new ConsumerInfo("订单", 1), new ProviderInfo("菜单", 1));
     return relationship;
 }
Exemplo n.º 19
0
 public RelationshipsCreatedEventArgs(Model.Relationship Relationship)
     : base()
 {
     this.Relationship = Relationship;
 }