Ejemplo n.º 1
0
        private void SetConnectorType(RelationDTO relation, Connector connector)
        {
            // Any of the foreign key fields is nullable - make the parent relation zero to one.
            if (relation.Items.Any(x => !x.ForeignAttributeRequired))
            {
                connector.ToConnectorType = ConnectorType.ZeroOrOne;
            }
            else
            {
                connector.ToConnectorType = ConnectorType.ExactlyOne;
            }

            if (relation.OneToOne)
            {
                if (relation.AtLeastOne)
                {
                    connector.FromConnectorType = ConnectorType.ExactlyOne;
                }
                else
                {
                    connector.FromConnectorType = ConnectorType.ZeroOrOne;
                }
            }
            else
            {
                if (relation.AtLeastOne)
                {
                    connector.FromConnectorType = ConnectorType.OneOrMany;
                }
                else
                {
                    connector.FromConnectorType = ConnectorType.ZeroOrMany;
                }
            }
        }
Ejemplo n.º 2
0
        public void ProcessCreateNewRelation()
        {
            var entityID = new ProjectTreeHelper().GetFirstAncestorID <EntityDTO>();

            if (entityID == Guid.Empty)
            {
                throw new InvalidOperationException("No entity selected.");
            }
            var newRelation = new RelationDTO()
            {
                RelationName = "<Enter name>", ForeignEntityID = entityID
            };

            var view = new RelationDetailsView();

            view.Object = newRelation;

            var popup = new PopupWindow();

            popup.Title    = "New Relation";
            popup.Validate = () => { return(new Validator().Validate(newRelation)); };
            popup.ViewPanel.Children.Add(view);

            if (popup.ShowDialog() == true)
            {
                new ObjectDataSource().SaveObject(newRelation);
                ServiceLocator serviceLocator = ServiceLocator.GetActive();
                serviceLocator.BasicController.ProcessProjectTreeRefresh();
            }
        }
        public JsonResult SaveRelations(RelationDTO Rel, string Status)
        {
            try
            {
                //if (ModelState.IsValid)
                //{
                // employeeMasters objemployeeMasters = new employeeMasters();
                bool res = employeeMasters.Save(Rel);
                // return Json(new { success = res });

                //}
                //else
                //{
                //    return Json(new { success = false });
                //}


                List <RelationDTO> all = employeeMasters.BindRelations();
                var result             = new { Success = res, data = all };
                return(new JsonResult {
                    Data = result, JsonRequestBehavior = JsonRequestBehavior.AllowGet
                });
            }
            catch (Exception ex)
            {
                EventLogger.WriteToErrorLog(ex, "RelationShip");
                return(Json(new { success = false, errorMessage = ex.Message }));
            }
        }
Ejemplo n.º 4
0
 public static Relation ConstructFromDto(RelationDTO dto)
 {
     return(new Relation()
     {
         Id = dto.id,
         TitleRomaji = dto.title_romaji,
         TitleEnglish = dto.title_english,
         TitleJapanese = dto.title_japanese,
         Type = dto.type,
         StartDate = dto.start_date,
         EndDate = dto.end_date,
         Season = dto.season,
         SeriesType = dto.series_type,
         Synonyms = dto.synonyms,
         Genres = dto.genres,
         IsAdult = dto.adult,
         AverageScore = dto.average_score,
         Popularity = dto.popularity,
         UpdatedAt = dto.updated_at,
         ImageUrlSmall = dto.image_url_sml,
         ImageUrlMedium = dto.image_url_med,
         ImageUrlLarge = dto.image_url_lge,
         ImageUrlBanner = dto.image_url_banner,
         TotalEpisodes = dto.total_episodes,
         AiringStatus = dto.airing_status,
         RelationType = AniListApiHelper.GetRelationType(dto.relation_type)
     });
 }
        public JsonResult DeleteRelation(RelationDTO Rel)
        {
            var c = employeeMasters.DeleteRecord(Rel.RecordId);

            return(new JsonResult {
                Data = c, JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
 public JsonResult CheckRelations(RelationDTO Rel)
 {
     try
     {
         var c = employeeMasters.CheckRelations(Rel);
         return(new JsonResult {
             Data = c, JsonRequestBehavior = JsonRequestBehavior.AllowGet
         });
     }
     catch (Exception ex)
     {
         EventLogger.WriteToErrorLog(ex, "RelationShip");
         return(Json(new { success = false, errorMessage = ex.Message }));
     }
 }
Ejemplo n.º 7
0
        public void Store()
        {
            DataConnector dataConnector = new DataConnector();

            dataConnector.OpenConnection("mySql");

            WorkflowDAO workflowDAO = new WorkflowDAO(dataConnector.MySqlConnection);
            ElementDAO  elementDAO  = new ElementDAO(dataConnector.MySqlConnection);
            RelationDAO relationDAO = new RelationDAO(dataConnector.MySqlConnection);

            WorkflowDTO workflowDTO = new WorkflowDTO();

            workflowDTO.id   = this.id;
            workflowDTO.name = this.name;
            if (this.startElement != null)
            {
                workflowDTO.startElement = this.startElement.id;
            }
            if (this.finishElement != null)
            {
                workflowDTO.finishElement = this.finishElement.id;
            }
            this.id = (int)workflowDAO.StoreWorkflow(workflowDTO);

            foreach (FlowElement element in elements)
            {
                ElementDTO elementDTO = new ElementDTO();
                elementDTO.id          = element.id;
                elementDTO.owner       = this.id;
                elementDTO.name        = element.name;
                elementDTO.enabled     = element.enabled;
                elementDTO.elementType = element.elementType;

                elementDAO.StoreElement(elementDTO);
            }

            foreach (Relation relation in relations)
            {
                RelationDTO relationDTO = new RelationDTO();
                relationDTO.origin      = relation.origin.id;
                relationDTO.destinarion = relation.destination.id;

                relationDAO.StoreRelation(relationDTO);
            }

            dataConnector.CloseConnection();
        }
        public JsonResult UpdateRelations(RelationDTO Rel)
        {
            try
            {
                bool res = employeeMasters.UpdateRelations(Rel);

                List <RelationDTO> all = employeeMasters.BindRelations();
                var result             = new { Success = res, data = all };
                return(new JsonResult {
                    Data = result, JsonRequestBehavior = JsonRequestBehavior.AllowGet
                });
            }
            catch (Exception ex)
            {
                EventLogger.WriteToErrorLog(ex, "RelationShip");
                return(Json(new { success = false, errorMessage = ex.Message }));
            }
        }
Ejemplo n.º 9
0
        public Int64 StoreRelation(RelationDTO relation)
        {
            String commandText = "INSERT INTO `flowManager`.`relation` VALUES(null, " + relation.owner + ", " + relation.origin + ", " + relation.destinarion + ")";

            if (relation.id != 0)
            {
                commandText = "UPDATE `flowManager`.`relation` SET owner = " + relation.owner + ", origin = '" + relation.origin + "', destination = " + relation.destinarion + " WHERE id = " + relation.id;
            }
            commandText = commandText + ';' + Environment.NewLine + "SELECT LAST_INSERT_ID()";

            MySqlCommand command  = new MySqlCommand(commandText, this.mySqlConnection);
            Int64        insertId = (Int64)command.ExecuteScalar();

            if (relation.id != 0)
            {
                insertId = relation.id;
            }

            return(insertId);
        }
Ejemplo n.º 10
0
        // Recupera os objetos "relation" pertencentes ao workflow especificado
        public List <RelationDTO> RetrieveRelations(int workflowId)
        {
            List <RelationDTO> relationList = new List <RelationDTO>();

            String          query      = "SELECT * FROM `flowManager`.`relation` WHERE owner=" + workflowId;
            MySqlCommand    command    = new MySqlCommand(query, this.mySqlConnection);
            MySqlDataReader dataReader = command.ExecuteReader();

            while (dataReader.Read())
            {
                RelationDTO relation = new RelationDTO();
                relation.id          = (int)dataReader["id"];
                relation.owner       = (int)dataReader["owner"];
                relation.origin      = (int)dataReader["origin"];
                relation.destinarion = (int)dataReader["destination"];

                relationList.Add(relation);
            }
            dataReader.Close();

            return(relationList);
        }
Ejemplo n.º 11
0
        private static void CopyRelation(BDOs bdos, RelationDTO rel)
        {
            List <DataColumn> pColumns = new List <DataColumn>();

            foreach (string col in rel.parentCols)
            {
                if (bdos.Tables[rel.parentBusiNo].Columns.Contains(col))
                {
                    pColumns.Add(bdos.Tables[rel.parentBusiNo].Columns[col]);
                }
            }
            List <DataColumn> childColumns = new List <DataColumn>();

            foreach (string col in rel.childCols)
            {
                if (bdos.Tables[rel.name].Columns.Contains(col))
                {
                    childColumns.Add(bdos.Tables[rel.name].Columns[col]);
                }
            }
            bdos.Relations.Add(rel.name, pColumns.ToArray(), childColumns.ToArray());
        }
Ejemplo n.º 12
0
        public void ProcessConnectEntitiesOnDiagram(DiagramEntityDTO from, DiagramEntityDTO to)
        {
            if (from == null)
            {
                throw new ArgumentNullException("from");
            }
            if (to == null)
            {
                throw new ArgumentNullException("to");
            }

            var newRelation = new RelationDTO()
            {
                RelationName    = String.Format("{0}_{1}", from.EntityName, to.EntityName),
                PrimaryEntityID = to.EntityID,
                ForeignEntityID = from.EntityID
            };

            var view = new RelationDetailsView();

            view.Object = newRelation;

            var popup = new PopupWindow();

            popup.Title    = "New Relation";
            popup.Validate = () => { return(new Validator().Validate(newRelation)); };
            popup.ViewPanel.Children.Add(view);

            if (popup.ShowDialog() == true)
            {
                new ObjectDataSource().SaveObject(newRelation);
            }
            ServiceLocator serviceLocator = ServiceLocator.GetActive();

            serviceLocator.BasicController.ProcessProjectTreeRefresh();
        }
Ejemplo n.º 13
0
        internal List <RelationDTO> LoadRelations(DatabaseDTO database, Dictionary <string, Guid> entityIds, Dictionary <string, Guid> attributeIds, ref int lastTable)
        {
            const int ExpectedColumnsTotal = 8;
            const int TablesPerCall        = 4;      // TODO: move to config

            var relations = new List <RelationDTO>();

            var commandText = SqlQueries.GetRelationsQuery;

            using (var connection = new SqlConnection(database.ConnectionString))
            {
                var command = connection.CreateCommand();
                command.CommandType = CommandType.Text;
                command.CommandText = commandText;

                var param1 = new SqlParameter();
                param1.ParameterName = "@TABLE_NUMBER";
                param1.SqlDbType     = SqlDbType.Int;
                param1.Direction     = ParameterDirection.Input;
                param1.Value         = lastTable;
                command.Parameters.Add(param1);

                var param2 = new SqlParameter();
                param2.ParameterName = "@TABLES_IN_ONE_CALL";
                param2.SqlDbType     = SqlDbType.Int;
                param2.Direction     = ParameterDirection.Input;
                param2.Value         = TablesPerCall;
                command.Parameters.Add(param2);

                connection.Open();
                var reader = command.ExecuteReader();
                {
                    if (reader.HasRows)
                    {
                        if (reader.FieldCount != ExpectedColumnsTotal)
                        {
                            throw new InvalidOperationException(String.Format("Query returned less or more than {0} columns ({1})", ExpectedColumnsTotal, commandText));
                        }

                        string      lastPrimaryTableName = string.Empty;
                        string      lastForeignTableName = string.Empty;
                        string      lastRelationName     = string.Empty;
                        RelationDTO relation             = null;

                        int relationsProcessed = 0;
                        while (reader.Read())
                        {
                            lastTable = Convert.ToInt32(reader["TABLE_NUMBER"]);

                            string primaryTableName = reader["PrimaryTableName"].ToString();
                            string foreignTableName = reader["ForeignTableName"].ToString();
                            string relationName     = reader["RelationName"].ToString();

                            // New relation
                            if (!primaryTableName.Equals(lastPrimaryTableName, StringComparison.InvariantCultureIgnoreCase) ||
                                !foreignTableName.Equals(lastForeignTableName, StringComparison.InvariantCultureIgnoreCase) ||
                                !relationName.Equals(lastRelationName, StringComparison.InvariantCultureIgnoreCase))
                            {
                                relation = new RelationDTO()
                                {
                                    RelationName    = relationName,
                                    PrimaryEntityID = entityIds[primaryTableName],
                                    ForeignEntityID = entityIds[foreignTableName],
                                    OneToOne        = Convert.ToInt32(reader["IsUnique"]) == 1
                                };
                                relations.Add(relation);
                                relationsProcessed++;
                            }

                            string primaryColumnName = reader["PrimaryColumnName"].ToString();
                            string foreignColumnName = reader["ForeignColumnName"].ToString();

                            var relationItem = new RelationItemDTO()
                            {
                                RelationID         = relation.ID,
                                PrimaryAttributeID = attributeIds[primaryTableName + "." + primaryColumnName],
                                ForeignAttributeID = attributeIds[foreignTableName + "." + foreignColumnName]
                            };

                            relation.Items.Add(relationItem);

                            lastPrimaryTableName = primaryTableName;
                            lastForeignTableName = foreignTableName;
                            lastRelationName     = relationName;
                        }
                    }
                }
                reader.Close();
            }

            return(relations);
        }
Ejemplo n.º 14
0
        public static List <BDOs> ToBDOsModel(PostData postData)
        {
            //取真实表名
            for (int i = 0; i < postData.BusiDatas.Length; i++)
            {
                bf_Busi busi = bf_Busis.GetItem(postData.BusiDatas[i].BusiNo);
                if (busi == null)
                {
                    continue;
                }
                postData.BusiDatas[i].TableName = busi.TableName;
                busi = bf_Busis.GetItem(postData.BusiDatas[i].ParentBusiNo);
                if (busi == null)
                {
                    continue;
                }
                postData.BusiDatas[i].ParentTableName = busi.TableName;
            }
            //按照表关系转换
            List <BDOs>   lstDs       = new List <BDOs>();
            List <string> lstTbInBdos = new List <string>();

            for (int i = 0; i < postData.relations.Length; i++)
            {
                RelationDTO rel  = postData.relations[i];
                BDOs        BDOS = lstDs.Find((b) => b.DataSetName == rel.parentBusiNo);
                if (BDOS == null)
                {
                    BDOs bdos      = null;
                    BDO  bdoParent = null;
                    foreach (BDOs bds in lstDs)
                    {
                        bdoParent = bds[rel.parentBusiNo];
                        if (bdoParent != null)
                        {
                            bdos = bds;
                            break;
                        }
                    }
                    if (bdoParent == null)
                    {
                        bdos      = new BDOs(rel.parentBusiNo);
                        bdoParent = JsonToBDO(bdos, null, rel.parentBusiNo, postData.BusiDatas.AsEnumerable().FirstOrDefault(f => f.BusiNo.Equals(rel.parentBusiNo)).JsonData);
                        CheckNullValue(bdoParent);
                        bdos.DataSetName = rel.parentBusiNo;
                    }

                    BDO bdoChild = JsonToBDO(bdos, null, rel.name, postData.BusiDatas.AsEnumerable().FirstOrDefault(f => f.BusiNo.ToUpper().Equals(rel.name.ToUpper())).JsonData);
                    if (bdoParent.Rows.Count == 0)
                    {
                        foreach (DataRow row in bdoChild.Rows)
                        {
                            if (bdoParent.AsEnumerable().FirstOrDefault(f => f[rel.parentCols[0]].Equals(row[rel.childCols[0]])) != null)
                            {
                                continue;
                            }
                            DataRow nr = bdoParent.NewRow();
                            nr[rel.parentCols[0]] = row.RowState == DataRowState.Deleted?row[rel.childCols[0], DataRowVersion.Original]: row[rel.childCols[0]];
                            bdoParent.Rows.Add(nr);
                        }
                        bdoParent.AcceptChanges();
                    }
                    bdoParent.AddChildren(rel.name, bdoChild, rel.parentCols[0], rel.childCols[0]);
                    //CopyRelation(bdos, rel);

                    if (!lstDs.Contains(bdos))
                    {
                        lstDs.Add(bdos);
                        lstTbInBdos.Add(rel.parentBusiNo);
                    }
                    lstTbInBdos.Add(rel.name);
                }
                else
                {
                    BDO bdo = JsonToBDO(BDOS, null, rel.name, postData.BusiDatas.AsEnumerable().FirstOrDefault(f => f.BusiNo.Equals(rel.name)).JsonData);
                    CheckNullValue(bdo);
                    if (BDOS.MasterBDO.Rows.Count == 0)
                    {
                        foreach (DataRow row in bdo.Rows)
                        {
                            if (BDOS.MasterBDO.AsEnumerable().FirstOrDefault(f => f[rel.parentCols[0]].Equals(row[rel.childCols[0]])) != null)
                            {
                                continue;
                            }
                            DataRow nr = BDOS.MasterBDO.NewRow();
                            nr[rel.parentCols[0]] = row[rel.childCols[0]];
                            BDOS.MasterBDO.Rows.Add(nr);
                        }
                        BDOS.MasterBDO.AcceptChanges();
                    }

                    BDOS.MasterBDO.AddChildren(rel.name, bdo, rel.parentCols[0], rel.childCols[0]);
                    //CopyRelation(BDOS, rel);
                    lstTbInBdos.Add(rel.name);
                }
            }

            //无表关系的单表
            foreach (BusiData bd in postData.BusiDatas)
            {
                if (!lstTbInBdos.Exists((name) => name == bd.BusiNo))
                {
                    BDOs singleBDOs = new BDOs(bd.BusiNo);
                    BDO  bdo        = JsonToBDO(singleBDOs, null, bd.BusiNo, postData.BusiDatas.AsEnumerable().FirstOrDefault(f => f.BusiNo.Equals(bd.BusiNo)).JsonData);
                    CheckNullValue(bdo);
                    singleBDOs.DataSetName = bd.BusiNo;
                    lstDs.Add(singleBDOs);
                }
            }

            return(lstDs);
        }