private static EVinvaCommand CreateCommand(GraphicObjectSave graphicObjectSave)
 {
     EVinvaCommand tmp = null;
     switch (graphicObjectSave.Type)
     {
         case BussinessObject.ComponentType.ReadFile:
             tmp = new FileReaderComponentCommand(CommonUtility.DeSerializeToObject<FileReaderComponentBO>(graphicObjectSave.objectX));
             break;
         case BussinessObject.ComponentType.WriteFile:
             tmp = new FileWriterComponentCommand(CommonUtility.DeSerializeToObject<FileWriterComponentBO>(graphicObjectSave.objectX));
             break;
         case BussinessObject.ComponentType.API:
             tmp = new APIComponentCommand(CommonUtility.DeSerializeToObject<APIComponentBO>(graphicObjectSave.objectX));
             break;
         case BussinessObject.ComponentType.SendMail:
             tmp = new SendMailComponentCommand(CommonUtility.DeSerializeToObject<SendMailComponentBO>(graphicObjectSave.objectX));
             break;
         case BussinessObject.ComponentType.SQLQuery:
             tmp = new DBQueryComponentCommand(CommonUtility.DeSerializeToObject<DBQueryComponentBO>(graphicObjectSave.objectX));
             break;
         case BussinessObject.ComponentType.StoreProcedure:
             tmp = new DBProcComponentCommand(CommonUtility.DeSerializeToObject<DBProcComponentBO>(graphicObjectSave.objectX));
             break;
         case BussinessObject.ComponentType.Transform:
             break;
         case BussinessObject.ComponentType.Join:
             break;
         default:
             break;
     }
     return tmp;
 }
 public ComponentBase(GraphicObjectSave graphicObjectSave)
 {
     base.ID = graphicObjectSave.Id;
     this.Name = graphicObjectSave.Name;
     this.ComponentType = graphicObjectSave.Type;
     this.area = new Rectangle(graphicObjectSave.X, graphicObjectSave.Y, 30, 30);
     this.Tag = CommonUtility.DeSerializeToObject(CommonUtility.GetComponentBaseBO(this.ComponentType).GetType(), graphicObjectSave.objectX);
     this.Ports = new List<Port>();
     graphicObjectSave.Ports.ForEach(p =>
         {
             this.Ports.Add(new Port(this, p.PortType, p.Id));
         });
 }
        private static string GetNameComponentParent(GraphicObjectSave graphicObjectSave, ObjectEditorSave save)
        {
            //Get port input id
            var getPortInputId = (from row in graphicObjectSave.Ports
                                  where row.PortType == PortType.Input
                                  select row.Id).FirstOrDefault();
            if (getPortInputId == 0) return string.Empty;

            //get port out form port in
            var getPortOut = (from row in save.GraphicObjectLinkPortSaveList
                              where row.IdTo == getPortInputId
                              select row.IdFrom).FirstOrDefault();
            if (getPortOut == 0) return string.Empty;

            //search component with port out. Get Name
            var getComponentParent = (from row in save.GraphicObjectSaveList
                                      where
                                            row.Ports != null
                                            && row.Ports.Any(p => p.Id == getPortOut)
                                      select row.Id).FirstOrDefault();
            //Id
            return getComponentParent == 0 ? string.Empty : getComponentParent.ToString();
        }
        public GraphicObjectSave ToGraphicObjectSave()
        {
            GraphicObjectSave returnValue = new GraphicObjectSave();
            returnValue.Id = this.ID;
            returnValue.Name = this.Name;
            returnValue.Type = this.ComponentType;
            returnValue.X = this.area.X;
            returnValue.Y = this.area.Y;
            returnValue.Priority = this.Priority;
            returnValue.objectX = CommonUtility.SerializeToString(this.Tag);
            returnValue.Ports = (from row in this.Ports
                                 select new GraphicObjectPortSave(row.ID, row.PortType)
                                 ).ToList();

            return returnValue;
        }